Description of Floids (Translate this Page!)

  1. Overview
  2. Rules of Behavior
  3. Rules of Evolution
  4. Rules of the Game
  5. Discussion
  6. Download

Overview

Floys belong to the flocking Alife creatures variety, sharing with them the social tendency to stick together, and the lifelike emergent behavior which is based on a few simple, local rules. They differ from most other Alife flocking (Boids-type) implementations by being territorial animals that defend their territory against intruders. They are implemented as Java applets. The more advanced applets allow changing traits and personality of individual Floys (iFloys & eFloys), and also breeding and evolving the population (eFloys).

The description below covers the eFloys applet, but applies to Floys and iFloys where it is relevant. The rules of behavior are identical to all three species. The parts dealing with evolution apply only to eFloys. Other sections might be relevant to other applets. although the property names and button labels can be different.

Rules of Behavior

Floys behavior is governed by two rules:

  1. A rule specifying how to relate to one's own kind.
  2. A rule specifying how to relate to strangers.

1. How to relate to one's own kind

Identify two members of your flock that are near to you and try to stay close to them, but not too close.

2. How to relate to strangers

Rules of Evolution

eFloys evolve sexually, where each eFloy is the descendent of two parents. Mother and father are selected according to the mechanism of 'Survival of the Fittest by Unnatural Selection'. Fitness is defined by two attributes, energy and safety. If you are an eFloy, you can gain or lose these during your lifetime, and the more you have, the fitter you are.

These are the Rewards and Penalties that influence fitness:

(The overall fitness is calculated as a weighted function of both energy and safety)

Rules of the Game

How to play with the applet

Playing with static population

You can do the following:

Playing with evolution

Evolution occurs when new generations are formed from older ones. You can either create generations manually (click the Breed button) or start a continuous process where every time a stranger is killed a new generation is created (click the Start Evolution button)

You can do the following:

Discussion

The Emergent Behavior

The simple behavioral rules produce an interesting emergent behavior. When Floys are not disturbed by strangers, they seem to be very social and playful. They stick more or less together and swim playfully in their home area. However, when they spot a stranger they begin to chase and attack him. They exhibit several sophisticated tactical maneuvers, e.g. lining in a row and heading forcefully towards the intruder, or passing him by, as if ignoring him, and then suddenly turning around and attack the poor victim. They will not rest until they finish him off, and then they return to their calm and peaceful swimming around.

The Evolution Process

The evolution mechanism is built on three layers:

So we have this chain:
Evolutionary selection is done by fitness, fitness depends on the phenotypic traits, and these are defined by the genetic string. The evolutionary operators themselves (reproduction, crossover and mutation), act on the chromosome string. The whole process is quite involved and indirect.

And the result can be unpredictable:
By modifying specific traits, we influence the emergent behavior in ways that are not always easy to predict. When the evolution mechanism throws its blind operators, there is almost nothing we can tell in advance. Therefore it is quite interesting to watch the behavior and evolution of eFloys, even in this very simple system.

Download

Both source code and compiled classes are available for all the versions of Floys.

For non-programmers:

Even if you do not program in java you can use the compiled classes for running the applets offline. This is especially required with eFloys: Evolution takes time, even on a computer. Running many generations online is not the most efficient way to use the Internet. So if you want to play with the eFloys applet, download the zip file, unzip it into a directory of your choice, and load eFloys.aspx to your Java capable browser.