IAtari

IAtari is one of the first group project I did when I specialized in computer science. This project revolved around artificial intelligence, specifically an effort to enhance an existing C++ genetic algorithm. That algorithm generated AIs capable of playing Atari 2600 games. This school project involved 3 other students and lasted an entire school year.

The AIs generated by the algorithm were basically composed of random custom assembly instructions (read a pixel, set a value in the registry, mathematics and boolean operation…). When playing, these AIs were interfaced to an Atari 2600 emulator. With each frame of the game, they executed their unique assembly code and subsequently conveyed controller actions to the emulated console.

IAtari demo of an AI playing Frosbite

The AIs that scored the best where kept for the next round and used to produce the next generation of AIs through mutation and code-mixing, akin to the principles of Darwinian evolution.

We chose two distinct pathways to enhance the algorithm :

  • Instruction Set modification and refinement : We altered the instruction set, subsequently fine-tuning it to yield superior AIs.
  • User-Experience enhancements : We improved the user-friendliness of the program by incorporating a graphical interface and meticulously documenting the codebase.
IAtari graphical interface

The code is still available on the gitlab of my school.