Java言語による シューティングゲーム作成 種田研究室
はじめに ウィンドウ上で起動するゲームプログラミングにおいては、動作の速さの関係上C++言語で作られているゲームをよくみる。それに対し、Javaによって作られているウィンドウゲームはあまり見たことがない。 今回は動作はC++言語に対して遅いがプラットフォームに依存することなく起動するJava言語を用いてゲームを作ることにする。
開発環境 プログラム、開発ツール JavaSDK6 Eclipse3.3.2 音楽 Domino131 画像 Pixia
シューティングゲームについて シューティングゲームとは主に弾丸やレーザーなどの飛び道具を用いて敵機を撃ち落すコンピュータゲームのことを指す。 シューティングゲームとは主に弾丸やレーザーなどの飛び道具を用いて敵機を撃ち落すコンピュータゲームのことを指す。 例の一つにインベーダーゲームがある。
ゲーム内容 敵は上から下へ降りてくる縦シューティングゲーム。 ステージは1~3まであり、各ステージの最後にはボスが待ち受けている。 自キャラは敵を倒し得点を稼ぎステージクリアを目指す。 残機がなくなるとゲームオーバーとなる。
実際のゲーム画面
ゲームのステージについて ゲーム中の敵はこのようにテキストに書いて保存しておく事で、敵の出現位置や出てくる時間などを変えることができる。 ゲーム中の敵はこのようにテキストに書いて保存しておく事で、敵の出現位置や出てくる時間などを変えることができる。 左図は敵1を0.1秒間隔で表示するようになっている。
スプライト ゲームの画面を実現するために最低限必要なのは、複数の画像を自由に位置を移動させながら表示するという機能である。 ゲームの画面を実現するために最低限必要なのは、複数の画像を自由に位置を移動させながら表示するという機能である。 これを実現するために画面に奥行きを考え、画像をおくから順に並べ、それぞれの画像を自由に移動できるようにした描画システムをスプライトと呼ぶ。
Pixiaによる製作画面 画像作成ツールPixiaの製作画面。 元画像サイズをルーペという機能で拡大しドット絵として作成した。
画像素材 フリーソフトPixiaにより製作。敵キャラクターのサイズは40×40ピクセルである。
SoundPaletteクラス 音楽(BGM)や効果音(SE)も画像と同様管理して鳴らす仕組みが必要になる。 さまざまな音をBGMとSEに分けて登録しておき、登録した番号で再生を指示できるようにしたのがSoundPaletteクラスである。 BGM BGM1 BGM2 BGM3 BGMはどれかひとつだけ再生。 SEはBGM再生中いくつでも再生可能。 SE SE1 SE2 SE3
音楽素材について 音楽素材は全てフリーソフトDominoにより製作した。 音源は元からwindowsに備わっているもので製作可能なためコストがかからずに製作できる。 今回の作品ではステージ用に3曲、ボス用に3曲製作した。
デモ発表 以上の発表を踏まえて 作品をご覧ください。
まとめ Javaゲームプログラム参考書より基礎を学び、C++ゲームプログラムの参考書によりゲームの幅を広げることができた。Midi音楽や画像等も自作し、ゲームとして成り立たせることができた。 作品の課題としては動作を早くするためのコンパクトなプログラムを考えること。他にもアイテムや敵弾のパターン等より面白くするための要素を追加することなどが挙げられる。
参考文献 Midi音楽編集ソフトDomino http://www.tkb-soft.hmcbest.com/domino/index.htm Pixiaホームページ http://www.pixia.jp/ Javaゲームプログラミング 長久 勝 著 シューティングゲームアルゴリズムマニアックス 松浦 健一郎 著
御清聴ありがとうございました。