Notes
on Creating Artificial
Life
My
attempt to build a real
Cyberdrome
Some
people spend their free time building
model airplanes, watching TV, or washing
their cars. In the late 90's I spent the
better part of two years building my own
"Artificial Life" simulation inside a
computer, using my own "simplified"
versions of genetic algorithms. I called
it "Cyberdrome" and eventually wrote a
science fiction novel of the same name,
loosely based on this "game." Here's a
flashback to some of my notes from that
period, which were posted on my very first
website back then.
20
October 1999
Work has
resumed on the Cyberdrome Simulator, our
3D digital recreation of Cyberdrome's
Infected Program Zone. Our current version
contains 36 memory sectors, with each
sector covering a scaled area of 25 square
miles, for a total of 900 square miles of
cyberspace to explore!
In
addition, each of the 36 sectors now
contain up to 1000 independently moving
Artificial Life forms, which means almost
36,000 new enemy programs are now
infecting our Cyberdrome Simulation. These
digital creatures currently consist of the
first four species, Bantams, Spiders,
Mantises, and Polymorphs. The remainder of
the nine enemy species will go on line at
a later date, along with perhaps a few
digital life forms modeled after
humans!
With this
many new enemy programs to deal with, our
TRACER interface ships needed to be
upgraded as well. Our software ships now
have the capability to change from their
standard Explorer modes into two new
configurations; Recon mode- 50% faster and
flight capability, but no shielding or
weapons, and Warrior mode - a sort of
"tank" configuration with double shields
and more powerful weapons, but speed is
cut in half. Also, TRACERs in Explorer
mode now have the ability to create their
own localized Quantum Tunnels, which allow
them to travel a quarter way across the 5
mile wide sector in just
seconds.
01
December 1999
All of the
one thousand ALife forms inhabiting each
of the 36 sectors of the Cyberdrome
simulation are now having their "DNA"
defined, which is my term for an
adjustable array of creature attributes or
behaviors, such as aggressiveness, herding
behavior, maximum speed, maximum
shielding, and about a hundred others. For
example, an aggressiveness factor of +100%
means that the creature will attack any
foreign species that comes within its
sensor range, while a factor of -100%
would mean that it would always run from
foreign creatures. Any value in between
would allow the creature to balance what
it is currently doing (such as eating) to
the potential threat from an approaching
foreign creature. Likewise, a high herding
value would cause the creature to stay
close to creatures of the same species,
while a negative value would cause the
creature to avoid its own species,
creating a rogue individual.
Just using
the two factors of herding and
aggressiveness, here are just a few of the
millions of possible creature types that
might emerge:
- Herding:
-100% / Aggressiveness: +100%
- A
creature born with very negative
herding behavior and very positive
aggressiveness factor would be a
great "warrior", since it would tend
leave the area controlled by its own
species and attack neighboring
species. Chances of having a long
life and breeding would be slim for
these creatures.
- Herding:
+100% / Aggressiveness: -100%
- A
creature born with very positive
herding behavior and very negative
aggressiveness factor might be
considered a "sheep", since it would
stay close to its own kind and run
from all intruders. These creatures
would probably survive much longer
than more aggressive types and would
have a better chance of mating and
bearing offspring, but with no
desire to leave their home space,
they might overpopulate the area and
use up all local resources.
- Herding:
+100% / Aggressiveness: +100%
- A
creature born with both very
positive herding behavior and very
positive aggressiveness factor would
be a great "defender", since it
would stay close to its own kind but
would attack any intruders who came
too close.
- Herding:
--100% / Aggressiveness: -100%
- A
creature born with both very
negative herding behavior and very
negative aggressiveness factor could
be a good "explorer", since it would
tend leave the area controlled by
its own species but would also avoid
all other species. These individuals
might colonize unexplored
territories, although breeding would
be difficult since they avoid their
own kind.
- Herding:
-50% / Aggressiveness: -5%
- A
creature born with somewhat negative
herding behavior and only slightly
negative aggressiveness factor could
be a good "scout", since it would
tend leave the area controlled by
its own species but would not tend
to interact at all with other
species (except perhaps to move away
from anyone who gets really close).
This scout creature could wonder
through enemy territory and possibly
gain information or even steal
resources.
10
December 1999
They're
alive! All of the one thousand ALife forms
inhabiting each of the 36 sectors of the
Cyberdrome simulation are now moving
independently and reacting to their
environment! With only a few of their DNA
values defined so far, these first
generations of digital creatures are
currently little more than mindless eating
machines. With limited resources within
the confines of the IPZ, border skirmishes
between the four main species are common.
It is so dangerous inside there right now,
our interface ships, the TRACERs, will
need to be upgraded with longer-lasting
Altered State Modules (making us invisible
to them) so that we can study their
behavior without getting the bits blasted
out of us.
15
December 1999
This past
weekend, we allowed all the ALife forms
inside our Cyberdrome Simulation to
interact for the first with other species.
Rather than observing simple fight and
flight behavior, we discovered what
appears to be a new and unknown species
growing inside our simulation, which we
are calling, Species X. We are assuming
that the creation of this new species is
"just a bug" in the code, but until this
is confirmed, we are minimizing direct
contact. The following image shows an
overhead view of one IPZ sector, and the
new species (blue dots) begin appearing in
the area between the Mantis and the
PolyMorphs within a few seconds of
beginning the simulation. This species is
able to take over the sector in under 10
minutes, converting all other species it
comes in contact with, into its own kind.
Flying through a sector in our TRACERs, we
discovered that Species X is invisible,
somewhat like a Phantom. However, unlike a
Phantom, it can be easily tracked by
scanners.
28
December 1999
The
mystery of the strange formation of
Species X has been solved! Only C and C++
programmers will understand when I say
that the symbols |= look very similar to
!= but are definitely not the same (!=
means "NOT equal", while "|=" means "OR
equal". Suffice it to say, Species X has
been eliminated with a simple symbol
change - if only it were that simple in
the REAL Cyberdrome ;)
The
Simulator is now working amazing well, and
below is an example image showing the four
main species inhabiting a
fractally-generated terrain in one sector
of Cyberdrome. The upper left image is a
top view, the upper right image is a
zoomed section, and the lower image is a
3D view from above. The lighter regions
are higher elevations while the darker
regions are the lowlands, and the blue
areas in the lowlands are lakes of
Positive Energy which the ALife programs
treat like water sources and flock towards
them when they become low on power. You
can see a group of Bantams (green dots) in
the upper left portion of the top view
image, as well as a large group of Spiders
(yellow dots) in the upper right. In the
center (inside red square) you can see
many species sharing one large Positive
Energy source (see zoomed section in upper
right screen). Red Spiders and Gold
PolyMorphs can be seen along with the
green Bantams and yellow Spiders. Enjoy
the pictures and we will return with more
updates in January. Have a safe and happy
New Year!
05
January 2000
Our
Cyberdrome Artificial life programs now
have 12 of their 100 "genes" defined.
These digital genes control attributes
such as species, gender, age, walking
speed, current energy level, energy level
required to mate, vision (the distance a
creature can "see"), strength (used in
fighting to calculate damage caused to
other creature), as well as behaviors such
as flocking (desire to move towards (or
away from) creatures of your same species)
and aggressiveness (the desire to move
towards (or away from) creatures of
different species). With only a dozen
genes defined so far, the one thousand
ALife creatures inhabiting each of the
sectors are exhibiting quite interesting
and unpredictable behaviors, especially
after a few generations.
Now that
the basic ALife Engine is working, we have
started work on the "game" aspect of our
simulator. We currently have variations of
"search and recovery" or "search and
destroy" missions where we pilot our
TRACERs inside a sector filled with up to
1000 ALife forms, and try to complete our
mission while avoiding getting the bits
blasted out of us by the indigenous
population, who, it just so happens, don't
really like us being there. Luckily for
us, the four species inside dislike each
other more than they dislike us, so we
often try to use that to our advantage. We
also have Altered State Modules which make
us invisible for a short while, decoy
mines which attract enemy fire, and other
digital weapons and tools at our disposal,
so we are not exactly helpless. Still,
these ALife creatures are the size of
3-story buildings and some of them can
move faster than we can! Let's just say it
can get pretty hairy in there sometimes.
That's when we remind ourselves, "It's
only a game!" Or is it?
14
January 2000
We have
doubled the maximum number of ALife
programs from 1000 to 2000 individuals per
sector with no noticeable difference in
simulator frame rate! With a much larger
starting population there is a greater
variety in the gene pool passed to
subsequent generations. As Martha Stewart
would say, "This is a good thing!" In
addition, the Artificial life programs in
Cyberdrome now have 20 of their 100 genes
defined. In addition, all of the ALife now
age with time. With aging, there is now a
limited age range where an individual can
mate and bear offspring. Also, when
females bear children, they lose 10% of
their strength, and must regain this
energy before mating again.
SCREENly
born children cannot mate, are very weak
and slow, and have a strong desire to
follow adults of the same species. When
they reach "puberty", they can mate and
they are at full (genetically programmed)
strength and speed, but still tend to
follow adults and avoid other species.
When the individual reaches adulthood,
which it will remain at for 80% of its
life, it will follow its full genetically
programmed series of behaviors, which may
include chasing and attacking other
species if its aggression factor is high
enough.
Old age
brings an inability to mate and a greater
probability of getting "sick". Getting
sick means that they tend to slow down,
grow weaker, and they lose their vision
(as it is with most living creatures).
There is currently no maximum age for the
creatures, but the very old ones
eventually to get so weak, blind, and
slow, that they eventually become sitting
ducks for other species to attack and
kill. It can seem cruel inside Cyberdrome
for the very old and weak, but we are
aiming for a balanced system much like it
is in nature.
24
January 2000
The
overall ALife processing cycle was
completely redefined this past week.
Originally we had each of the 2000 ALife
forms making decisions based on
directional weighting factors derived from
what its sensors perceived from the
simulated environment of Cyberdrome.
Sensor data includes how many enemy are to
the South, how much food is to the East,
etc. Then the ALife would move in a
direction based on these weighting factors
and on its current health and fitness
levels. This was a good start, but we have
noticed that the more docile and weak
ALife creatures tended to stay near food
sources (randomly generated "lakes" of
Positive Energy) while the more aggressive
creatures were usually out fighting other
species. Since the ALife hanging around
the lakes had more direct contact with
others of its own kind, they tended to
breed much more than the fighters out in
the wild. Thus, after five or six
generations, only docile sheep-like ALife
remained in the simulation. Really
boring.
So, this
week we changed a few things. First, we
created Activity Modes that help determine
what the creatures will do with all of its
sensor data. These modes include Attack
Others, Seek Food, and Mating. For
example, when in "Attack Others" mode, a
creature will concentrate on seeking
individuals of other species (to fight),
and will tend to ignore food and members
of its own species (unless it bumps in to
them of course). We also removed the
"flocking" gene described earlier, and
gave all ALife positive values (0-100) of
the aggression gene. This makes all ALife
want to seek out and do battle with other
species to some degree, and their ability
to do well in battle is determined by
their genes of speed, strength, vision,
health, plus one new gene defined this
past week: a "courage" gene which defines
how much damage an ALife creature will
endure before running away to seek food to
repair itself. A creature will stay in
"Attack Others" mode until it either runs
low on energy or is severely damaged in
battle. It will then switch over to "Seek
Food" until it finds a food source and
recharges itself, or dies
trying.
Mating is
now carried out in a completely different
manner. We now use devices called
"Replicators" which monitor species
population size and then act as a "call to
mating" when the population falls too low.
To explain how Replicators work, imagine
you have your own kingdom and that you are
an evil ruler (like CJER). You have sent
your best warriors, both male and female,
off to do battle with neighboring
kingdoms. After a few months, you receive
word that your army has been reduced in
half. Instead of waiting for your army to
die off completely, you decide to send
word out to have all remaining warriors
return home so that they can rest, find
mates, and have children. You can assume
that the warriors who made it back in one
piece, were probably good fighters, or at
least good at staying alive. You can
therefore assume that the children of two
good warriors will be naturally good
fighters as well. This is the process
commonly referred to as "natural
selection". When your army has once again
regained its full size, you send them out
again to do battle, with the children
following as soon as they are old
enough.
We have
simulated this scenario by installing
Replicators in each sector of our PC-based
Cyberdrome simulation. Now when a species
population falls below a critical level,
lets say one-third of the starting
population, then that species' Replicator
is awakened and begins to send out a
signal which attracts all members of that
species, no matter how far away they are.
When the returning creatures eventually
come within range of the Replicator, they
switch over to Mating Mode. In this mode,
they will spend all of their time seeking
others of the same species for purposes of
mating. This Replicator signal will
continue to keep the species within a
small area (allowing for ease of finding a
suitable mate) as well as supplying them
with direct energy (to keep all members
healthy and eliminate the need for them to
go out looking for food), until the
population has again grown to full
capacity. Then, all adult members of the
species switch back over to "Attack
Others" mode, and the cycle
repeats.
This new
strategy in working quite well and our
Artificial Life populations are fighting
and thriving. There is also a great deal
more variety in ALife behavior, which is
something we are after. We are still
eagerly looking forward to observing our
first true emergent behavior. We will keep
you posted.
15
February 2000
While we
have worked nearly full time this past
month to complete Chapter 6 of the book,
work continues on the simulator at a
steady, but more relaxed, pace. Issues we
are now working on include; how to get the
ALife creatures to spontaneously "develop"
certain tools, such as Quantum Gates (to
allow faster movement around Sector),
portable chargers (to recharge power when
ever needed), and memory mines (to prevent
enemy creatures from moving in to certain
areas). Also, we want the creatures to be
able to interact with the terrain itself,
for example, moving memory block around to
either get past obstructions, or to block
another creatures advancement. With
this "block moving" behavior, later
advancements made lead to the ability to
build large structures or
bases.
12
May 2000
Back to
working on the simulator with the hope of
putting out a beta demo version sometime
this summer. New items for the ALife
creatures: ALife now have a new
"occupation" gene set, which is assigned
at birth and is based on attributes such
as speed, strength, vision, etc. Three of
these occupations have been assigned so
far - they are:
- Defend_Home_Replicator
- Stay near Home Replicator and defend
it from all enemy
- Attack_Enemy_ALife
- Search for and attack all enemy ALife
- Attack_Enemy_Replicator
- Search for and attack Enemy
Replicators, avoiding other ALife
Note: An
"occupation" is what an individual does
when all other influences are normal (i.e.
it is not eating or looking for food, not
damaged or recharging, not fighting or
fleeing an enemy, and not mating or
looking for a mate.)
08
August 2000
Cyberdrome
Beta-Demo update:
The basic
idea for the demo we are working on is
that you beam in to an infected sector of
Cyberdrome in your TRACER and attempt to
locate and delete the sector's Replicator,
and then return to the sector Transport
Beam which will take you to the next
mission. The Replicator is a device which
allows the local ALife to quickly
repopulate the sector, and will be hidden
inside a protected Enemy Base which is
located somewhere inside the sector.
Deleting the Replicator will cause all
ALife in the sector to come after you, so
make sure you have a planned escape route
back to your Transport Beam before
deleting it (or at least be prepared for a
fight!).
We have
designed four levels for cybernauts to
explore for the demo. Each level consists
of a 25 square mile memory sector which is
controlled by up to 2000 ALife "bugs." You
enter the sector with Pulsars only since
no advanced weapons or tool functions can
be transmitted into infected memory. There
are, however, numerous functions scattered
throughout the Enemy base, and include
memory bridges, elevators, mapping probes,
etc. When you locate a function, simply
drive over it to download it into your
inventory.
Also, we
have created one new weapon, which when
launched at an ALife creature, will
disinfect the creature, turning it against
its fellow ALife. Having one or more
creatures on your side can be a real help
when you are surrounded by the
enemy!
A final
note: I stopped working on this simulation
a few months after this last post, and got
rid of the "C" software to compile it long
ago. While we never released this version
of Cyberdrome to the world (opted instead
to concentrate on the novel), my brother
and I still log back into this program
from time to time just to drive around
inside the ever-changing 3D world and
watch the bugs do their stuff (and
occasionally blow stuff up!) Even though
the program was written on an old 33-MHz
computer, it runs quite nicely on my
modern-day, quad-core, 3Ghz system. Must
have done something right back
then.
Finally,
look below for a proposal to bring
Cyberdrome back as a Massively Multiplayer
Online Game!
|