We wanted to design a maze game and decided that it could be an an opportunity to practice implementing a genetic algorithm.

G3nMaze evolves a maze by attempting to maximize the amount of steps Dijkstra's algorithm requires to solve the current iteration of the maze.

We made the game interface using the golang game engine (g3n) and programmed the genetic algorithm to modify the maze using the minimum number of steps required by Dijkstra's algorithm to solve the 2D maze space as a metric of fitness. We implemented and extremely simple tcp server in golang for basic multiplayer functionality.

We hope to finalize the multiplayer tcp server. In the future we hope to utilize G3nMaze as a testing environment for any future machine learning projects. Ideally, we would utilize this in the context of adversarial neural or evolutionary agents where one agent designs the maze and the other agent attempts to solve the maze.

Built With

  • g3n-game-engine-for-golang
  • golang
  • golang-tcp
Share this project:

Updates