The universe is effectivly unbounded (4.2 billion on a side) The algorithim uses hashed 8x8 boxes of cells, and computes the next generation by using lookup tables for added speed.
By default Xlife will run in a window taking up your entire screen. The -bw option allows you to pass Xlife the width of the borders created by your window manager, for use in the internal window size calculation.
The -geometry option sets the Xlife window size and position as per usual for X applications.
If possible, you should tell your window manager to create Xlife without a title bar; otherwise you will have to use -geometry to set the window's vertical size enough smaller than the default that the title bar doesn't crowd the bottom of the window off the screen.
Each image section is interpreted according to the format letter following its section line #. The format letters are:
A -- Absolute. Each line is interpreted as an absolute (x,y) coordinate pair.
R -- Relative. Each line is interpreted as a relative (x,y) coordinate pair.
P -- Picture. Each line in the section is interpreted as a scan line of a relative image. Each '*' character turns the corresponding bit on. All other characters leave the corresponding bit off.
I -- Include. A #I line should have whitespace-separated fields after the #I consisting of a pattern name and five optional integer parameters (x, y offsets, rotation, flip, and delay as defined in the document NEWINCLUDE). The named pattern is loaded as if it had been included in the image at this point with the given transformation applied. The offsets, if present, displace the load point of the pattern relative to the current mouse position. The include facility is useful for assembling `sampler' collections of interesting patterns, as well as maintaining structured representations of complex patterns.
B and E -- Pattern blocks. Patterns enclosed by #B <name> and #E lines are skipped when loading a whole file, but may be accessed by adding :<name> to the file name. They are useful for bundling related patterns into the same file. Access is by sequentially skipping lines not in the block, so excessive numbers of blocks in the same file may slow down the loading process. Pattern blocks may not be nested.
Relative image sections are normally drawn with 0,0 on the current mouse position (coordinates may be negative). This may be changed by including a pair of whitespace-separated integers after the format character. If this is done, these will be interpreted as a pair of x and y offsets, and the image section will be drawn with its upper left corner displaced from the cursor position by those offsets. This facility can be used to write image files that will load patterns centered on the cursor.
A leading image section with no header line is treated as though it had a `#A' header. Thus, version 1.00 image files will load properly.
N -- Name This line contains the internal name of the pattern (which may differ from the XXX.life name of the file.
O -- Owner This line contains information on the person who wrote the file, it is written in the form: id "name"@machine date, for example.
#O jb7m "Jon C. R. Bennett"@sushi.andrew.cmu.edu Fri Jan
12 18:25:54 1990
C -- Comment Lines begining with "C" are comments that the user may have automaticaly writen to the save file, and which may be viewed from withen Xlife.
More section formats may be added in the future.
Original X code: Chuck Silvers cs4n@andrew.cmu.edu
Auto-sizing, X options and load format enhancements: Eric S. Raymond (eric@snark.uu.net)
Enhancements to #I format and user interface: Paul Callahan (callahan@cs.jhu.edu)