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 state machine with an unmanageable transition table.
A custom agent model rather than fighting the navmesh
A car cannot strafe, stop instantly, or turn on the spot. Rather than bending the built-in agent, the navmesh was used purely for pathfinding and a separate layer decided how a vehicle should follow that 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. Writing a vehicle agent model on top of it was the first time I had to properly separate what a system decides from how a body executes it.
- Separating what to do from how to do it is what made the driving AI tractable, and it is the same split that shows up in every system I have built since.
- Physics gives you plausibility for free and fun for nothing. The fun is entirely in the tuning.