NEAT Twin-Stick Shooter Agent

Built a NEAT (NeuroEvolution of Augmenting Topologies) agent from scratch in C++, evolving both neural-network topology and weights without ML libraries or gradient descent to play a twin-stick space shooter. Engineered a 41-feature real-time game-state representation and self-growing neural architecture, improving score 52x ($400 \rightarrow 20,800$) and survival time 18x (15s $\rightarrow$ 278s) over 6,000 generations. Designed a parallelized experiment framework for population-size sweeps and repeated trials across CPU threads, reducing a 4-repeat, 6,000-generation, population-80 sweep to ~12 minutes wall-clock time....

October 18, 2026

I made a neural network learn to dodge bullets, from scratch

I’ve wanted to implement NEAT (NeuroEvolution of Augmenting Topologies) from scratch for a while now. Every tutorial I found online just does pip install neat-python and calls .evolve(), and that felt like cheating myself out of actually understanding it. So I built a small twin-stick space shooter in C++ with raylib, and instead of playing it myself, I let a population of evolving neural networks play it for me. No PyTorch, no gradient descent, no backprop....

September 12, 2026