Evolution is a "game" or rather, more of a simulation really, taken from the book "Land of Lisp" by Conrad Barski (see: http://landoflisp.com/), where it was written in Lisp. I created a demo of that game a while back, in Lua using the Love module for graphics. Today, I've finished a demo of that game with more sophisticated GUI controls in Visual C# with .NET.
Overview
Evolution starts with a world that includes plants and animals. Plants do not move and provide energy to animals that happen across them. Animals consist of genetic material that guides their motion, as they expend energy while searching for food to sustain themselves, and ultimately, to reproduce and grow as a society. Reproductions halve an animal's energy and their newly created offspring have the chance to incur mutations to their direction-sense genetic material. During the course of a single "day" in the game, new plants are added to the world and they are more frequently added into the "lush forest" area of the map, a special section of the world designated by a square box.Hence, it stands to region that from an evolutionary sense, and under the right conditions, the animals will evolve as a society that thrives wherever the lush forest is. Any animal that adventures beyond the lush forest becomes a "roamer", and its chances of survival and reproduction are much less in the severe wilds.
GUI Controls
Under the right conditions, its easy to see, upon firing up the simulator provided by this C# demo, that the animal population will indeed converge fairly quickly upon the lush forest. To make things more interesting, I've provided a number of "god" controls for the user to play with and see how they effect the natural evolution of the animals in the game.Lush Forest
using the mouse, the user can click to establish a new grounds for the lush forest. Additionally, the mouse wheel can control the size of the lush forest. The larger the forest, the more active the plant life within needs to be, or else, the lush forest will just seem like another section of the entire world without any special properties.Speed Controls
the bottom right offers a number of controls for expediting the length of each day. This helps to see convergence happen much quicker.Parameters
A number of parameters are editable in this demo.- "Plant Growth" specifies the number of new plants per day to be added in random places in the entire world.
- "Lush Plant Growth" specifies the number of new plants per day added in the lush forest section.
- "Animal Energy Use" specifies how much energy per day is spent by each animal
- "Animal Reprod Energy" specifies how much energy an animal requires before it can reproduce.
- "Initial Animals" specifies how many initial animals to start with in the simulation
- "Plant Energy" specifies how much energy an animal will gain when it eats a plant
No comments:
Post a Comment