How is Artificial Life Implemented in this Game ?

The behavior of the monsters is governed by about 50 parameters, which are used as genes in a genetic algorithm. At the end of every arena the monsters that have inflicted the most damage on the players are saved to file and used as the parents of monsters in subsequent games. Monsters who are close to another monster that manages to hit you get a percentage of the credit. There are 3 separate parent files for the 3 species of monster in the game.

In arena 1 the monsters have all their genes set randomly, in arena 6 all genes are inherited from parents, while in the intervening arenas the monsters have appropriate mixtures of genes from the parent file and random genes. The credit that monsters have received for hitting you or for assists and that determines their position in the parent file (the higher up they are, the greater their chance to become parents) is reduced by a small percentage every time you play, so that no monster can stay in the parent file forever.

Since evolution is a slow process which needs larger populations than can be maintained in this game world, we have decided to start with monsters which are already reasonably competent. Everything they can choose to do makes sense somehow, and the ranges wherein their genetic parameters can vary are all chosen so that the resulting behavior is not too dumb. While this has advantages for players, it brings with it the disadvantage that it is hardly obvious that evolution takes place at all. However, genuine evolution does occur and we would like to stress two aspects of this:

We believe that bSerene is well suited as a code base from which to launch academic research into aspects of artificial life and artificial intelligence. If you are a student or professor in this field, please check out our suggestions in this respect.

Interested in Artificial Life ?

There are many avenues on the web to learn more about artificial life. If your interest is academic, start here, and if you want to see lots of running programs check out this. Have fun!