Inspiration
Our inspiration for this project came from the many other PyGame projects that utilize the NEAT algorithm (Minesweeper, Chrome Dino Game).
What it does
This game uses the NEAT (NeuroEvolution of Augmenting Topologies) algorithm to evolve neural networks capable of navigating a pre-designed race track. Tweak parameters, experiment with evolution, and monitor the AI as each generation improves at avoiding walls.
How we built it
We developed this project in Python using the PyGame library for graphics and collision detection and NEAT for neural network topology growth. Starting from a basic manual driving prototype, we later focused on radar observations for the NEAT algorithm. We also tested NEAT configuration parameters such as mutation rates, species thresholds, and reward functions, which we adjusted numerous times to encourage agents to follow proper behaviour.
Challenges we ran into
We encountered numerous challenges during the production of our project. As it was our first time utilizing PyGame and NEAT, we struggled significantly with implementing the NEAT algorithm, determining which traits to favour, and generating the project's graphics. Furthermore, we struggled with our physics system, as we needed to refactor all of it quite late into the hackathon.
Accomplishments that we're proud of
Although the project is not visually nor conceptually complex, we are still proud of the fact that we were able to complete it. Due to the struggle associated with it, we are proud of our physics implementation.
What we learned
This project highlighted NEAT's sensitivity to fitness metrics and environmental constraints, as well as how minor configuration changes can quickly shift evolutionary behaviour. We also gained a better understanding of collisions and update loops in PyGame.


Log in or sign up for Devpost to join the conversation.