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.
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.
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.
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.