この記事では、ゲームプログラム初心者が作ると勉強になるゲーム20選を紹介します。

プログラムを覚えたけど、どんなゲームを作ったらいいのかな…?
と悩んでいる人におすすめの記事だよ!
目次
1. タイミングゲーム
難易度:1

まず1番目はタイミングゲーム。
ボタンやタップなどをタイミングよく行うゲームです。
特にキャラクターなどは存在せずに、抽象化されたゲージなどがよく使われます。
例えば UNDERTALEで敵にダメージを与えるためのゲージなどですね。
左右に動くだけのオブジェクトが中央になったタイミングを狙ってボタンを押すものです。
このシステムは昔から使われていて、ゴルフゲームやビリヤードなどでよく使われるシステムですね。
ちなみにこのタイミングゲームがより高度・豪華になったのが「音ゲー」や「QTE」となります。

シンプルだけれど、ゲームの面白さの基本となるシステムね
2. クリックゲーム
難易度:1

これは動き回るオブジェクトをクリックして破壊するゲームです。
タイミングゲームと違って複数のオブジェクトを管理する必要があったり、対象のオブジェクトの移動がXY軸などの2軸以上の移動になっていて、少し複雑になりますね。

クリックやタッチ判定が作れれば、誰にでも作れるゲームだよ
3. ブロック崩し
難易度:2
ゲームエンジンがない時代は、衝突判定と衝突応答を作る必要があって少し難しかったですが、最近は物理エンジンで衝突処理を何も考えなくても作れるので、難易度は「2」としました。
クリックゲームよりも難しい点は、プレイヤーが操作する対象となる「パドル」やブロックを壊す「ボール」の存在などオブジェクトの種類が増えることです。
そのあたりのオブジェクト管理が理解できてれば簡単に作れます。
あえて物理エンジンを使わずに、「当たり判定を自作」するとゲームプログラムの勉強になって良いかもしれませんね。

ゲームエンジンのチュートリアルとして、最もよく使われるゲームジャンルですね
4. 2Dシューティング
難易度:2

本質はブロック崩しと変わらないので、難易度「2」としました。
ブロック崩しと同様に、オブジェクト管理の基本が学べるよい題材だと思います。
ブロック崩しと少し違うのが、敵が動いたり弾を発射することですね。
その点、ブロック崩しと比べてオブジェクト管理がやや複雑です。
2Dシューティングが好きかどうか、にもよりますが、個人的に好きなジャンルなので、ゲームエンジンを変えたときなど練習用によく作る題材です。
なにより、弾幕のパターンを作るのが楽しい!
3Way弾、回転弾、Whip弾、ホーミング弾、レーザーなど、様々なバリエーションを試してみても良いかもしれません。

今でも人気の高いゲームジャンルで、熱狂的なファンも多いよ!
5. フロッガー
難易度:2
フロッガーとは、カエルを操作して道路を走る車を避けたり、川を流れる丸太を飛び乗る、上視点の横断アクションゲームです。
障害物となる車オブジェクト、移動床とも言える丸太オブジェクトなど、登場するオブジェクトにそれなりのバリエーションがあるので、勉強用としてはなかなか良いと思います。
最近のゲームであれば、「クロッシーロード」が現代版フロッガーと言えるのではないかと思います。

日本では知名度は低いゲームですが、海外ではディープなファンも多いゲームです
6. フラッピーバード
難易度:1.5

土管の出現アルゴリズムが少し難しいかもしれませんが、こちらも簡単に作れるのでおすすめです。
自弾や敵弾がないぶん、シューティングよりもシンプルに作ることができます。
また地面への着地処理が不要なので、通常の横視点のアクションゲームよりは簡単に作れると思います。

短い時間で遊べるから、スマートフォンと相性の良いゲームね
7. キャッチゲーム
難易度:1.5

上から落ちてくるアイテムをキャッチするゲームです。
2Dシューティングにおける、自分から弾に当たりにいくバージョンと言えるかもしれません。

アクションゲームの息抜きのステージとして、こういったゲームが入ることもありますね
8. ラン&ジャンプゲーム
難易度:2

フラッピーバードの床に着地できるバージョンみたいなもので、
こちらもひたすら横に進み続けるジャンプアクションゲームです。
床の出現アルゴリズムと着地判定がやや難しいかもしれませんので、まずはフラッピーバードを作ってみてから試してみても良いかもしれません。
ランダムに自動生成されるマップを想定した難易度としましたが、まずは固定のマップで作っても良いかもしれません。

スマートフォン向けの王道アクションゲームといえば、このゲーム!
最近は色々なシステムのラン&ジャンプゲームがあるよ
9. Doodle Jump
難易度:1.5
Doodle Jumpとは、ジャンプし続けるプレイヤーを左右に操作してひたすら上に進むゲームです。
ラン&ジャンプゲームの縦スクロール版とも言えますので、ラン&ジャンプゲームの応用で簡単に作れます。

縦長の画面になるからスマートフォンとも相性が良いわね
10. 2Dプラットフォーマー
難易度:4

