top of page

The Callisto Protocol

download.png
sdslogo.jpg
PUBG_Corporation_Logo.svg.png

The origins of The Callisto Protocol began with the formation of Striking Distance as a studio within PUBG Corporation (now PUBG Studios) in June 2019, helmed by Glen Schofield, who had previously co-created the Dead Space series at Visceral Games. However, by May 26, 2022, Schofield stated that the game had grown to be its own story and is no longer connected to PUBG, though there remain small nods to the latter

AI Engineering Intern

I joined Striking Distance studios as an AI Engineering Intern and I've always been fascinated by making interesting enemies who challenge players in multiple ways. During my tenure at SDS, I've worked with AI Engineering and Gameplay Engineering team and Technical designers to create features inside the game, improve already built functionality, and optimize inside a large codebase.

Combat
1. Grunt Enemy:
I've added several features to Grunt Enemy and worked both on Common AI Definition and Variant Definition to make this enemy stronger. One particular is Grunt's Grappling system.
In this game Grunt can grapple the Player can hit the player a certain time and the Player can dodge the grunt's attacks. The player's dodging mechanics were getting too used to point that it felt like the player can just dodge infinitely.
So our Principal and lead designers and Lead AI Engineer decided to add a feature where Grunt would Grapple the player if he keeps dodging certain attacks. I was assigned the task and briefed by our Lead AI Engineer & Lead Designer.


Phase 1: I've implemented the feature so that Grunt will grapple the player after dodging a certain number of attacks by counting each attack as 1. This was phase 1. But Grunt attacks are all combos where combos are decided based on attack percentage and It could be a 1-attack combo, 2-attack, or 3-attack combo.

 

Phase 2: In Phase 2, I've added the support of Attack combos instead of single attacks. So, after this update Grunt would grapple the player if the player dodges a certain attack combo instead of certain single attacks.

Phase 3:  
In phase 3, I updated this feature to work on each variant instead of a single AI definition & exposed all the necessary variables to tweak by designers.

 

2. Enemy Systems:

  • Added the support to Ranged attacks to each variant of each enemy and exposed all the necessary stuff for designers.

  • Added support for Melee Damage in the Health component for each variant.

  • Add support for Block Damage in the Health component and make it accessible for each variant of each enemy.

  • Made updates on the Health component to optimize and added new formulas to tweak Player health by Enemies.

  • Enemy attacking from behind and taking a "backstab" damage in the Player's health component damage formula.


Tools

  1. Dynamic Navmesh:
    The Game needed to update the navmesh if any actor in-game is getting removed. Inside the game, the player can drag some actors from one place to another and that was making a big hole in the navmesh. I was assigned the task to make a Dynamic Navmesh inside the Navmesh Plugin in the Engine. As they're using something other than Recast navmesh that plugin did not have that feature. I added a feature in the engine that would update the navmesh as any navmesh obstacle changes its place.

  2. AI Debugger:
    While on a development build, devs were using Unreal's Gameplay Debugger but every day the build pipeline was making test builds for daily testing, and in test builds they could not access the Gameplay debugger, especially the AI team. So I was assigned to retrieve all the necessary information that the Gameplay debugger was giving and make a separate Debugger that works with the console command "Show Debug AI". After the debugger was finished it helped our AI Engineering team while they were testing the game as well as our QAs.

  3. Nav  Link Proxy Update tool:
    Our Enemies can do vault and mantle and for that, we used the Nav Link Proxy tool they needed to update all at once instead of every single of them every time they moves. So made a small tool to update all Nav Link Proxies in a single level update all at once with a single button click.

Optimization:

  • Optimized Behavior trees and BT Services to work more efficiently.

  • Created Test maps for all types of enemies to test their traversal and locomotion so our animators can use them to adjust animations.

  • Tweaked Grunt and Two head enemy Head, Chest, and Tentacles weak spot to accommodate player ranged attacks.

  • Solved several AI bugs.


In the end, this whole process taught me how to work in a huge team and how to give value to this team which became fruitful and a life-changing experience that leads me to my first ever AAA game credit and gave me direction to a career as AI Engineer.
 

bottom of page