I started dabbling with my Web Critters project again yesterday, and had some fun analyzing early “meat eater” strategies.  It looks like successful early-run omnivores and carnivores are cannibalistic, whereas those that evolve later in a simulation tend to specialize in predating species other than themselves.  This makes a lot of sense.  It’s easy to eat your own kind, however you run the risk of eating yourself to extinction, whereas it’s tougher to find a stable second species to chew on, but once you do you can expand without worrying about your own population quite as much.

It’s little insights like this that make artificial life systems like ECHO so intellectually engaging – I didn’t codify any of these behaviours, they manifest on their own as a side effect of some extremely simple rules.

Even though I have the basic model up and running and a big backlog of work to do, I find myself tempted to rewrite the core Web Critters engine in F#, a functional programming language.  Functional languages are much better suited to the type of processing that I’m doing down in the guts of the application, and lend themselves more easily to massive parallelization.  I’ve had an F# book sitting on my desk for months because I like to try to learn new programming languages every so often (it helps me keep sharp), but of course that means that I’d take a long time to reimplement what I have because I’d be taking my first steps with the language on a non-trivial application.

I’ll have to make a decision soon, but at least I’m back to thinking about Web Critters – it’s been neglected for too long.

If you enjoyed this post, please consider leaving a comment or subscribing to the RSS feed to have future articles delivered to your feed reader.

Sorry, the comment form is closed at this time.

© 2004-2010 - Systemic Babble is created and maintained by Andrew Anderson. Suffusion theme by Sayontan Sinha