Cellular automata (CA) are virtual particles which are emitted from agents, such as food and plants, allowing creatures and other agents to "smell" this agent and make navigation decisions accordingly. Cellular automata were introduced in Creatures 2 and expanded in the Creatures Evolution Engine games such as Creatures 3, Creatures Village and Docking Station.
In C2, CAs were used for a few room properties such as light, but more were added in later games, and they are emitted by agents instead. Sometimes the emitting agents are invisible so as to give the appearance an area is emitting CAs; for example, an agent in the Grendel Jungle emits Grendel Home smell, which entices the Grendels to live there. CAs are called "scentons" in the help menu for the smell emitter.
In creatures, the Cellular Automata enter through the foot that is in contact with the ground, then interpreted by the smell lobe. The reason why creatures smell with their foot touching the ground is to avoid changes which could happen when creatures turn around. Creatures also emit smell themselves depending on their genus: Norns emit the Norn smell (12), while Grendels and Ettins emit their own smells respectively. In Creatures Village, male and female norns have different CA scents.
Cellular automata are used in Creatures 2, Creatures 3, Docking Station and Creatures Village as follows:
|Pressure||Air pressure; creates wind|
|Radiation||Gives creatures heavy metals, causing mutations and sterility|
Rooms also have organic nutrients and inorganic nutrients, but these are not modeled as CAs.
Creatures 3 and Docking Station
|Number||Name||Agents linked to|
|3||Water (from the sky, often used by plants to grow)||--|
|4||Nutrient (used by plants to grow)||--|
|5||Water (bodies of)||--|
|11||Creature egg smell||Creature Eggs|
|15||Norn home||Norn Home|
|16||Grendel home||Grendel Home|
|17||Ettin home||Ettin Home|
Note that CA 0 (Sound) does not appear to be properly implemented in the engine.
Fan-made expansions in C3 and DS
Players have created fixes which give greater use of the cellular automata available as below:
- The Butterfly Norn Flower Smell creates a flower smell by associating CA 9 with plants and flowers.
- Critter and Bug Smells links CA 0 to critters and bugs.
- Detritus Smell - links detritus to CA 9, conflicts with the Butterfly Norn agent above.
- New Toy Smell links toys to CA 19.
Players have also created agents that allow experimentation with CAs:
- CAev - creates CA emitters easily in-game.
- Heat Transfer - allows for heat to transfer through water.
- Magic Words - a module allows for easy creation of CA links (encourages exploration behaviour).
|Number||Name||Agents linked to|
|1||Movers||Movers (2 2 0)|
|2||Anims||Animated toys that lower boredom and raise sleepiness (2 3 0)|
|3||Lonelies||Toys that reduce boredom and loneliness (2 8 0)|
|4||Instruments||Instruments (2 11 0)|
|5||Clothes||Clothes (2 26 0)|
|7||Protein||-- (2 22 0)|
|8||Fat||-- Cake (2 23 0)|
|9||Carbohydrates||-- Carrots, fruit (2 24 0)|
|10||Food Vendors||-- (2 35 0)|
|11||Scaries||Things that go bump in the night and scare norns.|
|12||Male Norns||Male Norns|
|13||Female Norns||Female Norns|
There are various CAOS commands used to control cellular automata and to give them meaning to creatures or agents.
The command ALTR is used to tweak the existing CAs in a room by a certain amount, often seen in decomposing critters, food, etc. It does not have to be the same CA as the one CACL-linked to its genus.
- CACL (command) FAMILY (integer) GENUS (integer) SPECIES (integer) CA_INDEX (integer)
The command CACL is used to link the CA to an object in the Creatures' minds, for example, that smell 18 means a gadget. In DS, this can be seen in the Bootstrap cos file z_DS agent smells.cos. In C3 this can be seen with the Bootstrap cos file z_agent smells.cos. The agent included with the Butterfly Norn creates a flower smell by associating CA 9 with plants and flowers.
The command EMIT is commonly used in the creation script of new objects to make it smell like its genus (as determined by the command CACL.)
HIRP is used to tell what room has the highest concentration of any given smell. Used by agents.
- LINK (command) ROOM1 (integer) ROOM2 (integer) PERMEABILITY (integer)
Cellular Automata only travel between rooms which are linked horizontally, not vertically. To link vertical rooms (as is used in the lift shafts) the command LINK is used. In DS, this can be seen in the Bootstrap cos file "lift ca linkers.cos". Using the LINK command without the permeability value returns the permeability between the two rooms.
LORP is used to tell what room has the lowest concentration of any given smell. Used by agents such as the gnarler.
- PROP (command) ROOM_ID (integer) CA_INDEX (integer) CA_VALUE (float)
The command PROP is used when making metarooms to set the amount of a CA in a room, and if you leave out the CA_VALUE it returns the amount of a CA in the specified room.
- RATE (command) ROOM_TYPE (integer) CA_INDEX (integer) GAIN (float) LOSS (float) DIFFUSION (float)
The RATE command is used to set how fast a smell travels through rooms. This command is used in the !map.cos file and in the Heat Transfer agent which allows heat to travel through water. Using the RATE command with only ROOM_TYPE and CA_INDEX returns the gain, loss and diffusion values for that smell/room type combination.
- CAs and You! - Naturing Nurturing
- Creatures 2 Room Editor Tutorial - World Building Basics - CDN article explaining how CAs work in C2 (archived)