What it was
I made a genome that Unity can turn into a car, then sent a field of them racing over procedural terrain. The ones that get furthest breed into the next generation, with mutations changing the chassis, wheels, suspension and drive strength. You watch the races and bet on a car. That's as far as the player interaction goes at the moment, which leaves me with quite a few game-design questions.
Build
- The genome sets the chassis geometry, wheel placement, suspension and drive strength. A Unity physics body is generated from those values.
- Each generation races across procedural terrain and is ranked by distance. The top finishers breed, with mutations applied to the next grid.
- The player bets on a racer across a series of generations. There's no direct steering.
Key decisions
Vehicle representation
A single polygon was quick to generate, but it limited the shapes I could get. A set of parts with attachment points would let mutations change one limb or wheel without throwing away the whole body.
Race results
A good car can tumble once and lose to a worse one. Multiple heats or testing against several terrain seeds could reduce that luck, but they'd also change the pace of the game. That's still something to work out.
Lesson learned
Mostly I got lumpy blobs with wheels.the rest of it ↓fold it back up ↑
The chassis started as one random polygon. That gave me plenty of numerical variation, but on screen it was mostly the same lumpy blob with wheels. I want to try joined parts instead, so you can actually see a child inheriting an arm or a counterweight. Then there's what you do between races. Choose the parents? Protect a trait you like? Change the mutation rate? I haven't settled on it yet.