We start June’s report with Character Combat, who tackled several aspects of realistic firing, including improving the code side of triggering and reloading. They made all requests event-based and added proper success notifications and different action results between the actor state machine and AI components. This gives the AI consistent knowledge of the results of requested actions, allowing them to create behaviors that can handle different scenarios correctly. For example, if an NPC is pushing towards an enemy, the team may want them to automatically reload their weapon. However, if no ammunition is available, the behavior will be notified and a new reaction activated. This can happen to NPCs less skilled in evaluating their ability to manage ammunition, while those better skilled can choose not to use that tactic unless enough ammunition is available.
They also began leveraging the usable system functionalities of the bartender in combat scenarios. In the social environment, they created the concept of usables that can produce and accept items:
“An ammo box is nothing else than an item provider. The item itself could produce magazines or it might have magazines attached, similar to how a beer fridge can contain beer bottles, but a mixing station can create the drinks from specific source items. This allows NPCs to search for places in the world that can provide them with magazines of a specific type, relocate to those objects, and refill their loadout. This gives opportunity for the player and forces NPCs to evaluate the environment to decide if and when it’s appropriate to use those refill spots.” Character Combat Team
Time was also spent completing tasks for server mesh implementation.