BUILD UPDATE #007: Muster

A new GROUND BRANCH Build Update is available!

With a first pass on listen server capability, some A.I. tweaks and a new optic—among other additions and fixes—#007 should be a pretty exciting one.

› NOTE: All dedicated servers must be updated to work with the newest build. ‹

Before we move on, we’d like to remind those who use Facebook, Twitter or Instagram to follow us on our social media channels. The more our online presence grows, the more people will know about our game, the bigger our community will get, and the faster development will progress. So if you do social media, make sure to give us a follow, share our content when possible and help us reach more players!

Full patch notes await at the end of the post, but you know the drill: highlights first.

Hightlights

EXPERIMENTAL: Listen servers

A first pass of the long-requested listen server capability has been implemented. This means you can now host your own GB server from your computer without having to setup a dedicated server.

It’s prone to issues at this point and not yet a streamlined process, but here’s what you need to do if you’d like to host a listen server:

  1. Make sure your router and Windows Firewall are configured to open the following ports:
    • 7777 UDP
    • 27015 UDP
  2. Select Host Game from the Main Menu.
  3. Set up your server preferences:
    • Type — Selects whether you’re hosting over the Internet or a local area network (LAN). Note: LAN is currently not supported.
    • Players — Sets the maximum number of players for your server. Note: Although the drop-down menu does not reflect it, the max capacity for PvP game modes is 16 players; this can be changed manually via the console command MaxPlayers=X (where X is the player capacity). For a comprehensive list of all server console commands, refer to this guide.
    • Game Mode — Selects the game mode. Note: PvP game modes in particular may be missing rules or have confusing parameters. Our next major update aims to address these issues and make game modes more clear-cut, organized and varied. Stay with us!
    • Time Limit — Defines how long (minutes) until the game ends and the map changes.
    • Round Time — Defines how long (minutes) each round should last.
  4. Click Host.

With your server created, your friends can now join it by bringing up the console (default Tilde [~] or Multiply [* or ×] keys on your numpad), typing open <your IP> (find out your IP address here) and pressing Enter. As noted, this is only a first pass on this functionality; you will be able to join listen servers via the Server Browser in the future, of course!

Known issues
  • If the server isn’t available/properly setup once the client attempts to join, the game will crash after a few seconds.
  • Once joined, Fire may not respond. The issue should resolve itself after a short time and/or by switching weapons a few times (we couldn’t determine, so please inform us if you do).
  • Various replication issues may occur.

Enemy A.I.

Further tweaks

As always, the A.I. is a constant and ongoing process. In this update, a few more key changes have been made, and Kris goes over them in this little video:

To sum it up:

  • Though still missing animations, bad guys now visibly transition via ladders and should generally navigate more fluidly.
  • They are now more selective in their firing and cease fire when direct line of sight is lost—so no more full-auto mag dumps.
  • Enemies can now see through chain link fences.
  • When line of sight is broken, they will move to the player’s last known location.
  • They should attempt to find cover to reload.

While it’s generally still at a rudimentary state, enemy A.I. should now act a bit smarter and utilize the environment better when dealing with threats. Let us know what you think of this implementation.

New editable A.I. values

As mentioned earlier in Kris’ video, two values (RecoilCompensationSkill and AimErrorPeriod) have been tweaked and are now also editable via the AISettings.ini file (located at …\Steam\steamapps\common\Ground Branch\GroundBranch\Config). Feel free to experiment with these values and let us know how it went!

› For a guide on the other values in AISettings.ini, check out this link.

NEW OPTIC: Micro T-1

A new red dot sight has been added to the attachments selection: the Micro T-1.

Made popular by its reliability, small size and light weight, the T-1 is available in two versions: one regular and one with a tall spacer, both on a lever-release mount.

Micro T-1 (regular): For most uses, including canted (offset) mounts. (We forgot to add the ability to piggyback-mount the T-1 on railed scopes, but that will be in the next update. Whoops!)

Micro T-1 (tall): Normally used on ARs (M16, M4, Mk 18 etc.), the tall spacer mount is required for proper sight alignment with the G33 Magnifier.

Sight picture. (We’ll be working on those red dot reticles for more accurate dimensions soon.)

G33 Magnifier alignment issues

The alignment issues with the G33 have been ironed out: it should now line up correctly with sights as appropriate.

› We haven’t been able to look into the issue of disappearing reticles (with the G33 + holo sight combos), but as before, the workaround is to simply move the magnifier a notch or two away from the sight (or vice-versa).

We hope this update will improve your GROUND BRANCH experience and keep you operatin’ out there. Expect another Build Update before Christmas, and don’t forget to stay tuned for more news via our social media channels. See you next update and, as always, thanks for the support!

Patch notes

Build version: 1025

Client

