The official vertical slice trailer. · Watch on YouTube

Eleven months, three people, and an engine none of us had shipped anything in before.

Undying Consciousness came out of Endless Studios Cohort 5 — a capstone programme where teams build an original game under daily guidance from working developers. I took the lead programmer role, which in a team of three meant owning essentially all of the gameplay code.

What we delivered was a vertical slice: not a demo level, but a full-fidelity cut through every system the finished game would need — traversal, combat, AI, and destruction all working together at shipping quality in a bounded amount of content. That scope choice is why the systems below had to be properly built rather than faked.

The loop

Three loops feeding each other rather than one linear chain:

  • Explore — reach a new area, talk to someone, wander it.
  • Combat — an encounter or ambush interrupts the exploring; fight, survive.
  • Unravel — surviving opens dialogue, which unravels a mystery, which progresses the story and unlocks the puzzle that opens the next area.

Combat isn’t a separate mode you enter, it’s the thing that interrupts exploration — which is why the AI had to stay readable while the player was mid-traversal rather than squared up and ready.

Motion warping and parkour

The traversal system was the hardest part and the piece I’m most attached to. Parkour animations look wrong the moment the character’s hands don’t land where the geometry actually is. Unreal’s motion warping lets you retarget an animation’s root motion at runtime toward a real target in the world, so a vault animation authored against one ledge height adapts to whatever the player actually ran at.

Getting it to feel good meant a lot of tuning on the detection volumes and the warp targets, and a lot of walking into walls at slightly wrong angles.

Enemy AI and destructible environments

The AI needed to stay legible under pressure — a thriller falls apart if the player can’t read what a threat is about to do. Destructible environments complicated that, because the navigable space changes as the level takes damage.

Optimisation

Build times were quietly eating the team’s iteration loop. Cutting them, and profiling the runtime hot paths, was less glamorous than the traversal work and probably mattered more to how much we shipped.

Outcome

The game ranked first in the cohort at the end-of-programme showcase — a public hall with players, attendees, and investors trying every project on the floor. Afterwards the team was invited onto a panel to talk through the game and how we built it, in front of a live audience.