シューティングゲーム プログラミング
松浦 健一郎/司 ゆき 著
B5変形判、1色刷り、403ページ+29ページ(付録CD-ROM収録)
CD-ROM一枚付き
本体価格 2,800円、出版日 2006/09/28、ISBN 4-7973-3721-4
対応OS:WindowsXP/2000(98は今後動作確認予定)
出版社 ソフトバンククリエイティブ
クリックで表紙の拡大画像を表示
前書き
シューティングゲームの制作方法を実践的かつ平易に解説します。これからシューティングゲームを作ろうという方にはもちろん、シューティングゲームを題材にプログラミングを学ぼうという方にもお使いいただけます。
本書では、ごく単純なプログラムから始めて、自機・弾・敵・ステージ・ボス・アイテム・特殊攻撃といったさまざまな要素を追加し、本格的なシューティングゲームへと育てていきます。できるだけ平易な解説を心がけましたので、どうぞリラックスした気分でお読みください。一方で、本格的なシューティングゲームのプログラミングに欠かせないDirectXの知識や、多数のキャラクターを効率的に管理するためのタスクシステムについても、詳細に解説しています。
紙面だけでなく、付録CD-ROMもぜひお楽しみください。ついつい筆が進みすぎて紙面から飛び出した「リプレイ機能」「難易度選択機能」「データファイルのアーカイブ化」といったプログラミング情報が満載です。もちろん、各章の内容に対応した、実際に遊べるサンプルゲームも収録しています。
プログラマーの方にはもちろん、プレイヤーの方にとってもゲームデザイナーの方にとっても、本書がシューティングゲームの世界をより深く楽しむためのガイドブックになれば幸いです。
姉妹書『シューティングゲーム アルゴリズム マニアックス』もどうぞ宜しく!
こんな目的に
本書は、こんな目的にお勧めです。
-
シューティングゲームを自分で作りたい。
-
シューティングゲームがどのような手法を使って作られているのかを知って、ゲームをもっと楽しみたい。
-
C++やDirectXによるプログラミングを学びたい。
-
自作のシューティングゲームをもっと魅力的にしたい。
-
学校の課題でシューティングゲームを作ることになったが、どこから手を付けたらよいのか分からない。
-
ビームやボム、かすりやソードといった、シューティングゲームに使える様々な要素の実現方法が知りたい。
-
せっかく新しいPCを買ったので何かソフトウェアを開発したい。
-
サンプルゲームを遊びながら、シューティングゲームの構想をじっくりと練りたい。
-
『シューティングゲーム アルゴリズム マニアックス』を読んで、シューティングゲームの骨格部分のプログラミングにもヒントがほしくなった。
-
とにかくシューティングゲームが好きだ。
サンプルプログラム『紫雨』より
目次
-
Chapter1 シューティングゲームを作るには
-
シューティングゲームとは何か
-
本書で解説すること
-
シューティングゲームの構成要素
-
キャラクターはどうして動くのか
-
フレームとは
-
当たり判定処理とは
-
当たり判定処理の例
-
複雑な形に対する当たり判定処理
-
当たり判定処理の高速化
-
当たり判定処理の単純化
-
当たり判定処理の1ドット化
-
バウンディングボックス
-
特定の敵を特定のタイミングで出現させるには
-
背景はどうやって動かすのか
-
サンプルシューティングゲーム「紫雨」の紹介
-
開発環境の準備
…など
-
Chapter2 ゲームライブラリ
-
ゲームライブラリを作る
-
ゲーム本体の機能
-
アプリケーションの初期化
-
ウィンドウに送られたメッセージを処理する
-
メッセージループ
-
処理落ちとフレーム落ち
-
デバイスロストとデバイスリセット
-
画面の描画
-
画面モードの切り替え
-
グラフィックの基本機能
-
3Dモデルの読みこみと描画
-
2D画像の読みこみと描画
-
フォントの読みこみと描画
-
入力の読み取り
-
効果音の読みこみと再生
-
BGMの読みこみと再生
…など
-
Chapter3 タスクシステム
-
タスクシステムとは
-
タスク = 処理関数ポインタ + ワークエリア
-
タスクシステム = タスク + 連結リスト
-
全タスクを実行する
-
タスクの追加・削除を効率化する
-
タスクを使ってキャラクターを動かす
-
ワークエリアにキャラクターの情報を格納する
-
タスクの生成
-
タスクの削除
-
処理関数の変更
-
当たり判定処理
-
移動と描画の処理関数を分ける
-
タスクシステムが持つその他の機能
-
メモリ管理に連結リストを使う理由
-
クラスを使ったタスクシステム
-
C言語とC++のどちらを使うか
-
タスクリストを分ける
-
タスクをクラスで表現する
-
タスクリストをクラスで表現する
-
タスクに関する繰り返し処理
-
タスクの削除とイテレータ
-
ゲームにおけるタスクシステムの活用
-
自機・敵・弾などのクラス構成
-
プログラム全体の動き
…など
-
Chapter4 自機
-
自機を動かす
-
自機を動かすプログラム
-
ゲーム本体に必要な機能
- ゲームの初期化と必要なデータのロード
-
グラフィックの初期化
-
移動する物体に共通する機能
-
自機の機能をまとめる
-
フレームごとにゲーム全体を進行させる
-
ゲーム画面の描画
-
ショットとビームの発射
-
ショットとビームの仕組み
-
ショットを飛ばす
-
ビームを放つ
…など
-
Chapter5 弾
-
弾と当たり判定処理
-
弾を動かす
-
弾を作る
-
移動物体に当たり判定を与える
-
弾に共通する処理をまとめる
-
方向弾
-
弾の初期化と生成
-
自機と弾の当たり判定処理
-
当たり判定処理を行う自機のプログラム
-
いろいろな弾
-
弾幕を作る
…など
-
Chapter6 敵
-
敵の作り方
-
敵のプログラム
-
いろいろな敵を作るには
-
敵の爆発
-
ショットやビームと敵の当たり判定処理
-
当たり判定の大きさ
-
ショットとビームのエフェクト
-
スコアの加算と表示
-
桁数の多い数を扱うには
-
大きな数を扱うための仕組み
-
スコアの表示
-
ハイスコアの保存
…など
-
Chapter7 ゲームの外枠
-
画面間の遷移
-
クラス構成
-
画面の基本機能
-
タイトル画面
-
レディ画面
-
ステージ
-
ポーズ画面
-
残機を減らす
-
残機の表示
-
コンティニュー画面
-
ゲームオーバー画面
-
Chapter8 ステージ
-
背景、ステージ進行、BGMの追加
-
背景
-
大きな敵でステージに緩急をつける
-
迫力を出すには
-
大きな敵を破壊したときに弾を消す
-
弾が消えるときのエフェクト
-
敵の編隊
-
連携する小さな敵
-
編隊のリーダー
-
編隊のヴァリエーション
-
敵の集団
-
ステージのスクリプト
-
スクリプトの仕組み
-
スクリプトを配列に登録する
-
敵を生成する関数
-
スクリプトの実行
-
スクリプトを用いたステージの進行
-
スクリプトのコマンド
-
敵生成コマンド
-
時間待ちコマンド
-
BGMの再生コマンド
-
BGMフェードアウトコマンド
-
BGMのフェードアウトとフェードイン
-
ゲーム終了コマンド
-
ゲーム停止時と終了時のBGM操作
…など
-
Chapter9 ボス
-
ボス
-
警告メッセージ
-
ボスの出現
-
耐久力ゲージ
-
ボスの攻撃
-
攻撃パターンの変化
-
ボスの退却
-
ステージクリア
-
ステージの進行とボス
-
Chapter10 アイテムとパワーアップ
-
アイテムとは
-
アイテムの出現
-
アイテムの自動回収
-
アイテムの基本機能
-
アイテムを取ったときに獲得したスコアを表示する
-
味方機(オプション)
-
自機爆発時のアイテム放出
…など
-
Chapter11 特殊攻撃
-
ボムの基本機能
-
ボムの発射
-
ノーマルボム
-
スローボム
-
アトラクトボム
-
ストップボム
-
ボムアイテム
-
かすり
…など
-
Chapter12 オリジナルゲーム制作ガイド
-
データを入れ替える
-
プログラムを改造する
-
特殊攻撃を追加する 〜「ソード」〜
-
ソードの回転
-
弾や敵との当たり判定処理
-
軌跡の描画
-
特殊攻撃を追加する 〜「ワイパー」〜
…など
-
Chapter13 ゲームのブラッシュアップ(CD-ROM収録)
-
リプレイ機能
-
難易度の選択
-
難易度を表す変数(ランク)
-
難易度によって敵や弾の挙動を変える
-
難易度選択メニュー
-
難易度に応じてボスの動きを変化させる
-
データファイルのアーカイブ化
-
アーカイブの形式
-
アーカイブの暗号化
-
エントリの追加
-
アーカイブのセーブ
-
アーカイブのロード
-
アーカイバ
-
ゲームからアーカイブを利用する
…など
-
付録
-
Visual C++ 2005 Express Edition でWin32アプリケーションを作成する方法
-
シューティングゲーム プログラミング Q&A
-
引用ゲームの紹介
-
索引
著作権について
本書に掲載された内容ならびに本CD-ROMへの収録物は、すべて著作権法上の保護を受けております。本書に掲載されて内容ならびにCD-ROM収録物の全部または一部を無断で複写・複製・転載、商用で利用は、法律によって禁じられています。
本書内ならびに本CD-ROMに収録されているプログラムおよびグラフィックデータの一式は、本書籍著作者に著作権がありますが、個人的利用ならびにプログラミングの学習目的としての利用にかぎって、自由に改変して使用することが許可されています。掲載されたままのプログラムを許可なく複写・複製・転載することはできません
本書ならびにファイル内に収録されているプログラムを利用したソフトウェアを配布・販売する場合には、あらかじめこちらからお問い合わせ下さい。なお、以下の条件を全て満たしている場合には、お問い合わせいただかなくても、本書のプログラムを利用したソフトウェアを配布することができます。
-
非営利目的で無料で配布するソフトウェアであること。企業・団体・商品などのPRのための無料配布の場合は事前にお問い合わせください。
-
ゲーム内およびゲームに添付するドキュメント内において、プログラムの著作権者(松浦健一郎・司ゆき/ひぐぺん工房)を表示すること。
-
ソースコードを配布しないこと。
BGMデータに関してはWebサイトKohzas Stationで公開されている楽曲のなかからいくつかを使わせていただいています。これらの楽曲についてはKohzas氏が著作権を有しています。
効果音データの一部には著作権フリー音素材集「音・辞典」を使用させて頂いています。同製品はデータクラフト社が著作権を有しています。
本書の著作権について、詳しくは本書ならびに付録CD-ROM内のreadme.txtをご覧ください。
最終更新