日本大学理工学部応用情報工学科 松野研究室


Web上でプレイすることができなかったので、作成したゲームの動画を載せています。

作りたいソフトウエアの概要

 http://bituse.info/game/shot/ を参考に、縦スクロール型のシューティングゲームを作成した。具体的にはプレイヤークラス、敵クラス、背景クラス等、各々についてクラスを生成し、それらを最終的にCONTROLクラスというものを用いて、ひとまとめにすることで一つのゲームが出来上がるという仕組みである。各クラスはALL関数というものを持っており、各ALL関数をCONTROLクラスのALL関数で毎ループごとに実行を行うことゲームが成り立つ。
 ゲーム自体の内容について、まず操作キャラと敵キャラ、そして敵のボスが登場する。操作キャラは十字キーで画面内を歩くことができ、弾で攻撃することが可能である。弾の種類は数種類あり、敵を倒す際に出現するアイテムを得ることにより、弾が強化されるという仕組みになっている。

拡張する内容について

 内容が多岐にわたるため、作成期間を考慮すると、上記サイトの各項目の内容を作成し、最終的にはサイトに記載されているゲームと同様のゲームを完成させることを目標とした。完成が険しい場合には、スコアやアイテム、弾の種類等、省略してもゲーム自体に影響が出ない部分を削るという方針で作業を行う。最低限、操作キャラと敵が攻撃しあって、きちんと弾の当たり判定が出るといったような「ゲームとして成り立っている」という状態まで完成させることを目標としている。

調査した内容

 上記サイトに載っていた、C++について必要な知識を調査した。C言語については授業やゼミの中で触れていたため、具体的にはC言語とC++の違いについて調査を行った。
 C++は、構文自体はC言語をベースとしているが、クラスが使えるようになったということ、それに伴い型数が増加したということ、STLという「C++の規格で定義された標準ライブラリの一つ」が使えるようになったということが調査の結果分かった。

開発体制及び計画について

 1月の下旬から始まり、まずはサイトの内容を一通り読み、使用言語の使い方や開発環境に慣れることを目標とし、作業を2月初旬から行った。2月中旬くらいまでの約2週間で操作キャラと敵を生成し、お互い弾を発射し、その当たり判定を設けることを目標とした。その後、敵の移動や攻撃パターンの追加、ボスの追加、アイテムを設け操作キャラの弾の種類を増加させ、バリエーションを増やすことを目標とした。

実際の進捗結果

 特に分担を行うことはなく、各々で同様のゲームを作成していった。サイトにコードは一通り記載されていたものの、同じ内容を入力してコンパイルを行っても予期せぬエラーが多々発生したため、想像以上に難しく、実際にはゲームとして成り立たせることすら厳しい状況となった。また、コンパイルした際、エラーは吐かないものの動作が停止及び実行されず、原因が分からずつまずいてしまうことが多々あった。各々同じような部分でつまずく傾向があったため、進行度に関しては全員同じような段階であった。

開発時に困ったこと

 上記でも述べたように、同じ内容を入力してもエラーが発生したり、エラーが無くコンパイルできても動作を行わないまま停止してしまうことが多々あった。エラーが発生した際は、どのようなエラーなのかを知ることが可能であるため、内容に応じて修正を行うことができた。しかし、コンパイルが通っても動作を行わない不具合に関しては、何が原因なのかを知ることができない。従って、追加したコードを少しずつ変化させたり、再起動を行ったりしてゲーム作成を進めた。

実際に作成したソフトウエアの概要について

 基本的には、サイトに記載されている各項目のコードを順に追加していった。途中でエラー等によりつまずいて想像以上に時間を確保できなかったため、バリエーションを増やすための弾強化、アイテム及び音は搭載せず、各々のキャラクターに当たり判定を設け、操作キャラがいて弾を発射し、敵が数種類出現して弾を発射し、一定時間経つとボスが出現するというシンプルなゲームを作成した。また、操作キャラが攻撃を受けてから復帰するまでの無敵の時間が少なかったため、ボスの激しい攻撃から抜け出すことが難しく連続で倒されてしまうケースが多々存在した。スコアの配置も少々おかしくはなってしまったが、形だけでもゲームというものを完成させることができた。ゲーム風景を、以下の画像に示す。

実際にソフトウエアを作ってみた感想

 普段は作られたゲームをプレイする側であり、今回初めてゲームを作るということを経験した。最初、サンプル動画を見る限り見た目こそ簡単なゲームではあったが、実際に作成してみると、必要なコードの数が想像を絶するほど存在し、作成期間一ヶ月では厳しかった。このような小規模のゲームでもプログラミングを理解していないとまともに作成することができないということを改めて知ったと同時に、商売になるようなゲームを作るということの厳しさがどれだけ大変なのだろうかということを改めて感じた。

実際にプレイしてみてのアンケート結果

  • 改良の余地はあるが楽しめるゲームだった。コードが長そう。
  • 面白かった。当たり判定がどこまであるのかよく分からなかった。
  • デス数がカウントできればなお良いかも。
  • 当初の計画にあったように弾の種類が変わるとより良いと思った。
  • 見た目から仕様まで、シューティングゲームとして完成していると思う。あとは死んでから復活までに移動できないことや、HPが無限などのゲームバランスだけだと思う。ゲームとして面白かった。
  • 無敵(復活時)に動けないのが少し辛いけど面白かった。