2Dゲームプログラミングを実践して学べるNEGAAとは?筆者の経験談も併せて解説!

情報学科の学生
2Dゲームプログラミングを勉強するのにピッタリな教科書はありませんか?

ゲームプログラミング入門 第2版」がピッタリです!
サンプルプログラムが充実しているのでゲームプログラミング初心者には特にオススメです。今回は教科書の内容を詳しく解説します!

MY_NEGAAとは


「ゲームプログラミング入門 第2版」
というゲームプログラミングの教科書の中のサンプルプログラムの名称です。
教科書を購入した人は教科書内に書かれたダウンロードページのURL,ID,PASSWORFをダウンロードページ内で打ち込むと無料でダウンロードすることができます。

サンプルプログラムには教科書の内容に沿ったサンプルプログラムが用意されていて教科書の文字だけでは伝わりにくい部分を補ってくれます。

くわしくはアマゾン商品ページでチェック

C言語ができれば2Dゲームを作れる土台


MY_NEGAAではC言語の記述スキルがあれば自由に2Dゲームを作れるしっかりとした土台があります。教科書の最初の10ページに簡単なC言語の記述の確認ページがあります。
しかしここだけのC言語の解説では不十分すぎるのでC言語ができない方はC言語の勉強を先にするのをオススメします。

更にC++の知識があれば簡素で直感的なプログラミングが可能になります。またC++はゲームプログラマーにとって重要なスキルですから、ゲームプログラミングをしながらC++の勉強をするのをオススメします。

数学と物理の知識があればリアル志向のゲームを製作可能


C言語の知識だけでなく数学と物理の知識を持っていればよりリアルな2Dゲームを作る事ができます。最近のゲームでは当たり前の反射・ジャンプ・回転・追尾等は全て数学や物理の計算で再現されています。

2Dゲームは高校までの数学と物理の知識でもクオリティそこそこのプログラミングが可能です。数学と物理の記述の方法は教科書内に書かれています。ですが覚えるだけでは応用が効かないのでしっかりとした理解が必要です。

ゲームプログラミングと数学の関係


そもそも
「ゲームプログラミングと数学・物理って関係あるの?」と思う人がいると思います。

実際に現在世界中でヒットしているゲーム、特に3Dゲームは数学と物理の計算をゲームの隅から隅まで使用しています。

キャラクターを動かすのも、ステージの形に合わせて歩くのも、落下するもの、ジャンプするのも、全てに数学と物理が使われています。
リアル志向が強いゲーム程これらは強くなる傾向があります。

作れるゲームジャンル


MY_NEGAAでは
・横スクロール・縦スクロールシューティング
・RPG
・横スクロールアクション
・迷路・謎解きゲーム
・ボードゲーム・トランプ系のゲーム
・ノベルゲーム
・ストラテジーゲーム
等書ききれないほどの幅広いゲームを作る事ができます。

教科書内にサンプルプログラムの書き直し方があります。それを参考にしてオリジナルの2Dゲームを作りましょう。

教科書以外の事


オリジナルの2Dゲームを作る時に
「どんなジャンルなのか」・「完成にどれ程の時間が予想されるか」
「どんなゲームなのか」・「それを作るスキルが自分にあるのか」
等自分で考えなくてはならないことがあります。
とくに「どんなゲームなのか」と「それを作るスキルが自分にあるのか」は重要です。

MY_NEGAAはあくまでも土台であってゲームの中身のプログラミングは全て自分で考えてプログラムしなければなりません。自分の考えているゲームのシステムを再現させるスキルを持っているのか見極めるのは一番最初にしましょう。
製作途中にできないとわかったとすればその後のプログラミングのモチベーションに影響します。

筆者の作ったことのあるゲーム


筆者はゲームプログラマーを目指して学校に通っています。過去に学校の課題や自分で作りたい物を作ったときに作った物は以下の物です。

〓2D横スクロールシューティング〓
2D横スクロールシューティングゲームは簡単な物からクオリティの高い物までプログラマーのスキルに合わせて作れる扱いやすいジャンルです。自機の弾の種類や弾数、敵の数と種類など難易度の上げ下げの自由度が高いのが魅力です。
〓オセロ・将棋・チェス〓
2Dゲームプログラミングの基本がボードゲームには詰まっています。画像の表示位置と拡大縮小を考えて画像の描画をするので2Dゲームプログラミング初心者にオススメです。
〓ポーカー・ブラックジャック〓
トランプゲームはパーターンや役などゲーム的な仕組みを組み込む訓練にはとっておきです。ターン制のトランプゲームはRPGの戦闘シーンに役立てることができ、こちらもボードゲーム同様2Dゲームプログラミングの基礎を作れる初心者向けのジャンルです。
〓RPGゲーム〓
RPGはマップの表現にはマップチップと言われる手法が使われます。
マップチップとはマップを構成する各マスの一マス分の絵を一つにまとめた画像とそのまとめた画像の一マス一マスをどこに使うかを記述したマップパターンのファイルの二つを使って全体のマップを作製します。RPGはマップだけでなく戦闘があったり、レベルや育成の概念があったり、とにかくプログラマーのこだわりを出せる部分が多いです。RPGはC言語がある程度できる人でないと作れないと筆者は考えます。
〓迷路脱出ゲーム〓
RPGのマップチップを使うことで実現できます。歩けるところ・進めるところ・暗い演出等迷路脱出ゲームに欠かせない部分はRPGと似ている部分が多いのでRPGができる人は是非やってほしいです。謎解きの内容を考えるのが難しそうですが意外と楽しいです。
〓数学・物理を用いた物体の運動の再現〓
これはシューティングゲームの追尾弾・アクションゲームのジャンプ・野球ゲームの送球・レースゲームのドリフト等の実装に必須です。先述の通り、数学物理の知識はゲームのリアルさをダイレクトに向上させるのでちょっとしたところに入れてみるとクオリティが違くなると思います。

まとめ


2Dゲームプログラミングの基礎を学べるMY_NEGAAをオススメする一番の理由はサンプルプログラムの豊富なところです。またサンプルプログラムを利用して自由に自分の思う2Dゲームを作れるのは教科書を読むだけではわかりずらいところを実践して覚えることができます。
これはプログラミングを学ぶ上で一番の学習方法だと筆者は考えます。3Dゲームのサンプルも少しですがありますので是非この教科書を試してみてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA