What it was
Exhausted is an apocalyptic vehicle combat game. The cars use PhysX, tuned to keep some weight in the handling while still being fun to throw around an arena. There are different cars, weapons and environments, with an arcade mode for getting straight into it. I built behaviour-tree AI and a custom navmesh agent for the enemy vehicles. And a lot of explosions.
Build
- Unity PhysX handles the vehicles, with tuning for an arcade feel.
- Behaviour trees drive the enemies, covering pursuit, avoidance, aiming and retreating.
- A custom vehicle layer follows paths from the navmesh.
- The game has several cars, weapons and environments, plus an arcade mode.
Key decisions
Behaviour trees
The driving AI had several things to manage at once. Behaviour trees let me work on those separately without building a large table of state transitions.
Vehicle handling
I wanted the weight and impacts from the physics simulation, then adjusted the handling until the cars were enjoyable to play.
Lesson learned
The built-in navmesh agent expected something that could walk.the rest of it ↓fold it back up ↑
Unity's navmesh agent assumes something that walks. It can stop, strafe or turn on the spot, all fairly unhelpful assumptions for a car. I used the navmesh to find the route and wrote a separate layer for how the vehicle would drive along it.