Simon M Lucas


The aim of the game is to design or evolve a controller for a single-celled creature, such that creatures of your species will dominate the play area and eat as much food as possible within the allocated time. 


The interface for a controller is very simple: you implement two methods - one for the force vector, and one for deciding when to split

 public interface CellControl {
     // return the force vector
     public Vector2d getForce( CellModel me, Collection particles );

     // decide whether or not to split
     // will only be called when the mass is greater than
     // some minimum threshold mass
     public boolean split( CellModel me );

The game can be played for a solo-species, or in competitive mode where a species of cell tries to eat cells of all other species.  Interesting dilemmas arise.  Each cell chooses when to split.  Splitting is good, because more cells means more parallel eating.  Splitting is also bad, because smaller cells get eaten by larger cells!

Demo Applet

View the current demo applet here (your web browser (e.g. Internet Explorer) may need the Java plugin to run this - needs JVM >= 1.2).

The image below from the Demo applet shows a single species in action based on simple greedy control logic.  Hit the back button on your browser to stop / reset the simulation.



Why Cellz?

Cellz aims to be simpler than many other a-life simulations (see link below), while still offering an environment in which richly complex behaviour can emerge.  When played with multiple species, it offers a very direct model of evolution.  Species can mate and mutate, with strong selection pressure - the fitter offspring are less likely to be eaten!


There are many excellent a-life simulations and resources - these are a few...