After some busy months finishing two books and a house, a month ago I got back to working on Unga Munga.
For those who missed it or have forgotten about it: Unga Munga is a game that features litte AI driven cavemen. The aim of the game is to develop their brains so they will learn to use tools and survive on the little planet they inhabit.
I have used last month to implement rtNEAT, the real time version of NEAT - Neuro Evolution of Augmenting Topologies. This is a variant of Neural networking that does not use complex backpropagation to train the networks, but an evolutionary algorithm. Every few seconds it kills off the worst performing brains and uses the best performing to create new ones. A key feature of NEAT is that it starts with a relative simple network and trough mutations adds new nodes that it will only keep when those nodes help to perform better. This way, NEAT comes up with simpeler networks and also learns a lot faster than the classic layered topologies.
In this video we are at the start of a training session where I want to learn the cavemen to attack enemies (and not attack friends). But to get there, we first need to develop basic skills like walking, staying near other people and turning towards potential targets. Once the little brains have the wiring to do this, we can start training them to do more complex stuff like searching and following enemies.
We can influence the training by adjusting the reproduction settings. We can tweak the way they reproduce, the chance mutations will occur and the way new innovations are protected by the spéciation algorithm.
The game is nowhere near done yet. The rtNEAT engine needs some more perfection. There will be much more actions then running, resting and attacking only, and of cause there will be mammoths. And maybe a vulcano.