Vendian is an a-life simulation. Every creature runs a BASIC-like program and the program evolves. The best program wins. You can write your own programs or see evolution work.
Vendian is an a-life simulation. Every creature runs a BASIC-like program and the program evolves. The best program wins. You can write your own programs or see evolution work.
Vendian is one of my a-life projects. The idea is simple: if genetics is our programming code, why not use programming code for genetics of a-life. It makes things so much simpler. My little animals are really just little computer programs running a BASIC like programming language.
The world the Vendian live in, is full of food, represented by green pixels. Left to their own devices, these green pixels will become brighter and brighter, representing more and more food. The Vendians want to eat the food, because food represents energy and they need energy to exists and if they collect enough energy, they can have children. So they have a simple program like:
MoveForward
TestFood 0,0,1
BrancheNonEqual 1,0,2
Jump -3
Eat
TurnRandom
LoadEnergy 2
BrancheGreater 2,700,2
Jump -9
Fork 30
The first statement says move in the direction your facing. TestFood will load the amount of food found on the current square into memory place 1 (the first two parameters specify the square relative to the current position to test, the last parameter the memory place). The third statement says if the value of memory location is different from 0 (the second parameter), jump 2 (the third parameter) places. So if there is food, jump to places, otherwise go to the next statement, which says, go back three places, ie go back to the beginning. If there was food, eat will eat it. TurnRandom will turn either left or right. Then LoadEnergy will load the current amount of energy our little animal has into register 2. If the Energy is greater then 700 our animal will fork, ie split into two new animals. Otherwise it will go 9 places, ie start over.
This simple program describes the behaviour of an animal looking for food and producing offspring. Then the fun part starts. The program is copied to the offspring, but with errors. Parameters are changed, parts of programs are duplicated or removed and random statements are inserted. Not often, but sometimes. Hopefully this will lead to better animals and even carnivors. Did it? Not really. Some of the products of one night evolution seem to be better then the original, but it is hard to see what the point of the program is. But it is a nice way of passing time, as they say.
Once in every hundred duplications, the code of an animal is dumped in the subdirectory log with a random name. When the program is later restarted, all animals from this log are instantiated. In this directory you can see how your evolution is doing or you can add here your own programs and see how they do against the creatures of Darwin.
Anyway, please experiment and let me know if you find any improvements. For contact info, see the about page. I'm also interested in better animals, ie well written programs that beat this simple one. I'll post the best one and we can even have competitions!
downloadable files:
vendian.zip | Source code and windows executable. Requires Delphi if you want to mess around with code. |