01 / THREAT ROLE
Make awareness matter.
The Feral should be a problem the player cannot solve by casually backing away or repeating one safe action.
State of Decay 3 is an open world zombie survival game from Microsoft, Xbox Game Studios, Undead Labs where players build communities, claim settlements, and survive an evolving zombie threat alone or with friends.
I joined the project as a Gameplay Design Intern in September 2025 and was promoted to Associate Gameplay Designer in January 2026.
I took the Feral from an early prototype through post Alpha tuning, bringing him far enough to save him from being cut from release. I shaped his AI and combat around a clear promise: this enemy should change how players move and commit without feeling arbitrary. The danger had to be intense, readable, and supported by behavior players could learn.

The goal was not simply to make a faster enemy. It was to create a threat that asks players to read, reposition, and make better decisions while preserving moments where they can recover and take control.
01 / THREAT ROLE
The Feral should be a problem the player cannot solve by casually backing away or repeating one safe action.
02 / READABILITY
Movement, attack timing, reactions, and sound all need to teach the player why the Feral is dangerous and when a response is possible.
03 / PACING
A disengage gives the player a breath to reassess while giving the Feral a stronger position to resume pressure.
PLAYER EXPERIENCE LOOP
COMBAT ITERATION
My first pass proved the idea before final dodge animation coverage was ready, using movement and motion warping in place of the final dodge. The Feral could leave an exchange, find a better vantage point, and create a brief reset in the player’s decision making.
The current version turns that intent into a clean dodge. An EQS query searches an arc behind the Feral for a destination with line of sight, valid navigation, and useful distance from the player. From there he can return from a position that supports more dangerous attacks such as the flurry or lunge.
The player gets a moment to breathe and choose. The Feral gets a deliberate way to resume pressure without appearing to teleport out of danger.
PERCEPTION AS PERSONALITY
Different enemies should not share the same perception model. The Feral’s visual awareness is deliberately tight, so a careful player can move around the edge of his sight.
The tradeoff is hearing. His awareness rises extremely quickly when a player moves noisily within range. Crouching helps, but getting too close still triggers aggression. That reinforces his heightened senses and prevents a trivial sneak execution.
CONTEXT AWARE DEFENSE
The first vehicle dodge pass considered speed, direction, distance, a cooldown, and a chance gate. It proved the behavior but exposed a problem: a nearby vehicle moving parallel to the Feral could still trigger a dodge even when it was not a real threat.
The next refinement evaluates whether the vehicle is actually closing in. A dot product between vehicle velocity and the direction toward the Feral filters out harmless passes, letting him keep gaining ground instead of reacting to every nearby car.
I worked with the Vehicles team to expose the velocity data the AI needed through a blackboard value.
DESIGN TOOLS
I implemented noise debugging that visualizes the range of player generated sound. Gameplay designers and QA used it to verify weapon sound emission ranges and the distance at which throwables worked as distractions.
That shortens the path from something a player feels, to a clear hypothesis, to a better design decision.
STATE MACHINE FOUNDATION
I built supporting C++ state machine systems that the gameplay team used to author AI behavior for every zombie type. That included nestable math functions that normalize a value across static or dynamic ranges, useful for updating a search range from distance to the player.
AI CONDITIONS
I built C++ state machine conditions that pull in AI target data. For example, an in target vision check reads the player’s vision cone and tests it against the AI’s position.
CHEATS AND DEBUG TOOLS
I built debug tools and cheats in C++ and UMG Blueprints that let design, QA, engineering, and audio simulate injuries, infection, death timers, and other player states without waiting for a natural setup.
DOCUMENTATION
I documented my debug tools in Confluence with step by step instructions and an FAQ, so the rest of the team could use them consistently.
ATTACK SELECTION
I built stochastic, weighted random attack selection nodes so groups of zombies stopped attacking in lockstep. For the Feral, I weighted the flurry over the stronger lunge at a 6:4 ratio to create more varied fights without overusing his highest impact move.
AUDIO AS INFORMATION
The existing spawn vocal could play once per audio instance, so several freaks appearing together could trigger the same sound repeatedly. It felt mechanical and quickly became overwhelming.
My solution was to move the major call to a threatening moment: when a freak enters Hunt after detecting the player. The first freak delivers the main roar, while others answer with shorter reinforcement calls. A different major freak can still have its own moment when the threat meaningfully changes.
The sound now has a job. It creates fear, tells the player pressure is building, and avoids turning an important cue into noise.

RISK READABILITY
The intention was to make decomposed zombies, plague zombies, and Bloaters the clear carriers of serious infection. Their heavy attacks can apply roughly 30 percent infection, making the source of danger easy to identify and important to prioritize.
I compared damage per proc, average damage per proc, attack duration, maximum accumulated damage, and the attack cycles needed to fully infect a player. That made it possible to tune the system around encounter risk instead of isolated numbers.
Players can learn which enemies demand space, which attacks cannot be ignored, and when infection focused consumables are worth using.
ALPHA READINESS
Before Alpha, the Feral already felt threatening, agile, and lethal. The remaining risk was consistency. Traversal needed to hold up through windows, obstacles, jumps, and pounces. Movement needed cleaner floor and ceiling handling. Melee warping, directional dodges, and hit reactions needed polish so the character felt responsive rather than unpredictable.
I used that gap analysis to separate work that protected the Feral’s core threat role from work that could wait for later polish. It gave design, animation, engineering, and QA a shared order of operations for getting the whole experience ready.

Beyond the Feral, I used player data, system design, and debugging tools to make combat and survival more readable and rewarding.
I used Alpha data on knockdowns and deaths to lengthen lunge and flurry cooldowns from 6s to 10s and 4s to 6s, and extend recoveries by 10%.
Average Feral time to kill on standard rose from about 12s to 20s and players killed him 30% more often, while harder difficulties gained about 10% damage and health for veterans.
I tuned melee and ranged weapon damage falloff, weapon mods, and aim assist adhesion and magnetism. I also built premodded loot weapons at each rarity around the swaps players would actually want to make, rather than only larger numbers.
I partnered with UI on injury and infection popups so players could understand what happened, how it affected them, and what to do next. I tuned infection around the clear threat posed by Bloaters, decomposed zombies, and plague zombies.
I built and used debug tooling for weapon damage, perception, targeting, and gameplay events, then tuned behavior and combat across zombie, NPC, and companion types with that evidence in view.
The work reinforced how much a memorable enemy depends on AI, animation, audio, feedback, and technical implementation telling the same story. My role was to keep those pieces aligned around a clear promise to the player.