Skip to content
Adam Probert

For myself · Game · 2020

Exhausted

Post-apocalyptic vehicular combat with behaviour-tree driving AI.

What it was

The project

A physics-based apocalyptic vehicular combat game in Unity, built on PhysX for vehicles that feel realistic but still arcade. Multiple cars, weapons and environments, an arcade mode for instant action, and behaviour-tree vehicle AI running on a custom navmesh agent model built specifically for cars. And a lot of explosions.

Exhausted
Build

How it fits together

  • Vehicles simulated with Unity PhysX, tuned for realistic behaviour with arcade feel rather than simulation accuracy.
  • Enemy driving built on behaviour trees, making AI intent readable and tunable rather than buried in state machine transitions.
  • A custom vehicular agent model layered over Unity's navmesh, because the built-in agent assumes a walking character.
  • A range of cars, weapons and environments, plus an arcade mode for instant play.
Key decisions

The trade-offs that mattered

  • Behaviour trees over state machines

    Driving AI has many overlapping concerns: pursue, avoid, aim, retreat. Behaviour trees kept those composable instead of producing a transition table nobody could hold in their head.

  • A custom agent model rather than fighting the navmesh

    Rather than bending the built-in agent into a shape it was never meant to take, the navmesh does pathfinding and a separate layer decides how a car follows a path.

  • Arcade feel over simulation fidelity

    Realistic vehicle physics is not automatically fun. PhysX gave the weight and impact; the tuning deliberately pulled back towards playability.

Lesson learned

What I took from it

Unity's navmesh agents assume something that walks. A car cannot strafe, stop dead or turn on the spot, so I ended up using the navmesh purely for pathfinding and writing a separate layer to decide how a vehicle should follow that path. It was the first time I had to properly separate what a system decides from how a body executes it, and that same split has shown up in nearly everything I have built since.

Contact

Say hello.

Whether it’s work, something you’re stuck on, or a project you’re thinking about starting, I’m happy to chat through it.

Get in touch
  • Something you're building, or thinking about building
  • A problem you're stuck on and want another pair of eyes on
  • Anything on this site you want to know more about
  • A role or piece of work worth a conversation