ロゴ ロゴ

ジャンケンシューティング【C++/OpenSiv3D】

はじめに

Den3GameJam2週目でシューティングゲームを作りました。

つくったのは一か月くらい前ですが、今更GitHubにあげてブログも書きます。

プレイ画面

制作環境

言語:C++

ゲームライブラリ:OpenSiv3D

制作時間:測ってないけど結構かかった

リンク

https://github.com/5jikinoko/JunkenShooting

リンクにダウンロード先もあるので、ダウンロードして遊んでみてください。

ルールとか仕様はREADMEに書いてるので、ブログでは制作した感想を書きます。

制作同期

初めは『ジャンケン』というお題だったのですが、後から『+α』というお題に変わりました。既存のゲームに何か+αしてゲームを作るというものでした。ジャンケンというお題が出たときに、ジャンケンとシューティングゲームを組み合わせるという発想が既にあったので、そのまま作りました。

なんと部内でアイディア被りがありました。操作の感覚とか的の出方は結構違うのでどっちも遊んでみてください。

実装

前にOpenSiv3Dでマインスイーパーを作った時はアセット管理機能を知らなかったので、Textureをstatic変数で使うというよくある間違いにある間違いをしてしまいました。今回はアセット管理機能を使って実装しました。

Scene::DeltaTime()を使って、フレームレートに左右されない実装もしました。

落ちてくる的と発射する弾は共通点が多かったので基底となるクラスをつくったのですが、継承ではなくそれぞれのメンバ変数として保持する実装にしました。どっちがベターなのかはわかりません。設計の勉強もしないといけませんね。

工夫した点

発表会のときは落ちてくる的に勝つ手を撃つだけだったのですが、改善案があったので先ほど実装しました。落ちてくる的に引き分けるまたは負けるような弾を撃つモードも追加して、的が30コ落ちるごとにモードが変わるようにしました。

これは結構良い改善でした。ルールが変わることで単調さがマシになりました。改善前は全然失点しなかったのですが、ストループ効果?みたいな感じで間違った手を撃ってしまうことが増えて、緊張感が出ました。

おわりに

子供でも遊べて、難易度もいい感じのゲームができたと思います。脳トレになるかも?

一方で音が出ないので爽快感が足りないという欠点があります。実装はそこまで手間ではないので(BGM探しはめんどくさそう)、文化祭でだすことになったら音声も追加してみようと思います。

コメント入力

関連サイト