Genetic algorithms belong to the field of computer science and are a method of searching for optimal solutions in systems that can be described as a mathematical problem. They are useful in problems that contain many parameters and there is no analytical method that can find the optimal combination of values for the variables so that the system in question reacts as much as possible in the desired way.
Tools that were used:
- Blender 3D
- Visual Studio
- Unity3D
Finite State Machines, NavMesh, GOAP and Behavior Designer logics were applied for the AI agents.
Note that the user navigation in the project followed the logic of RTS games.
- WASD - Navigation
- Mouse - Navigation and selection in space
The objective was the implementation of genetic algorithms at the synchronous and asynchronous level. Technologies such as artificial intelligence and search algorithms were applied to 3D environments where they enabled the following functions:
- Features for each agent
- The choice of mutations of these characteristics at a synchronous or asynchronous level
- The monitoring of the above in graphs
- The influence of the environment towards the agents
Below a few images showcasing how the project looks and works:
For starters the application starts from a main menu in which the user can change the settings, or choose to start / end the application.
The user has the option of selecting two different environments. In the "LAB" world, agents mutate after specific intervals at the same time. In the "FOREST" world, agents mutate asynchronously and in real time.
When the user selects to the "LAB" world, a window appears in which they can specify the configuration settings. The following items affect the following features:
- Character Count - The total amount of agents
- Food Count - The total amount of food available per day
- Energy Limit - The life time limit of each agent
- Start Size - The initial detection range / size of each agent
- Start Speed - The initial speed of each agent
- Start Quality - The initial level of value of the food
- Randomness - A numerical means for the influence of randomness
As soon as the user presses the start button, the corresponding agents and food are created based on their choices.
The user has the option to stop the simulation at any time, to see through graphs how the features of the agents are affected and to change the time speed.
When the user navigates to the "FOREST" world, they will have a corresponding initial window in which they will be able to enter the following features:
- Character Count - The total amount of agents
- Food Count - The total amount of food available per day
- Start Size - The initial detection range / size of each agent
- Start Speed - The initial speed of each agent
- Randomness - A numerical indicator for the influence of randomness
Once the simulation starts, the agents and food are created in the enviroment.
Agents also have the ability to mate.