もうだいぶ前になるんですがSIRENをプレイしていたときにステルスゲームの作り方を思いつきました。
敵キャラに透明なワイドショットを撃たせ、それがプレイヤーキャラに当たったとき「発見」モードにすればいいわけです。
敵の撃つ視線弾に耐久力を持たせ毎フレームごとに減らしてやれば視界を表現できます。霧や暗闇では減少量を大きくしてやれば視界の制限もできます。
当たったときの耐久力の量に応じて「発見」「警戒」と敵の行動モードを変えるのも良さそうです。
音についても、プレイヤーが移動するときに円状に音弾をを放ちそれが敵に当たったら「注意」モードに移行するなどして表現できます。
音の場合は壁を貫通させるとか反射させるとかすればおもしろくなりそう。
こんな感じで2Dのステルスゲームを作ってみたいです。
しかし作ってる余裕がない。なので誰か僕のかわりに作ってみるとよさそうですよ。
.
迷路脱出ルートを見つけるアルゴリズムも思いつきました。
迷路を格納した配列のスタート部分に「1」と入れておき、上下左右で移動可能なマスに2を書き入れます。
次に配列を全走査し、「2」が書かれているマスの上下左右を調べ、移動可能なマスに「3」を書き入れます。
今度は「3」が書かれたマスを探し、移動可能なマスに「4」を書き入れます。
以下同様に数字を書き入れていき、ゴールにたどりついたら数字を逆に辿りながらマス目の座標を拾っていきます。
ただこの方法だとマップが大きいと検索にけっこう時間がかかりそうです。
動的にマップが変化する場合、複数キャラが毎フレームチェックするとすごく処理落ちしそう。
キャラ生成時と壁に当たった時のみ調べるようにして負荷を減らす必要がありそうです。
この方法を思いついたときは「すごいアイデアを閃いてしまった!」と思ったんですが、実は迷路探索アルゴリズムとしては有名なものなんだそうです。
ステルスゲームの視界についても、3Dゲームの世界では当たり前の知識なんだろうなぁ……。
参考になったらクリック!!
僕は、ウータさんという方のぱいなっぽという
フリーのステルスゲーで実は透明な四角や三角の判定をぶん回して相手を探しているのを知りました。
でまもっと驚愕したのは、ウータ氏がそれを作ったのは、小学生や中学生のころなわけです。
プログラム作品ではないとはいえ、それを知ったときはショックでした。
コメント by Y本 — 2009 年 4 月 6 日 @ 23:12:16
小中学生でこういう方法を思いつくとはものすごいですね。
中学生のころの僕なんて隕石避けゲームが精一杯でした。(しかもソースのほとんどをプログラムポシェットの投稿プログラムから流用)
固定小数点で座標を扱うのでさえ二十歳越えてから知ったというのに。
コメント by 坂葉 — 2009 年 4 月 7 日 @ 19:12:27
僕は、MSXでベーマガの投稿プログラムを
そのまま写して動作するのを
喜んで眺めていたレベルでした。
世の中の流れの速さ?に驚きます。
コメント by Y本 — 2009 年 4 月 7 日 @ 21:30:33
むしろ今のほうが情報やツールが楽に手に入るので、やる気のある人にとっては入門しやすいのかも。
コメント by 坂葉 — 2009 年 4 月 9 日 @ 20:23:56