MacTierra logo

Assembling Creatures

You can drag text into the soup from clippings files, or other applications which export text in dragged items (e.g. SimpleText). To write your own creatures, the simplest method is start with the listing of an existing creature, which you can create by dragging one out of the soup, and onto the desktop (to create a text clipping), or into an application that can receive text drags. Such a listing looks like this:
      80aaa
      01  nop_1
      01  nop_1
      01  nop_1
      01  nop_1
      04  zero
      02  or1
      03  sh1
      ...
      01  nop_1
      00  nop_0
      05  if_cz
      
The instructions that comprise the creatures are described on this page. The first line contains the name of the creature. Remaining lines list each of the creature's instructions, the first two characters being uppercase hex digits, followed by a space, and the instruction that those digits represent. There is no end marker to the text -- the last line simply contains the last instruction.

Text that is dragged back into the soup must be in a similar format, or the drag is not accepted. It is parsed as follows:

The first line is parsed to extract the length of the creature from its genotype (by reading the line until a non-digit character is encountered). It is then assumed that this many lines of instructions follow. If the length given by the genotype and the number of lines in the text do not match, then extra lines are ignored, or the contents of unsupplied lines are undefined.

Subsequent lines are parsed to extract the first two digits, which must be valid hexadecimal numbers using UPPERCASE for digits A to F. These digits must be the first two characters on the line, and must lie in the range 00 to 1F. Remaining text on each line is ignored (so you don't need to type in all the instruction names).
The last line of the file should contain a single carriage return character.

As of version 1.8.3, this format is not quite so strict. The lenght of the creature is determined by the number of admissable instruction lines, lines starting with a # are ignored, and white space is also ignored.

Text that does not match these criteria will not be accepted, and the drag will zoom back to its origin. If the text is accepted, a new creature with the given genotype is entered into the soup at the drop location. It is given a new name, not necessarily the one specified in the dragged text.

Table of contents Installation Running Soup settings Preferences Statistics
Assembling Interface How it works c.f. Tierra Bugs and features Legal stuff