[MoA] – Ministry of Action ~ The home of action!

AHL2v3 – Now in production

Just a short post today to update you on AHL2v3 – it is in production now. When we asked for suggestions you came up with a list of 78 feature requests and bug reports. After clearing out all duplicates, the bugs that have been fixed in AHL2v2 patch 3 and features we cannot implement or rejected the list is now reduced to 41 items. It is slightly too long for a news post, but you can check the list of tickets for v3 to see what has already been implemented and what’s still to come. There may be additional tickets when bugs are being discovered during testing, but the list of new features is fixed by now. Be sure to check back here frequently as we’ll be less quiet during development than we were last time.

Sneaking up on you today: Action Half-Life 2 version 2 patch 3

With players returning to the servers it is now time to fix some last few quirks in Action Half-Life 2 v2. Which is why we present, kind of out of nowhere, patch 3. Find below a list of fixes, additions and changes.

Fixes:
- Fixed teamspawn code by rewriting it and thus finally making it work like it should
- Fixed friendly fire not working correctly
- Fixed remaining rare crashes
- Fixed player not being able to use any gun after having the previous one kicked off their hands by another player
- Fixed weapon staying hidden upon using switching to the last weapon after bandaging
- Fixed players not spawning amongst their teammates at round start
- Fixed players spawning at round start and once again when starting to move
- Fixed players spawning inside objects at round start
- Fixed players spawning at odd places like outside the map at round start
- Fixed players spawning in the middle of the enemy team at round start
- Fixed players spawning inside other players (no matter if friend or foe) at round start
- Fixed players dropping too far down when spawning at round start
- Fixed players being able to spawn into or dropping directly into a trigger_hurt after spawning at round start

Updates, additions and miscellaneous changes:
- Updated sniper rifle view and world model
- Reviewed weapon switch code and added code to prevent as many remotely possible crashes as possible
- Added cvar sv_mindistancetp (default: 3500) to set the minimum amount of units between to base team spawn spots to make the spawn point selection for team games more random

Thanks fly out to the server administrators Roy_wheels and Nordmann for testing several builds over the last few weeks and months on their servers “Roy’s Happy Place” and “N0rd’s EU AHL2 Deathmatch Box”. They both made sure that the fixes got tested “in the wild” rather than our testing environments here. Thank you also to the players who joined those two servers, especially to Kissamies who posted quite a bunch of bugs and suggestions on what may cause them.
With the release of of patch 3 development on AHL2 v2 is complete. Next up is AHL2 v3, which will be our next release. We’ve almost finished planning it, so watch this space for updates on this topic (actually below this post as the news on the patch will stay stickied for some time now).
One last note on patch 3: a few of the fixes mentioned above require both the server and the client to be updated. That is, if you’ve already updated your client and experience one of the problems mentioned above as fixed the server may still not be updated. And now, here are the download links.

Windows Installer

AHL2v2update3 Windows Installer on MoA server
AHL2v2update3 Windows Installer mirror provided by moddb.com

.zip version, also includes Linux server binary (just unzip in your SourceMods/orangebox folder overwriting existing files)

AHL2v2update3 .zip version on MoA server
AHL2v2update3 .zip version mirror provided by moddb.com

The Teamspawn Grid #2

The last tweaks and fixed to the rewritten teamspawn grid code have been finished (and thoroughly tested). An updated server binary is now running on “Roy’s Happy Place” and should be up on “N0rd’s EU AHL2 Deathmatch Box” shortly. Both servers should be your first choice to play on (if possible) so that we can say for sure everything has been fixed in order to release patch 3. Besides the teamspawn grid several possible crashes have been fixed as well as the last occasion which may lead to hidden weapons. Please note that the latter is a server and client fix and thus may not work for you until an updated client.dll has been released.

And now, just for your viewing pleasure, some screenshots that have been taken when testing the tweaks to the teamspawn grid code as mentioned above. The teams were set to 16 players each, which is why that many spawn points are being created.

Nicely working grid on ahl2_dawg.

Another grid, nicely flowing through a hallway on ahl2_skylounge. In the background we can see where the other team spawns (left) and a grid from the previous round (right).

The game tried its very best to spawn the team at this spot on ahl2_skylounge. However, there’s just not enough room – no matter where we go.

The Teamspawn Grid

(Be warned, this text is quite long and partly quite technical. But in case you’re interested in how things work or if you are a mapper for AHL2 just read on)

