Darwinbots
Avidaなどのシミュレータでは、進化していく人工生物に対して非常に限定された適合度関数を定義している。例えば「『特定のタスクを行った生物』に、報酬としてエネルギーを与える」といったものである。Darwinbotsでは、個々の生物の適合度は全くチェックされない。エネルギー供給は、シミュレーション開始時に植物とみなされた個体とその子孫に対して、均一に行われる。
その結果、実際の生物と同様にそれぞれのボットは生き残ることと自己複製することの能力にのみ特化して進化していくことになる。そのため、他の人工生命シミュレータに比べてDarwinbotsは実際の生物との比較がより容易なのである。
しかしこの点は諸刃の剣でもある。外部的な適合度関数が全くない為、その能力が生存に適しているのかどうかを判断することが非常に難しいのである。このことは、特に新しいユーザの不満を引き起こしやすい。
Darwinbotsの設計原理は他の多くの人工生命シミュレータとは根本的に異なっている。
全てのボットは自分専用の半保護されたアドレス空間を持つ(別のボットに属する領域の内容を変更することも出来るが、これは非常に攻撃的な手段であり、互いに接近しなければならず、またこの攻撃から身を守るための対抗手段も存在する)。
すべてのボットが1つの周期で自分自身のDNAコードを「全て」実行する。そのため、ボットのDNAが複雑になっても実行速度を犠牲にすることがない。これはTierraやAvidaなどのタイプの人工生命シミュレータと大きく異なる点である。
提供される仮想環境は離散的な平面世界ではない。つまり、それぞれのボットがマス目状に配置されているわけではなく、この点でセル・オートマトンとも異なっている。
全てのボットはsysvarsと呼ばれる特定のメモリ領域を介して世界そのものと相互作用できるという、基本的かつ高度な能力を有する(sysvarsは「一連の物体を前方に加速せよ」「接続糸を打ち出せ」といったものである)。DarwinBotsはこの特徴により、他の人工生命シミュレータのように計算処理のために進化するのではなく、食物を追いかけたり、余分のエネルギーを利用して筋肉を形成したり、あるいは現実の生物の様に各種の問題を解決する為に基本的な性質を組み合わせて新しい手段を獲得したりする。このようにしてDarwinbotsは能力の進化ではなく「習性」の進化をシミュレートするのである。