夏のDX祭/自分でサンプルを作る
まえがき
Youtubeではゲームエンジンっぽいモノを作成中ですが、気づいたことがあります。
これ、初心者歓迎といっておきながら、初心者には難しすぎるのでは?
Youtubeの更新が止まりつつある今でも、そこそこアクセス下さる方がいて、大変ありがたい限りです。そこで、ホントに初心者向けのゲームってどんな感じなのか?と考えながら、ゲームを作ってみました。題して
「ゲーム専門学校1年生が、夏休みの課題で作ってきそうなゲーム」
です。なかなかいい着眼点でしょ(自分でいうんだ...)
ただ、1年でも2Dゲームを開発する手前しか教えてもらっていなかったり、下手すると最上級生でもこのレベルを1人で作れない学生はゴロゴロいるのが、ゲーム専門学校の怖いところ。自分のチカラを試すためにも、ぜひ作ってみてくださいな。
「専門学生1年の夏課題」な根拠
ゲーム専門学校に入学すると、ひとまずC言語を教わるはずです。最近はScratchで下位層の満足度を引き上げる授業もあるようですが(謎)。おそらく、6月ぐらいでC言語の基礎(変数・分岐・繰り返し・配列・構造体・列挙型・関数など)を一通り学び終わり、そろそろ2Dのゲーム制作も学ぶんだと思います。並行してグラフィックや3Dモデルの制作、基本情報技術者試験対策など、正直、今まなぶの!?という授業もありますが、頑張りましょう。
具体的には?
具体的には下に示す事柄が理解できると、このゲームが作れます。まだ学校で学習が済んでいなくても、先取りして予習するのも勿論オッケーです。
- C言語の基礎:変数、分岐、繰り返し、配列、構造体、列挙型、マクロ、関数
- ゲームプログラミングの仕組み:シーン切り替え、ゲームループ、FPS制御
- 入力機器のプログラミング:キー入力、マウス入力
- 外部バイナリファイル活用:読込、破棄、ハンドル管理
- 外部テキストファイル活用:読込、更新、作成
- 画像処理のプログラミング:画像描画、アニメーション描画、移動、点滅
- 音楽処理のプログラミング:音楽再生、音楽停止
- ゲーム数学の基礎:グラフ、三角関数
最低でも1年生が終わるまでには理解しておきたいコトです。
ゲームの内容
- タイトル画面→プレイ画面→リザルト画面→タイトル画面・・・という流れ
- プレイヤーはスペースキーでジャンプして、右から来る恐竜を避ける。
- 背景が移動する。
- 右から来る恐竜に当たると即ゲームオーバー。
- 最高得点をテキストファイル等に書き出し保存。次回ゲーム時にも反映。
- 最高得点時には、リザルト画面で「New Record」描画をすること。
ゲーム開発のヒント
- ジャンプは三角関数で作りました。角度を変える以外にも使い道があるんです。
- 地面の値を仮に設定しています。アクションゲームなど地形が複雑なときには使えません...
- 敵も自分も同じデータです。設定次第で、敵か自分か決まります。
- 適当な変数名や配列名は絶対NGです。マジックナンバーも極力なくしましょう。
- C言語ではクラスを作れません。が、構造体と処理を組み合わせ似たようなことはできます。
あとがき
インターネットの諸先輩方と同様に、まさか自分がサンプルプログラムを作る立場になるなんて思いもしませんでしたが、未来のゲームプログラマのためにも、がんばってみました。私のサンプルもマジックナンバー残っちゃってますが、色々と改良していただいて構いません。
むしろ改良しましょう。そのまま提出するとバレますよ??
あとがき2
もし、この部分について解説がほしい!/この処理の意味が分かんない・・・などがあれば、各種コメント等でお知らせいただくと、取り上げるかもしれません。悩むより相談が大事です。