Anomaly (2025)
Open World Multiplayer PvPvE VR Extraction Shooter

Project Description

Anomaly is the ultimate high-stakes PvPvE extraction shooter that mixes the best of Escape from Tarkov with Hunt: Showdown's epic PvE.

Anomaly is a multiplayer VR extraction shooter for the Meta Quest family of devices. It features 12 player PvPvE combat, an open world, weapon/character customization, and extensive looting. This game was Greensky Games' first and largest multiplayer project, which took 2 years to develop.

Anomaly was the first game I worked on professionally, providing invaluable experience in VR and multiplayer game development. As the first hire on the project, I contributed from its conception through deployment and ongoing maintenance, working across multiple disciplines. Developing for VR introduced unique technical challenges, further compounded by the complexities of multiplayer and the need to optimize for mobile VR hardware. This resulted in a very enriching work experience that greatly expanded my skillset.

While I contributed to most core systems, my primary focus in the later stages was AI development, where I had ownership over the AI systems, designing and implementing key behaviors using HTN planning, influence mapping, and state machines. Although I collaborated with others, I was responsible for ensuring the AI met both design and technical requirements while performing efficiently on the Meta Quest platform.

Contributions

AI Systems

I was responsible for the full development of the AI systems, covering decision-making, perception, target selection, and behavior execution. Utilizing an HTN planner as the core decision-making algorithm, I designed and implemented a set of sensors that continuously updated a worldstate/blackboard, ensuring efficient and cost-effective decision-making. Agent perception and target evaluation were informed by models like C4 and research from sources such as the Game AI Pro series and GDC AI Summit conference presentations.

To improve tactical reasoning and positioning, I integrated an influence map system; however, it was ultimately not used in the final game. Given the open-world nature of the game and the high number of active agents, performance optimization was a key focus. I employed techniques such as spatial partitioning, variable tick rates, time slicing, and load distribution to efficiently manage AI updates and reduce CPU overhead. AI behaviors, including locomotion and combat, were managed through state machines that controlled movement, aiming, and attack logic. Additionally, I developed a suite of debugging and visualization tools to help designers analyze AI behavior, perception data, and encounter setups, streamlining iteration and improving overall gameplay quality.

Concept Art by Laura Onderwater
Debug Visualizer for Agent Perception
Debug for Agent Occupancy Influence Map
Flying "Ceiling Dropper" enemies used steering behaviours to navigate the world

Weapon Handling & Physics

I designed and implemented a weapon handling system that allowed for a wide range of firearms, ensuring each felt distinct and satisfying to use. By parameterizing key attributes such as positional/rotational recoil, weight, and muzzle velocity, designers could easily fine-tune and create new weapons. To overcome the common "styrofoam gun" issue in VR, I developed a hand weight simulation using kinematic equations and Hooke’s Law, balancing responsiveness and perceived weight. While a PID-based approach was considered to mitigate oscillation challenges in the spring-damper system, the existing implementation proved effective within our time constraints. To streamline iteration, I also built a visualizer for weapon recoil and spray patterns, enabling designers to visually refine weapon behavior efficiently.

Targeted Hardware & Networking Optimization

Developing for the Meta Quest (2-3) posed several challenges due to the hardware's limited CPU, GPU, and memory. The open-world environment combined with the large number of AI agents placed significant strain on the system, leading to CPU bottlenecks, particularly from networking and AI processing. To address these, we employed interest management and minimized the properties sent over the network, reducing the impact of networking bottlenecks. Memory constraints were tackled through the use of Level of Detail (LOD) techniques and world/asset streaming.

Networking issues also played a key role in performance. As an FPS, high latency significantly impacted gameplay, so we reduced the amount of data sent over the network and used interest management techniques to eliminate redundant data. Additionally, careful decisions were made regarding what logic was run on the server versus what was predicted on the client to ensure smoother multiplayer experiences. Synchronizing agent behavior and animations across clients was particularly challenging due to timing issues, such as ensuring attack animations aligned with hitboxes and damage events.

To further improve performance, we offloaded nearly all AI computations to the server, replicating only the agent positions and visual states to the clients. While this increased the server load, it helped minimize client-side overhead. In terms of AI processing, we implemented spatial partitioning to enhance target selection algorithms and combined it with variable tick rates to reduce the load from distant agents. Load distribution and time slicing were also employed, carefully tuning parameters to balance performance with simulation integrity.

Gameplay & Core Systems

Throughout development, I designed and developed key player interaction mechanics in both the prototyping phase, as well as production. One such feature was the Locator Tool (a minimap system), which we initially conceived as a holographic spatial display tailored for VR's stereoscopic vision—moving beyond traditional flat minimaps to make use of depth perception and enhance player immersion. While I drove the core implementation, the system was iterated upon multiple times with valuable input from the UI/UX designer and other team members, refining it into a polished, intuitive experience. In addition to interactable objects, I also integrated Vivox VOIP for real-time, proximity-based and team communication.

First Prototype (Left), Mid-Production Iteration (Right)
Pre-Release Version

Art & Asset Integration

I collaborated with the art and audio teams to establish a pipeline for integrating 3D assets, animations, visual effects, and audio for the AI units in the game. This process involved working iteratively with all teams such that the visual and audio representation of enemy behaviors appropriately reflected the intent of designers.

Tooling & Debugging

I created several debugging and visualization tools to streamline development. These included the AI agent perception gizmos, encounter/spawner gizmos, and weapon recoil pattern editing tools. Additionally, I developed a performance analysis tool using Python and Jupyter notebooks to visualize client performance telemetry, which improved the debugging process by enabling more efficient data analysis. These tools significantly accelerated iteration and troubleshooting for both AI and gameplay systems.

Other Projects

F-Six (2022)

Physics-Based Multiplayer Hover-Racer

Vehicle Simulator (2022)

Real-Time Vehicle Simulator using Bullet Physics & OpenGL

3D Graphics Engine (C++ & OpenGL)

Simple 3D Engine w/ Various Integrations

Imminent (2022)

Retro Deck Builder (Ubisoft Game Lab 2022 - 2 Nominations)

Meat Cute (2021)

Top-Down Arcade Shooter (Concordia Makes Games 2021)