Skip to content
Adam Probert

For myself

Exhausted

Post-apocalyptic vehicle combat with physics cars and behaviour-tree AI.

Sheet
18 of 25
Period
2020
Kind
Game
Org
Personal

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.

Exhausted
exhausted: project diagram

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 ↓

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.

Contact

Say hello.

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

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