There are a few bugs, which are being currently ironed out, which just cannot wait to be fixed in the next release but require another patch for v2. These are remaining rare crashes and one occasion where the gun might stay hidden, both of which are already fixed. The remaining bug is the teamspawn code not working as it should – and that’s what I’m currently working on.
Several hours of gaming on “Roy’s Happy Place” have brought up some shortcomings in the code. These are:

- Not spawning with the team, including spawning at odd places like amongst the enemy team, scattered throughout the map or even outside the map
- Spawning inside other players, no matter if friend or foe
- Spawning inside objects
- Spawning with the team and immediately somewhere else as soon as you start to move
- Teamspawn always uses the same two or three spots

The problems which lead to spawning inside other players or objects have been fixed as well a spawning with the team and then immediately somewhere else. A new server cvar has been introduced (sv_mindistancetp) which fixes the code always rotating between a small number of spots. This only leaves players not spawning with their team as the only problem. Actually this problem can be split into two separate ones, the first being that players don’t use their spot from the teamspawn grid and the second being the inability of the code to create enough spawn points for the whole team. While the former is still not solved the latter is thoroughly fixed now – as long as the available spawn points on the map aren’set up in completely stupid places.
The code first fetches an info_player_deathmatch entity from the map for the first team and uses this as the basis for each subsequent check. For all other teams every info_player_deathmatch entity on the map is checked if it is known to not being usable (more on that later), if it’s not being used by another team and if the distance is equal to or higher than the number of units set for sv_mindistancetp. If one passes the minimum distance check it is immediately chosen, if no entity matches it the, entity which is furthest away from all other teams is chosen. Starting from the base spawn point the code tries to find as many valid spawn points around it as there are players in the specific team. What qualifies a generated spawn point as valid? Well, this:

- Nothing blocks player movement from the base point to the generated one
- The space where the player would spawn is completely empty
- The player won’t fall down far enough to get hurt just when they hit the ground
- The player spawn inside and won’t fall into or through a trigger_hurt

Each valid generated spawn point serves as a base point to create additional spawn points, if necessary. If it’s not possible to create enough spawn points on the same level the code tries to stack players, by going up and down from every spawn point it found on “ground level” two times. In case it is not possible to create enough spawn points around an info_player_deathmatch entity it is added to a list of unusable spawn points for the specific team and the code tries to find another valid info_player_deathmatch entity to start the spawn point generation with as described above. As soon as a player leaves the team the list of unusable spawn points is cleared as former unusable points may be working well for a lower number of players. In-game, with some debug code enabled, it looks like this (click the images to see them full size and please note that that all of them are affected by the still not fixed “spawning at odd places” bug):

In this screenshot there have been no problems to create the grid. The yellow one is the base point and the green ones are the generated points.

This one shows a problematic spawn point. It has been possible to create three additional spawn points, but that’s it. It’s not possible to spawn in the places which are drawn in red in this picture. Therefore the base point is shown in blue here and added to the list of unusable spawn points.

In this case it has been possible to create a sufficient number of spawn points around the base point, but there are also some unusable ones as players would spawn in furniture there.

This one is a little more complex, there are many unusable points in this screenshot and the usable spawn points flow out of the small room.

This one is slightly over the top, but it shows quite well how it works. It starts at the yellow spot and tries to find usable points around it. Only the ones directly behind and in front of it are usable so the search continues with those points. The result is that the usable spawn points move down the hallway and move to the right as soon at the end of the hallway.
 
The code is actually quite smart and tries its very best to spawn the whole team in one place. However, in the event that it cannot find as many usable base spawn points as there are teams at least some players will spawn scattered across the map – but that’ll only happen if all of the info_player_deathmatch entities are set up in completely stupid places or if there are less spawn points than teams.

Thanks for your suggestions

Three weeks ago we asked you to provide suggestions for features or changes you’d like to see in the next release. There have been quite a number of suggestions and most of them sound like good additions to the game and most importantly they are doable for our team. All suggestions that have been posted up to now will be considered for the next release. In the next few days we will compile a list of your ideas which will make it into the release and publish it once the list has been finalized. Thanks for all your posts.

Update: you’ve come up with a whopping amount of 78 suggestions for new features and bugfixes, most of them being requests for new features. We’re currently sorting and evaluating the requests. Stay tuned for another update on this.

« Previous Entries

 
Powered by WordPress and NoseBleed