Difference between revisions of "Introduction"

From WikiManual
Jump to: navigation, search
Line 50: Line 50:
 
DarwinBots can be used in two completely different ways. The original goal of the program was simulation of artificial life and evolution processes. While the program has been developed mainly in this direction, it has also been used in a very different way - as a playground for testing programming skills. Instead of evolving the best possible bot for a given environment, DNA programs for bots can be designed from scratch by people. Then the designed bot are placed in an arena where they fight until one of the species wins. Several leagues have been established with different rules and the ratings are periodically updated when the new species of bots are introduced.
 
DarwinBots can be used in two completely different ways. The original goal of the program was simulation of artificial life and evolution processes. While the program has been developed mainly in this direction, it has also been used in a very different way - as a playground for testing programming skills. Instead of evolving the best possible bot for a given environment, DNA programs for bots can be designed from scratch by people. Then the designed bot are placed in an arena where they fight until one of the species wins. Several leagues have been established with different rules and the ratings are periodically updated when the new species of bots are introduced.
  
Note that it is considered animal cruelty if you reference <nowiki>*.pain</nowiki> in your DNA code, and you ''will'' be prosecuted by the ASPCA. haha, no, seriously, you can fuck with them as much as you want. Just stay away from real animals.
+
Note that it is considered animal cruelty if you reference <nowiki>*.pain</nowiki> in your DNA code, and you ''will'' be prosecuted by the ASPCA.

Revision as of 00:23, 30 September 2005

Darwinbots

Darwinbots is an artificial life simulator. Because it is an open source project, it is spread all over the net.

Please visit the links page for a listing of where the forum, home page, and other Darwinbot pages are.


OVERVIEW

DarwinBots is an artificial life simulator. Its purpose is to simulate as closely as possible some of the aspects of natural life and evolution. It does so by simulating a number of individuals who must survive like real organisms do: based on their merits.

It is impossible to model all of the factors influencing existence of living organisms. There are simply too many complicated and interrelated processes. Therefore, we must choose which aspects of life to simulate and model. Basic idea of DarwinBots is to simulate populations of individuals, called bots, whose behaviour is defined by a series of specially designed commands, or DNA. The DNA is the connection between bot's sensory inputs and its actions.

When bots reproduce, their DNA is passed to the child, sometimes with a random change, which might affect the pattern of bot's behaviour. Just like in real evolution, when a change in DNA improves the bot's ability to survive and reproduce, these new mutations will spread through the population; otherwise, they will likely disappear.

What are the bots?

The DarwinBots universe is a two-dimensional space populated by two-dimensional bots. Every bot is represented by a circle of a given size. Bot's head is marked by a dot on the circle. Around the head are the main sensory organs of bots - nine simple eyes. Aside from eyes, bots have tactile sense, allowing them to feel when they are attacked or when another bot is attaching itself to them. Right now bots don't have anything analogous to hearing, smell or taste senses.

As it was already mentioned, the sensory inputs of bots are analyzed through its DNA, which is essentially a program, written in a specially designed language, which allows random changes to affect only a small portion of the program, without disturbing the majority of the code. As a result, the program written in this language can tolerate random mutations much better than programs written in most of the other programming languages.

Like any other program, the bots' DNA manipulates values, which are stored in a special memory array. It takes values from some of the cells in this array, processes them in a bot-specific way, and writes the output into other cells. The values in output cells determine whether bot is going to move, turn, hunt, reproduce or do any other of the many things that bots can do.

Every bot has its own energy supply, called nrg . To perform an action, a bot has to spend a certain amount of energy. If nrg runs out, the bot dies. The energy supply can be replenished by taking energy from other bots in the simulation (anlogous to hunting in real ecosystems). The overall energy suppliers in DarwinBots simulations are special bots, called veggies, which receive energy for free (analogous to plants in real ecosystems).

Shots

Shots are special objects in DarwinBots. Unlike bots, which are circular and normally cannot overlap, shots are completely immaterial and don't collide with each other. Shots are released by bots using special DNA commands and they are absorbed by the first bot that they encounter. There are several different kinds of shots, which can carry energy or information.

Ties

A tie is another semi-physical object in DarwinBots. They provide connection between two bots and, aside from providing physical interaction, can be used to transfer energy and information. Ties do not interact with each other or with bots not directly connected by them. However they do interact with hypothetical media in which bots are submersed and can be used for swimming. The length of ties is variable: a newly formed tie is very flexible, but it becomes more rigid with time.

Two or more bots joined by ties are considered multicellular organisms(Multibot) and there are some special rules that apply to them.

Any given bot can not have more than three ties (v2.35). v2.37+ allows up to 4 ties.

Mutations and Natural Selection

Mutation system in DarwinBots is superior to majority of alternative artificial life simulation programs. While many other programs define a limited set of properties on which selection may act, DarwinBots' DNA code allows unlimited and open-ended variation. In addition, Darwinbots does not impose an artificial selection for a given phenotype. As a result, survival of a bot depends on its combined strategies for movement, energy management, reproduction, etc. There is no limit on sophistication of the DNA code.

However, this power is a two-edged sword. Like real evolution, Darwinbots evolution takes time. Don't expect to leave a simulation running for 3 hours and have your bots become a whole new life form. Most successful simulations require millions of cycles, which corresponds to several days of real time.

The best strategy is to find an old computer you have that no one is using, set it up to run a simulation, and forget about it for about a week.

Evolution vs. Battle Bots

DarwinBots can be used in two completely different ways. The original goal of the program was simulation of artificial life and evolution processes. While the program has been developed mainly in this direction, it has also been used in a very different way - as a playground for testing programming skills. Instead of evolving the best possible bot for a given environment, DNA programs for bots can be designed from scratch by people. Then the designed bot are placed in an arena where they fight until one of the species wins. Several leagues have been established with different rules and the ratings are periodically updated when the new species of bots are introduced.

Note that it is considered animal cruelty if you reference *.pain in your DNA code, and you will be prosecuted by the ASPCA.