Problem
Can a population of simple neural networks learn a timing-critical game from scratch, with no gradient descent and no labeled data?
Architecture
Pygame runner with randomly generated cacti and increasing difficulty; NEAT-Python evolves network topologies and weights against a fitness function based on survival; real-time score and generation stats.
Lessons learned
- Fitness shaping matters more than population size — small input tweaks changed evolution speed dramatically.