目次
ゲームと目的
このゲームは「勇者を育てる」のではなく、 あえて育成をリセットしながら結果を調整するという遊び方のミニゲームです。
とはいえ、今回はあくまで「JavaScriptでゲームを作ってみる練習」が目的だったので、 完成度よりも動くところまで最短でたどり着くことを重視しました。
このページでは、ゲームの中身よりも “JavaScriptでどう作ったか” を中心にまとめています。
JavaScriptでつまずきやすいところ
- 描画が止まる:ループ内で重い処理をしすぎていることが多い。処理を分ける。
- 動きがカクつく:
setIntervalではなくrequestAnimationFrameを使う。 - 当たり判定がズレる:画像サイズと描画位置の基準を合わせる。
- データ管理がぐちゃぐちゃ:変数を増やしすぎない。1つのオブジェクトにまとめる。
JavaScriptのゲームは「構造が自由すぎる」ので、 最初はできるだけシンプルな構成にしたほうが楽でした。
AIの使い方
この制作では、AIは「丸投げ」よりも ひな形を作ってもらう相棒として使うのが一番うまくいきました。
- 「Canvasの基本ループだけ作って」→ 成功
- 「レベルアップの処理を作って」→ 成功
- 「このエラーの原因を教えて」→ 成功
- 「ゲーム全部作って」→ だいたい失敗
自分で触れるコードをベースに、 部分だけAIに補助してもらう形がベストでした。
Pyxel版との違い
同じ内容を Pyxel(Python)で作ろうとすると、次のような違いがあります。
- 見た目がレトロゲーム風になりやすい
- 画面サイズが固定で作りやすい
- ブラウザ公開にはひと手間必要
- 日本語表示にはフォント準備が必要
「どちらが良い」ではなく、 作りたい雰囲気に合わせて選ぶのがおすすめです。