■ライフゲーム

最近、興味があるのは……とゆーか、ずっと昔から興味を持っていたんだけど、今さらながら、再燃しているマイブームが「ライフゲーム」だ。「ライフゲーム」は、まわりの環境によって、誕生、進化、淘汰などを繰り返す生命のプロセスを簡単なルールに置き換えたシミュレーションゲーム。ルールに従い自動的にセルを書き換えていく「セルオートマトン」の一種、チューリングマシンとも言える。

【遊び方】画面をクリックすると好きな位置にセル(最小単位:細胞)の配置、または消去ができる。セルのパターンを作ったら「start」ボタンをクリック。あとは、見るだけ。入力が面倒な人は「random」ボタンを押してほしい。「Wikipedia」の「ライフゲーム」の項目には、増殖型の「breeder(ブリーダー)」や、長寿型の「arcon(ドングリ)」、一定間隔でグライダーを放出する「gliderguns(グライダー・ガン)」などのパターンが紹介されている。

で、「ライフゲーム」をFlashで作るため、ネットを調べたら、わずか12行の「Action Script」で作っちゃった人とか……
■psyark.jp 12行でライフゲーム
「おまけ」として、いくつかの有名なパターンを選択できるバージョンも公開されている。

さらに、いろいろな「ライフゲーム」のパターン同士を戦わせるサイトに出会った。
■ライフゲームリーグ
自分の作成したパターンで戦わせ、誰のパターンが最強かを競うゲームなのだが、これが、ホントにおもしろい。オンラインでもできるけど、じっくり戦略を練るのなら、Windowsマシンのローカルで動作する、プログラムをダウンロードすることもできる。

「ライフゲーム」は、まわりの状態によって生死が決まる。自らが生きる意志を持って、自分の遺伝子を後世に残そうとしているわけではない。そこには偶発性が入り込む余地はなく、初期状態とルールの適用によって何世代あとの状態を描くことができる。計算可能な線形力学だ。

ところで、ある種のコンピュータ・ウィルスやワームは自己自身のコードを複製することで、感染を広げていく。ある意味では生存本能を持ったプログラムとも言える。進化生物学者である「トーマス・レイ」は、自己複製をするプログラムによって進化のプロセスを探ろうと考えた。もちろん、コンピュータ・ウィルスやワームのように外部へ漏れたら危険なので、コンピュータの中に仮想コンピュータという囲いを作り、その中でのみ、実行できるしくみを作る。進化のプロセスの中で重要なのは、突然変異という考え方だが、コンピュータのプログラムは1文字間違えただけでも実行不能になる。サルがタイプライターを打ち、シェイクスピアの文学と同じになる確率は[0]に等しい。しかし、タイプライターの文字数が4文字だったら、どうだろう。詳しく知りたい人は、以下のサイトを参照してほしい
■Tierra入門
考えてみれば、Flashの「Action Script」って、ひとつひとつのオブジェクトに対して持たせることができ、それを複製することもできる。

上のFlashは、たんに、ランダムに動き回るだけ;;しかし、そこに、生物としての戦略や繁殖、進化、淘汰などのルールを適用したら、おもしろいことになりそう。酔っ払い爺の私が考えるまでもなく、とうの昔にそういったものは作られている。

■生態系シミュレーション
Windowsマシンのローカルで動くプログラムだけど、餌に向かっていく動きに、なんとしても生きようとする生物の業を感じさせる。一歩違いで、餌を奪われるシーンも度々^^; 餌の量はもちろん、コントロールできる。その中で、どんな戦略を持った人工生命が生き延びていくのか、興味は尽きない。「Stop」させて、個別の人工生命をクリックすれば、そのパラメータを見ることができる。食料が十分ならば繁殖していくが、ある割合で突然変異が起こる。攻撃属性と防御属性があり、捕食という行動によって確認できる。また、特定の種と協定を結び、しばしば、他種と行動を共にする人工生命が現われるのもおもしろい。プログラム(フリーウェア)は、作者のホームページ「暇つぶし研究所」からもダウンロードできる。

※謝辞:冒頭に紹介したFlashの「ライフゲーム」は、下記の本に掲載されている、Action Scriptを参考にさせていただいた。

ゲームプログラミングで学習するAction Script入門
ゲームプログラミングで学習するAction Script入門―Flash8/MX2004

著者:クジラ飛行机
販売元:毎日コミュニケーションズ