ゲームプログラム初心者が作ると勉強になる5つのゲーム
今回はゲームプログラムに不慣れな初心者のための記事です。
ゲームプログラムのスキルをアップするために、挑戦してみることをオススメするシンプルな5つのゲームを紹介します。
■1. クリックゲーム
これは画面内を飛び回るオブジェクトをマウスクリックで破壊するというゲームです。
* ゲームオブジェクトの移動
* 壁(画面端)との衝突判定と応答処理
* クリックした位置での消去判定
* 存在するオブジェクト数を計算してゲームクリア判定をする
といったゲームプログラムの基本を学べるので、オススメの題材です。
ゲーム性を拡張するアイデアとしては、敵の動き方を不規則な動きにする、視界をマウスの近くしか見えないようにする、クリックできる回数を一度だけにする(その場合は敵は一匹のみ)などがあります。
■2. フラッピーバード
高難易度アクションゲームとして、大ブームを巻き起こしたフラッピーバード。ボタンをタイミングよく押して、障害物を回避するだけのシンプルなゲームですが、遊んでいても面白いので、題材としてはかなりオススメです。
操作入力が1ボタンであり、作るのもとても簡単です。
* キャラクターを重力落下させる。ジャンプボタンで上方向に力を加える
* 障害物を何らかのルールで発生させ、右にスクロールさせる
* プレイヤーと障害物が衝突したらゲームオーバー
拡張のアイデアとしては、別ジャンルのゲームと組み合わせてみるのも良いかもしれません。
昔、Flappy Shooterというゲームを作った時は「シューティング」要素をフラッピーバードに取り入れました。
■3. シューティングゲーム
プレイヤーが弾を発射して、敵に当てて倒す……、という非常にシンプルなルールですが、ゲームとしてはとても面白く、プログラムの難易度も低めです。
プレイヤーの座標を狙って撃つ「狙い撃ち弾」を作るには三角関数の知識が必要となったり、オブジェクト同士の当たり判定の勉強になったり、弾幕シューティングを作るとたくさんのオブジェクトを管理する仕組みが必要になったりして、リアルタイムで動くゲームの基礎を学ぶことができます。
また、絵を描くのが苦手でちゃんとした画像が作れなくても、プログラムで弾幕を作ればそれっぽい見た目になって楽しい、というのもポイントが高いと思いました。
弾幕中心のシューティングゲームを作りたい場合にオススメしたいのが「白い弾幕くん」。
これは様々なゲームの弾幕を再現したアプリケーションです。(動作はWindowsのみ)
収録された弾幕はなんと100以上! 参考にするにはとても良い資料です。
■4. 一筆書きゲーム
タイルの上をキャラクターが移動して、重複無しでタイルを全て通過したらゲームクリア、というゲームです。タイルを管理するための二次元配列や、タイルの上を移動するというアルゴリズムは、2DゲームでのRPGのフィールド移動やパズルゲーム、トップビューのアクションゲームなどを作るのにとても役に立ちます。
一筆書きゲームの作り方はこちらにまとめておきました。
■5. ラン&ジャンプ系ゲーム
強制スクロールでキャラクターが走り続けて、タイミングよくジャンプボタンを押して地形を飛び移るゲームです。
古くは携帯電話のゲームで人気だった「チャリ走」、最近だとスマートフォンで遊べる「スーパーマリオ ラン」が有名ですね。
斜面の地形を作るとやや実装が大変ですが、角度がない地面であれば、下方向への力がかかっている場合のみ接地する、という判定で簡単に実装できます。
【関連記事】ラン&ジャンプ系ゲームの作り方
https://note.mu/syun77/n/nb5fe9977749e
余力があれば、2段ジャンプできるようにしたり、別のアクションを追加したりシステムを拡張して面白さを追求していくのも容易です。
また、ラン&ジャンプ系とは若干ジャンルが異なりますが、「Doodle Jump」はスクロールが上方向になっただけで、ラン&ジャンプ系とほぼ同じ地形判定でゲームが作れます。(ジャンルは「ひたすら上を目指すジャンプゲーム」?)
むしろラン&ジャンプ系よりも、ランダム地形の作り方が簡単(地形の出現位置が極端に離れていてもプレイヤー操作で何とかなりやすい)なので、こちらの方がオススメできる題材かもしれません。
◾️最後に
今回は5つのゲームを紹介しましたが、スマートフォン向けのゲームは「1ボタン (ワンタップ)」で操作できるゲームが多く、内容もシンプルで洗練されているので、スマートフォンアプリのミニゲームをいくつか参考にしてみるのも良いです。
また、今回の記事は一般的な開発環境で作るゲームを紹介していますが、環境によって得意なものは異なるので、それにあったものを作るのが、もっとも作りやすくて、勉強になるかもしれません。
例えば Unity は物理エンジンが簡単に使えるので、ブロック崩しやツムツムが比較的作りやすかったりします。
あと、ダンジョンRPGもバトルが一対一であれば、実装するのはあまり難しくありません。他にもカードゲームやオセロも良い勉強になります。
■関連する記事
もしゲームプログラムを勉強していくのであれば、こういった方針で進めていくのもアリかもしれない……ということをまとめてみました。
ゲーム開発を始めたばかりの人が陥りがちな罠についてまとめています。
今回紹介した基本的なゲーム作りに慣れたら、次は2Dアクションと2Dシューティングに挑戦しても良いかもしれません。