007 First Light

- Working as a Senior AI Programmer, contributing to tech like Environment Query System, AI Perception, HTN, Navigation, etc...
// Simple Demonstration.
[Serializable]
public class BT_Player : BehaviourTree {
public BT_Player(BB_Player blackboard) : base(blackboard) {
root =
new MemSelector(new List {
new MemSequence(new List {
new BTTask_MoveTo(ref blackboard.nextPointVector, 3.0f)
}, new BlackboardCondition(ref blackboard.heroState, Hero.State.Unprotected, Utils.KEY_QUERY.IS_EQUAL_TO))
});
}
}
Very experienced with them. I’ve implemented different AI Archetypes in Skull and Bones using BTs and a variety of decorators, composite nodes, sub‑trees and the like. Also used them while working on Ganbatte, and I’ve written my own Behavior Tree plugin for the Unity engine, which gives me a good understanding of how to use them but also how they actually work in code.
Very experienced with EQS. I’ve expanded the technology in ”007 First Light” with more generators, filters and evaluators. Used it in Skull and Bones for sea monster and ship position selection (e.g. keeping an enemy ship at the back of the player’s ship; keep an enemy ship in a position where it’s close to its allies but blocking the line of sight from the player to the allies; etc). I’ve also used it in Unreal Engine for small prototypes (e.g. simulating Final Fantasy XV AI buddy position philosophy, where the agents stay at the front of the player’s direction and in the camera view while roaming in the world).
I’ve implemented pathfinding algorithms like A* (e.g. in a project where many agents are placed in a room with fog of war, with the goal of finding the room exit and informing the other agents where the exit is). In ”007 First Light”, worked on generating paths with Navigation Links and coded how the agents use said links, with animation integration. Also implemented Dijkstra algorithm for a GPS app that lets users see the shortest path from a starting to an ending location.
Experienced with both HSM and FSM for controlling AI agents, for the player controller, and for animation graphs. I’ve used HSM in Skull and Bones for sea monsters, and on Far Cry 6 for the player controller state machine (for hierarchical states like Ground/GroundMove/GoundSliding).
Programmed numerous gameplay features that required mathematical concepts, like enemy perception (vision and hearing), stealth cover system, hover car vehicle, evaluators for environmental spatial queries, etc...
I thoroughly enjoy designing new gameplay systems from scratch and coming up with a good architecture to make it as efficiently designed and data-driven as possible, using design patterns whenever possible. Allowing designers to create different gameplay scenarios just by manipulating data is something I always strive for.
Experience working with Animation Graphs, like defining the different animation state machines and their transitions, making use of additive animations, as well as blending between different ones. This is an aspect of game development I find very rewarding, it's a bridge between tech and art where the character comes alive!
I’ve used techniques like client‑side prediction, server reconciliation and entity interpolation for the Unstatic project. I also have experience working with replication models in AAA games and personal projects
Tracking bugs with the help of data breakpoints and memory changes, making good use of the callstack and the watch window, and loading in dump files when a crash happens can help with pinpointing the issue and fixing it ASAP.
Languages: C++, C#, C, Javascript.
Engines: Unreal Engine 4, Unity and other AAA proprietary engine technologies.
Version Control Software: Perforce, Git.