pretend this says something topical and clever


by plushpuffin

MacTierra for Windows

MacTierra was/is a port of Tierra for the classic Mac OS. It had many things Tierra lacked, such as a nice graphical interface with easy to understand genome inspectors and charting.

ERGOT is my attempt to replicate MacTierra's feature set on the PC. I am writing it in C# with the .NET framework. This is my first real non-console application, so be kind. smiley

Initial builds of ERGOT required a text file called ancestor.txt, which was loaded as the initial ancestor creature into the soup. This is no longer necessary. The ancestor is now hard-coded into the executable, and will be auto-loaded into the gene library if there is no GeneLib.xml file in the current directory.

I have also implemented rudimentary (and very inefficient) genetic profiling via the Census window. It displays the various extant species, their current population, total population (living plus dead), and peak population (max ever living at the same time).

To start experimenting, run ERGOT.EXE, open up the Gene Library from the View menu, and drag "81/ancestor" from the library to the soup. (The soup is the big black square)

You can save and restore the state of the Machine at any time, but it isn't guaranteed to be deterministic that way, since there is some rearrangement of the creatures in execution order that way, and the pseudorandom number generator is reset. Oh well!

At this point, the feature set is fleshed out enough, and the code is stable enough, that I can safely declare this application out of alpha.

I haven't decided on licensing terms yet, although I'll probably release the final product under the GPL. Feel free to browse the source code, and if you notice anything I'm doing that seems really stupid, it probably is! Please let me know!

I'm quite proud of my latest effort, in that I managed to double the speed over previous versions by using fast-modulus, lookup tables for the finite state machine template-finders, recycling of dead creature objects, and as much bit-shifting (instead of multiplication/division) as I possibly could.


posted by plushpuffin (21/1/2005)