開発・投稿したゲーム紹介
どんなゲームか
名前は「Treasures」
フィールドにあるお宝を集めつつ、敵から逃げるドットイート型のゲームです。
フィールドのお宝30個を集めて、ゴールへ到達できればクリア。
より速くクリアすることを目指します。
使用したモノ
- Node.js
- vite
- typescript
- phaser3
開発時に困ったときはどうしたか?
ChatGPTに質問してました。
というか、ほぼ全てのことをChatGPTに聞いてたかもしれません。
ChatGPTに聞いて、コードを書いて確認。
ChatGPTに聞いて、コードを書いて確認。
ChatGPTに聞いて、コードを書いて確認。
もうとにかくこれの繰り返しです。
コードだけでなく、ゲーム画面の大きさとか、ありとあらゆることを質問してはアドバイスしてもらいました。
ホント、ChatGPT様様でした。
敵の動きを解説
ターゲットとなるポジションを定め、そのポジションに最短へ行ける方向に移動してます。
最短で行ける方向は、「幅優先探索」を使って調べてます。
このゲームは、ブラウザのフレームレートが60FPSであることを前提に作りました。
で、「ターゲットポジションの決定」→「幅優先探索」→「最短方向へ移動」を1フレームで実施してます。
幅優先探索はそれなりに時間を使う処理です。
1フレーム以内で間に合うのか微妙なところでした。
ですが、マップが32×42と狭いものを採用したこともあり、結果は1フレーム間でも十分間に合いました。
ただ、下記の処理で時間を短くする工夫はしています。
- 実施した幅優先探索の結果を記録しておき、過去に実施した探索は使い回す。
- ゲーム開始前など、待機しているときにまだ実施してない幅優先探索を実施して記録しておく。
実際、上記箇条書きの工夫は必要無かったかもしれませんが、時間制約は十分クリアできました!
おわりに
最後まで読んでいただきありがとうございました。
具体的なコードは上げてないです。
ですが、幅優先探索をしても円滑にゲーム処理をする工夫や困ったときの解決法が伝わればうれしい限りです。
ぜひ1人でも参考になれば幸いです。