GRAINE
Finished
3th year's Bachelor’s degree project - University of Cergy Pontoise - 6 Month

Procedural generation of creatures and learning of survival in unknown environment. The artificial intelligence part of the creatures aims to learn survival and based on the fusion of a neural network and genetic algorithms.

Period : March 2016
Team : 5 Developer
Language : C++
Tools : Neural network, Genetic algorithm, Multithreading, Allegro graphic library
Platform : PC (Linux)
Project image

Presentation of the project

This project is carried out during the 3rd year of the Bachelor degree at the University of Cergy-Pontoise, within the "Integration project".

It is divided into two parts:

  • The generation part of the creatures, based on the procedural generation of DNA of different species and the evolution of this generation over time.
  • The artificial intelligence part of creatures that aims to learn survival and is based on the fusion of a neural network and genetic algorithms.

Members of the group

The group is composed of five people, with following responsibilities:


Procedural generation of creatures:


Artificial Intelligence :

Goal

The optimal objective of this exercise on the artificial intelligence part would have been to be able to create creatures becoming autonomous in an unknown environment by knowing only the actions they could execute. The first goal we set was to make sure that our creatures sought to feed. For this, we placed a dozen creatures at an equal distance from a food source (symbolized by an apple). We let the creatures move as they wished. At the end of a given time, we took the best creatures (the ones closest to the apple for example), mixing their neural network with a genetic algorithm and started again.

Results

After many generations our creatures began to move naturally towards the food source. Unfortunately due to lack of time, it was impossible for us to push the experience further.

Sources and project documentation

For the artificial intelligence and learning part, the information is on my Github at https://github.com/Eresia/GRAINE

For the procedural generation part of creatures, the information is on the Vincent Monot's Github at https://github.com/Agurato/Graine_DNA