← Back to projects
Wushu Studios, contracted by Undead Labs (Microsoft) · 2023–2026

State of Decay 3

This project is still under NDA, so everything below is deliberately genericised, no specific features named. It's my first open-world project, and a huge undertaking, with issues that can crop up in more places than you'd expect.

  • C++
  • Unreal Engine 5
  • Perforce
  • Gameplay Systems

Movement & Transitions

A large part of my work centred on rotations and transitions, keeping motion smooth across a huge range of situations. Any jitter or hitch was mine to track down and sand away, with quaternions used throughout to avoid gimbal lock.

Gameplay footage courtesy of GameSpot.


Physics & Submergence

I implemented the game's submergence handling and contributed more broadly to the physics systems, alongside ongoing work nativising Blueprint logic into C++ for performance.


Engine Foundations

I also helped expand core Unreal Engine fundamentals for the team, including primary data assets for designers to build on, and made extensive use of ImGui for in-game debugging.


Input Handling

Other work included handling input and wiring it through into the physics systems, alongside a range of smaller supporting tasks.


Data-Driven Tuning

Most of the system's behaviour is exposed to designers through data rather than hardcoded in C++, so it can be iterated on without engineering involvement. Alongside that, I built debug tooling to visualise and tune behaviour live, which made tracking down exactly which part of the system was causing an unwanted result far faster than guesswork.


Broader Contributions

This has been the largest single piece of the project, but the work has grown well beyond it. Over three years I've also contributed to core physics and handling systems, a library of supporting gameplay assists, the runtime data and attribute systems those rely on, and a large in-editor debug and tuning tool used across the team, alongside other supporting systems that tie into the rest of the game. It adds up to hundreds of submitted changes across well over two hundred files, including native engine-level contributions as part of a broader pattern of nativisation work: converting higher-level logic into native C++ for performance.


This is active work for Undead Labs, so I'm keeping things vague until the NDA lifts, at which point a fuller write-up goes here. Happy to talk through the systems at a high level in the meantime.

← Back to projects