An ALife Ecosystem Written in Visual Basic 5
If you have any comments or suggestion email Nigel Sim or add it to my ALife Suggestions. I am still trying
to decide if I will release the source code. When I get to a more
developed stage I will release the EXE file.
|
Last Updated: 13
December 1997
|
|
Contents
I've been thinking about this for a few months now. After
seeing ALife Garden and a few ALife program I thought it would be
good fun to try and write one myself. I only know very limited
C++ so I decided to write it, for now anyway, in VB which I am
quite fluent in.
Next came the hard part which I am still, and for a while to
come, am working. How exactly will this world work.
There are many diffent areas to this so I will split my ideas
up into them.
The World
- How it will work
- Substances
- Hazards
- Ect
The Creatures
- How will they evolve?
- What will they inherit?
- What properties should be in their
"DNA"?
- What properties other than those in
"DNA" should there be?
- What defines their movment?
- How do they fight?
- What physical properties will they process?
- What will define how they are displayed?
The World
The world is a square 2D layout, with the food and
creatures placed randomly accross the area. Currently there
is no terrain but clumps of substances and terrain such as
water and hills could be added to produce pools of creatures
that are vastly different to the rest. The planned terrains
are water, plains, hills, and rocks.
- How it will work: I have made the creatures into
individual control objects. Each with there own local
properties (Past data) as well as global ones (size,
speed, ect). Now this is one object. When how ever many
of them are created, with random starting values, each
will be given a chance to "decide" what it will
do. The results of these decisions to move, or eat or
whatever is passed back to the world, and when all the
decisions are in the world is updated and the cycle
starts again. Each creature has a limit on how far it can
see, so all it has to decide how to move is its current
position and the area to as far as it can see, which
maybe only one square. It could be possible to create a
kind of bookmark, for teritorial places, but this will
probibly evolve as the program becomes more complex, and
a kind of instinct driven brain evolves. It could be made
such that it wasn't so much turn based, but when a
decision was reached, it was acted on, creating the need
for a very effecient combination of properties to be
achieved for it to survive.
- Substances: Currently there is only one substance in the
world which is food. I was thinking of putting in say 10
substances which can have varing degrees of
health/harmful effects. Simular to ALife Garden. Also the
ability to sence (see, smell) some substances and aquire
a taste for them.
- Hazards: None at present
- Ect: Still working on them
The Creatures
- How will they evolve?
Maybe something like the genes have to be 90% the same to
breed would be good.
- What will they inherit? At present I have them
inheriting properties from a random parent, then
I slightly change it by a random value to
maintain some divercity. Maybe some toxins can
change the range of the random value???
- What properties should be in their
"DNA"? Currently everything in held in
"DNA" but I believe this will change
soon. I think some of their behaviour and
substance reaction and physical properties should
be held in "DNA"
- What properties other than those in
"DNA" should there be? Energy and
strength, and other physical variables.
- What defines their movment? They just bounce around at
the moment. The abilty to sence food and track it down,
and maybe even hunt other creatures or groups.
I have added a property for the distance at which the
creature can see something, and one for the distance at
which a creature can identify the object. There is a
limit at which they will seek other creatures as food as
well as a bravery property so small creatures will attack
some bigger creatures.
- How do they fight? Currently there is one encounter where
the stronger wins. I want to make it so that one of them
may run, or give chase. There will be one encounter but
there is a chance to escape. Their speed over different
terrains may determine their survival.
- What physical properties will they process? Sent, size,
weight??? Suggest
- What will define how they are displayed? Need Help