見出し画像

2時間でゲームを作りたかった

こんにちは。2年のtokizgです。

今日は事情があって、2時間でゲームを作る必要があったので、シューティングゲームを作ろうとした話です。

企画

今回の企画はこんな感じです。

ゲームの内容

  • ショットガンで敵を撃ち落とす

  • 銃の反動だけで移動できる

  • 敵は体当たりしてくる

  • 体力が0になったらゲームオーバー

作るもの

  • プレイヤーとショットガン

  • 空を飛ぶ敵

  • ステージ

  • 体力ゲージ、残弾数などを表示するHUD

  • タイトル、終了画面

イメージ(雑)

企画を簡単にまとめたところで、製作をスタートしました。

作ったゲーム

…結論から申し上げると、ゲームは完成しませんでした(´・ω・`)

作れたもの、作れなかったものはこんな感じです

作れたもの

  • プレイヤーとショットガン

  • 空を飛ぶ敵

作れなかったもの

  • ステージ

  • 体力ゲージ、残弾数などを表示するHUD

  • タイトル、終了画面

(半分も作れてないやんけ…)

反省

間に合わなかった要因をいろいろ考えてみました

①そもそも2時間で作れるゲームではなかった 説

時間の制約の割にはちょっと要素を盛りすぎた気がしなくもないな…と思ったり思わなかったり…

② Quaternion、ベクトルまわりが分からなすぎた

ショットガンの実装に際して、弾を散らすために発射時に角度を付けたかったのですが、角度まわりのメゾットとか数学の知識とかが足りず、調べるのに時間を食ってしまいました。。。

結局こんな感じで実装できました。

        // 省略 弾を発射するメゾット内
                for (int i = 0; i < 6; i++)
                {
                    Vector2 ammoDirection = muzzlePoint.right;
                    GameObject bullet = Instantiate(
                        bulletPrefab,
                        muzzlePoint.position,
                        muzzlePoint.rotation
                    );
                    ammoDirection = Quaternion.Euler(0, 0, Random.Range(-10, 10)) * ammoDirection;
                    bullet.transform.right = ammoDirection;
                    bullet.GetComponent<bullet>().initialize(ammoSpeed, ammoDamage, ammoLifeTime);
                }
                ammo--;
                lastFire = Time.time;
    	  //省略
    ```

この辺りは改めて勉強した方が良さそうだな…って感じました。

まとめ

企画を完遂できなかったのが悔しい…
似たような機械があったらリベンジしたいですね。それまでに勉強を重ねておこうと思います。

今回作ったゲームは、ブラウザゲーとして公開しておきます。
もし興味があれば遊んでみてください!(PCのみ対応)

プレイはこちらから:https://tokizg1.github.io/shotGun_flyer_page/

プレイイメージ

操作方法

  • 左クリック:射撃

最後まで読んでいただきありがとうございました!

いいなと思ったら応援しよう!