AIプログラムとかUnityゲーム開発について

探索や学習などを活用したAI系ゲームを作りたいと思います。

迷路を歩くセーラー服さん

f:id:yasu9780:20150429224420p:plain

セーラー服さんを迷路の中を歩かせました。
基本、向きをスムースに変えて、アニメーションで歩行させると、進行方向に進むという仕組みですが、
回転の角度が小さすぎると隣のマスにいけずに回転するので、回転角度を増やしました。

迷路でのゴールをゾンビに設定して、距離を比較することになりますが、
ゾンビ20体だとけっこう処理が大変になるかも?
一度計算した結果は残しておくなどキャッシュする仕組みを入れればいいかもしれません。
迷路の壁がひとつなくなるなど、動的に環境が変わった場合は、
一度キャッシュを無効にして、再度計算し直すということで。

あと、マップが大きくなると再帰でのスタックオーバーフローの可能性も出てくると思いますが、
調べるとC#は標準はスタック1MBらしい。unityはmonoなのでわかりませんが。
.net - Stack size under Mono - Stack Overflow
こちらをみると、1レベルで100バイト消費とありますが、
今のところローカル変数も使ってないし、
1MBで1レベル100バイトなら、10000は潜れるので、まあ大丈夫かな?
ちょっと曖昧ですが。
知恵袋あたりだとA*のプログラムを作っててスタックオーバーフローに困ってる人はいましたが。
C#のスタック領域 【OKWave】