プラットフォーマーは横視点のジャンプアクションゲームです。ラン&ジャンプゲーム、Doodle Jumpはプラットフォーマーの簡易版とも言えるかもしれません。
2Dゲームでは人気のあるジャンルのため、ゲームエンジンのチュートリアルとしてよく採用されますが、ゲーム制作初心者にはやや難しい題材と思います。
理由として、衝突したオブジェクトに対して押し返し(衝突応答)の実装が必要なこと、重力による地面への着地判定がややこしいこと、ゲームの面白さを成立させるためには、「アイテム」「移動床」「敵のAI」などそれなりに要素のバリエーションを増やす必要があるため、と考えています。

頭を使ってギミックを解いていくパズル、即死するアイワナ系、
探索重視のメトロイドヴァニアなど、
ゲームファンに人気の高いゲームジャンルです
11. パックマン
難易度:5
パックマンはキャラクターを操作して、迷路内に落ちているドットをすべて食べることを目的としたゲームです。
このゲームを作るには、迷路データの作成や迷路との衝突判定、パワーエサというパワーアップアイテム、プレイヤーを巧妙に追いかける4種類のモンスターなど、ゲームプログラムに必要な要素が数多く含まれています。
このゲームの完コピに近いものが作れるようになれば、ゲームプログラムの基礎はほぼ完成しているのではないかと考えています。
今回紹介したゲームの中ではダントツに難しいので難易度は「5」としています。
12. 一筆書きゲーム
難易度:2

プレイヤーを操作し、すべてのタイルの上を1度だけ通過するとゲームクリアとなるものです。
ゲーム……かというと少しあやしいですが、ゲームプログラムとしては良い題材です。
というのも、このゲームを作るのに必要な塗りつぶしを行うタイルの実装方法が、パズルゲームの基本となるためです。
13. リバーシ
難易度:3
交互に盤面に石を打ちながら、相手の石を自分の石で挟むことで自分の石へ換えていくゲームです。
グリッドを使ったゲームの基本となるので、パズルゲームを作りたいのであれば一度作ってみることをおすすめします。
石を挟んでひっくり返す判定などは、この手のゲームでの基本となる処理です。
また敵のAIを賢くしようとすると、評価値計算を行い、ミニマックス法などのアルゴリズムを理解する必要があります。
これはAIの基本となるアルゴリズムなので、とても勉強になるのではないかと思います。

たいていの場合はAIを強くしすぎて、開発者はAIに勝てなくなります
14. 倉庫番
難易度:2.5

プレイヤーを操作し、荷物を特定の場所まで運ぶゲームです。
リバーシと同じくグリッドでオブジェクトを管理するので、リバーシが作れればその応用で実装できます。
敵のAIがないぶん、リバーシよりも簡単かもしれません。
15.テトリス
難易度:4
落ちものパズルを作ってみたい人におすすめのゲームです。
まず、面白さが保証されているのでうまく作れるとテストプレイが楽しいです。
リバーシや倉庫番と同じようにグリッドでオブジェクトを管理します。
おそらくブロックの接地判定や消去判定はそれほど難しくないかもしれません。
ただブロックの回転の実装はめり込みチェックや壁キックなど、例外処理が多いのでそのあたりうまく書けるかがプログラムの腕の見せどころとなります。
16. 脱出ゲーム
難易度:2.5

パズルというより、アドベンチャーの方がジャンルとして近いかもしれません。
画面クリックに対して、フラグを立てたりアイテムを入手する、また暗号を解いたりすることで先に進むことのできるゲームです。
クリック判定ができればひとまず作れるゲームですが、アイテムの管理や暗号の正解判定などが少しややこしいので、難易度を「2.5」としました。
なお、脱出ゲームにノベルゲームっぽい会話イベントを入れようとすると、プログラム言語を自作する手間が発生して難易度が上がるので、プログラムに慣れたら挑戦してみるのもいいかもしれません。
17. 1人用ポーカー
難易度:1.5
メダルゲームでよく見かけるビデオポーカーのようなゲームを想定した難易度となります。
トランプはカードが「数値」と「スーツ」の2軸存在するので、そのデータ構造をどのようにするのか、ストレートやフラッシュなどの役判定をどのように行うのか、といったアルゴリズムを考えることはプログラムの勉強にとても良いと思っています。

シャッフルやソートなど、プログラムの基本が学べるので、プログラムに慣れていない人におすすめだよ!
18. 神経衰弱
難易度:1.5
同じ数字や絵をめくるとカードを取ることができるゲームです。
1人用ポーカーと違って、場札が存在するためその管理を考える必要があります。
19. ピラミッド(ソリティア)
難易度:2
ピラミッドとは、カードの数値の合計が「13」となるものを取ることができるゲームです。
カードの配置場所が「山札」「手札」「場札」の3種類あるため、やや複雑です。
また場札を表にできる条件の判定など、少しややこしい部分があります。
ソリティアには数多くのゲームルールがありますが、これは比較的簡単なので難易度は「2」となります。
20. クロンダイク(ソリティア)
難易度:4
クロンダイクとは、「組札」と呼ばれる場にカードをAから順にKまで並べるゲームです。
カードの配置場所が「山札」「手札」「場札」「組札」とありピラミッドよりも複雑です。また「場札」に連番のカードがある場合にまとめて移動できるなど、特殊な処理が多くやや難易度が高いです。そのためプログラムの勉強にはとても良い題材ではないかと思います。
まとめ
今回紹介したゲームをまとめてみました。この中でもさらにおすすめしたいゲームは水色にしています。
今回記事にした内容を動画にしたものです。