Steam ID: 3381094
Size: 546 MB

Dedicated server

Steam ID: 3381096
Size: 34.7 MB

FIXED
* fixed firearm WBP_FirearmCustomisation not allowing sights if there is no sight-only rail present
* fixed various navlinks used to allow movement through doors on SmallTown, Depot and StorageFacility
* FIXED incorrect placement of suppressor on 416 and 416 Shorty
* fixed GA_AK74_Reload looping
* fixed AIThreatSelectionComponent setting AI's focal point to IncomingFireOrigin when it was 0,0,0
* fixed looping firing sound again again (I hope again again)
* fixed BTTask_ShootFirearm / BTTask_StopFiring not stopping the AI from firing when aborted
* FIXED Sights now line up properly with G33Magnifier
* FIXED setup weapon recoil to previous values before Abilities system change
* fixed being able to shoot in RR if you spawn into RR before the shooting range triggers (I hope)
* fixed movement speed bug which would use engaged/ready position speeds even when you didn't have a firearm equipped
* fixed handgun close ready collision moving the handgun behind the characters back
* fixed replcated dropped static mesh based items appearing at 0,0,0 before first collision.

AI
* updated AI behaviour tree and related Blackboard to support climbing up/down ladders
** ENGINE CHANGES **
* reverted old fix/hack in AISense_Sight that would check for multiple channels against visibility instead of just the "DefaultSightCollisionChannel" 

* created EQS_FindLocationBehind to allow AI to move back a bit to clear an obstructed firearm.
* created EQS_FindLocationParralell to allow AI to move sideways a bit to move to somewhere where a team mate isn't in the way
* created BTTask_ClearFocus to allow BT to reset focus after threat is lost etc.
* updated BT_GBAI
    * switched to using BTDecorator_IsVectorSet when checking if various vectors were valid or not to stop them moving to or aiming to 0,0,0
    * can now reload with or without a threat.
    * will attempt to find cover before reloading
    * when losing sight of a threat, AI will stop firing
    * when losing sight of a threat, AI will now move to a random location near the where they last saw them.
    * disabled usage of suppression branch - was causing AI to spaz out.
* added variables to GBAIController to control recoil compensation and aim error (see DefaultAISettings.ini)
* recompiled BT_GBAI_Suppressed to stop log spam


CONTENT
* Adjusted collision on a few trees to better conform to mesh
* Added in first pass of "spooked bird" BP 
    * User contribution.... Thanks Fatmarrow!!
* Adjusted G33 magnifier to flip on/off 2x faster

* New Micro T1 optic
    * Both regular and tall version for use with G33 magnifier
* Adjusted g33 magnifier mesh to better fit rail
* Adjusted new recoil reset values 
* Made some small adjustments to the character shadow physics asset 
* Set all firearms to use their PhysAssets for simple shadow casting


CODE
* updated BP_SpatialSound and added it to P4 depot
    * was originally just for Mikson, but since I needed to work on it...
* created Test_SpatialSoundBP 
    * shows how to add the Wwise sound volumes to make them work with BP_SpatialSound 
* disable sight positoin check in GBRailAttachment
    * need to revist it later, but for now it should allow you to place sights on the MP7
* updated GBAIController
    * renamed GetPathPoints() to GetPathCorridorPoints() to better match the info it actually gets
    * created GetCurrentPathCorridorIndex() - useful to tell what navmesh poly you're on
    * created GetNextPathCorridorPoint() - useful to quickly visual the next navmesh poly you're going to
    * created GetNavLinkPoints() - useful to get the current navlink your using, if any, and its start and end points.
* updated RBEventmanager to fix potential memcpy issue
* updated BP_ImpromtuLadder_BFS to add AI navlink check before assigning ladder to AI

* added ladder navlinks to all maps that have ladders

* created GBGameplayAbility_ReloadExtMag::GetCurrentMontageSection()
* updated GBCharacter
    * implemented IGameplayTagAssetInterface 
    * added GetOwnedGameplayTags()

* updated BP_FenceMaster to allow certain collision channels to be set to "Ignore" on sections
    * updated all affected _Geo maps.

* added RecoilImpulseTime and RecoilRecoveryTime variables to GBFirearm
    * updated affected C++
* added basic friends list to ingame menu

* first pass fixing listen server support
* updated GBGameplayAbility_Fire to fix potential issue with FiringTag not being cleared.

* added client checks to functions that give abilities.
* AbilitySystemComponent now has it timers cleared, Deactivate() called and is finally destroyed on character death or on a client side character being spawned.
    * hopefully this is the fix for massive sudden frame spikes found last dev test :|
* added bUseAttachParentBound option to GBCharAppearanceData.
* added bUseSimpleShadowsForCharacters option to use capsule shadows and disable static mesh shadows on character related mesh components