Skip to content

kurema/Evolution3d

Repository files navigation

Evolution3d

物理演算による進化の再現の実験です。

概要

物理演算を用いて、疑似的な生態系を再現したものです。

捕食者(黒)と被食者(緑)の二種類が存在します。
彼らはそれぞれ、体と動きの遺伝子を持っています。
一定距離まで近づけば、被食者は食べられ、捕食者は増殖します。
一定時間で捕食者は飢え死に、被食者は増殖します。

いわゆる、遺伝的アルゴリズムではありません。

遺伝子により脳と体を定義し、物理演算上で単純な生態系を実現するという素直な方法で、進化の再現を実験しています。
結果としては現状のコンピューターの性能限界から期待したほどの進化は実現しませんでした。それでも中には興味深い個体が観測される事もあります。
恐らく、十分な規模で実験すればいずれ緻密な生態系が再現されるかと思います。

使い方

コンパイル済みのプログラムは二つあります。

名前 内容
Evolution3d.bin.zip XNA Game Framework上のプログラムです。XNA Frameworkのインストールが必要です。
Evolution3d.bin.mono.zip MonoGame上のプログラムです。たいていはそのまま動くはずです。表示に若干の問題が有ります。

どちらの場合も.Net Framework 4.0のインストールが必要です。

取りあえず様子を見たいと思った方はどちらかをインストールして一晩ほど放置してください。単なる自然選択程度の結果が観測できるはずです。現在の計算性能とプログラムでは捕食者による追尾や知的な行動は期待できません。
細かな設定等をしたい場合はXNA版、MonoGame版のどちらかのソースコードを読み解いて適当に変更してください。後者の方が手軽だと思います。画面サイズから個体数の制限まで設定はソースコードに直接書いてあります。コメントも控えめなので、フォークするより雰囲気をつかんで参考にする事をお勧めします。

注意

XNA版

  • Microsoft XNA Game Studio 4.0を利用しています。実行にはMicrosoft XNA Framework Redistributable 4.0が必要です。
  • XNA Game Studioは既に開発を終了しています。その為Visual Studio 2013以降では動作しません。Visual Studio 2010以前のバージョンで開発してください。なお、物理エンジンの関係上XBox等では動作しません。
  • 実行中の操作に関しては、起動後Hボタンを押して参照してください。
  • 設定等はソースコードで直接指定しています。設定を変更したい場合ソースコードを直接参照してください。
  • 自動保存機能がデフォルトで有効になっています。一定時間ごとに現在の設定が自動で保存されるのでストレージが少ない環境では注意してください。

MonoGame版

最新の環境にも対応できるようMonoGame版も用意しました。中身は同じです。

  • MonoGame版の不具合として地面に隙間が見える事を確認しています。
  • 他に特に不具合は確認できません。ただし、dllを参照する関係上等でMonoGame対応の環境でも移植可能なプラットフォームはかなり限定されるはずです。特に移植する必要もないと思いますのでWindowsで動かしてください。

スクリーンショット

【物理演算】火星 【物理演算】金星

ライセンス

修正BSDライセンスが適用されます。 詳細はLICENSEを参照してください。

About

Simulate the evolution in the virtual world.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages