ゲームプログラマになる前に覚えておきたい技術

概 要

セガの新人教育カリキュラムから生まれたゲームプログラミングの解説書です。C++の初歩のスキルがある人向けに、パズルや2Dグラフィックスといった比較的簡単なゲームの作り方から、ゲームに絵を取り込む方法、シーケンス遷移、アクションゲーム、平面の衝突処理、入力装置のコントロール、サウンドライブラリの利用、回転や伸縮を解説し、最終的に3Dでロボットが弾を打ち合うゲームを作るまでを学びます。立体の描き方、ライブラリの作り方、処理速度が遅くないコードを書くためのポイント、立体の衝突処理、衝突処理の高速化、ローディング時間の圧縮、floatの使い方などの実用的なテクニックを詳解。サンプルコードを収録したCD-ROM付き。

著者 平山尚(株式会社セガ)
価格 本体4500円(税別)
ISBN 978-4-7980-2118-8
発売日 2008/11/15
判型 B5変
色数 1色
ページ数 872
CD/DVD Windows
対象読者 中級
シリーズ
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

※リンク先によっては、販売ページが用意されていないことがあります。あらかじめご了承ください。

新しいウィンドウで開く 書籍購入のご案内

サポート

サポート情報は以下からご参照下さい。

サポート情報へのリンク

目次

Part1 2次元のゲーム

Chapter1 はじまりのゲーム

1 1 パズルゲームを作ってみる

1 2 サンプルコードの解説

1 3 ステージデータ読みこみ機能をつける

1 4 C++について補足

1 5 おまけ:フラグとビット演算

1 6 おまけ:ポインタとメモリ

1 7 おまけ:参照

1 8 この章のまとめ

Chapter2 点から始める2Dグラフィックス

2 1 2Dグラフィックとは何か

2 2 準備

2 3 点を打ってみよう

2 4 荷物君を移植する

2 5 おまけ:終了処理

2 6 この章のまとめ

Chapter3 描いた絵を使う

3 1 ファイルから画像を読みこむ

3 2 画像付き荷物君のサンプルコード

3 3 アルファチャネルを使う

3 4 インクルード関係の決め方

3 5 おまけ:アルファブレンドの高速化

3 6 おまけ:加算ブレンド

3 7 この章のまとめ

Chapter4 リアルタイムなゲーム

4 1 リアルタイムなゲームとは

4 2 アニメーションさせる

4 3 アニメーション付き荷物君サンプル

4 4 フレームレートを取得する

4 5 フレームレートの差に対応する

4 6 おまけ:フレームレートに合わせてゲームの進行速度を変える方法

4 7 おまけ:ティアリング問題

4 8 この章のまとめ

Chapter5 かんたんなシーケンス遷移

5 1 ライブラリ追加機能

5 2 素直なやり方

5 3 シーケンスを増やしてみる

5 4 コードをチェック

5 5 サンプルコードの解説

5 6 この章のまとめ

Chapter6 文字の書き方

6 1 フォント用画像

6 2 文字描画関数

6 3 使いやすく

6 4 使ってみる

6 5 サンプルコードの解説

6 6 著作権に注意!

6 7 サンプルライブラリの機能

6 8 この章のまとめ

Chapter7 はじめてのアクションゲーム

7 1 使用するライブラリについて

7 2 「爆弾人」を作る

7 3 サンプルの解説

7 4 とりあえず背景だけ出してみる

7 5 動くオブジェクトを配置する

7 6 いよいよゲームにする

7 7 この章のまとめ

Chapter8 平面の衝突処理

8 1 衝突検出

8 2 衝突応答

8 3 複数衝突問題

8 4 衝突応答と操作性

8 5 動く物同士が当たる

8 6 爆弾人の衝突処理

8 7 この章のまとめ

Chapter9 いろいろな入力装置

9 1 入力装置インスタンスの取得

9 2 キーボード

9 3 マウス

9 4 ジョイスティック

9 5 爆弾人をジョイスティックで操作する

9 6 この章のまとめ

Chapter10 少しマシなシーケンス遷移

10 1 そもそも何が問題だったのか

10 2 継承を使う

10 3 実際に使う

10 4 おまけ:シーケンス移動コードを短くする

10 5 おまけ:階層間シーケンス移動も短くする

10 6 おまけ:継承についてもう少し

10 7 この章のまとめ

Chapter11 音を鳴らす

11 1 サウンドライブラリについて

11 2 おまけ:コンピュータで音を鳴らすということ

11 3 おまけ:音の高さと音の大きさ

11 4 おまけ:音色

11 5 おまけ:音の重ね合わせ

11 6 おまけ:ドレミの原理

11 7 おまけ:楽譜を読みこんで演奏する

11 8 おまけ:wavファイルの読みこみ

11 9 おまけ:Soundモジュールを使った波の合成

11 10 この章のまとめ

Chapter12 回す、伸ばす、動かす

12 1 回転

12 2 ベクタと行列の導入

12 3 頂点という考え方

12 4 拡大縮小

12 5 拡大縮小しながら回す

12 6 行列の威力

12 7 おまけ:回転の式は何故これで正しいのか?

12 8 おまけ:ちゃんと回す

12 9 おまけ:数学の中の行列

12 10 この章のまとめ

Chapter13 ハードウェアのパワー

13 1 使うライブラリについて

13 2 グラフィックスハードウェアで三角形を描いてみる

13 3 三角形に画像を貼る

13 4 アルファブレンド

13 5 回転、拡大縮小、移動

13 6 爆弾人を移植する

13 7 この章のまとめ

Part2 3次元のゲーム

Chapter14 立体を描く

14 1 ライブラリについて

14 2 3Dアクションゲーム「ロボファイト」を作るには

14 3 三角形を描く

14 4 手前のものを手前に描く

14 5 遠くのものを小さく描く

14 6 座標変換

14 7 透視変換も行列に

14 8 「ロボファイト」を作り始めよう

14 9 おまけ:zバッファ精度問題

14 10 この章のまとめ

Chapter15 ライブラリの作り方

15 1 全体設計

15 2 リソースの内訳

15 3 使ってみよう

15 4 ファイルからロードする

15 5 おまけ:ライブラリをゲームから分離する

15 6 この章のまとめ

Chapter16 XMLモドキを読む

16 1 ファイルフォーマットを決める

16 2 作る前の準備

16 3 処理の流れ

16 4 文字列の解釈

16 5 コードにする

16 6 使う

16 7 サンプルコード

16 8 おまけ:書き出し

16 9 この章のまとめ

Chapter17 遅くないコードを書くために

17 1 アルゴリズムと計算量オーダー

17 2 データ構造の基礎

17 3 スループットとレイテンシ

17 4 並列性

17 5 メモリの問題

17 6 STLとデータ構造

17 7 遅いのはどこか

17 8 おまけ:関数呼び出しそのものの重さ

17 9 おまけ:速い計算と遅い計算

17 10 この章のまとめ

Chapter18 立体の衝突処理

18 1 直方体での衝突処理

18 2 浮動小数点数を使った衝突検出

18 3 三角形と線分の交差判定

18 4 これで実用になるのか?

18 5 残された問題点

18 6 この章のまとめ

Chapter19 ロボファイトの設計

19 1 シーケンス遷移

19 2 操作系

19 3 弾を撃つ

19 4 一つにまとめる

19 5 フロントエンド

19 6 やっぱり足りないもの

19 7 この章のまとめ

Chapter20 光が当たるということ

20 1 物が見えるということ

20 2 光が減っていく過程

20 3 計算してみよう

20 4 ロボファイトに入れてみよう

20 5 おまけ:高速化のヒント

20 6 おまけ:もうちょっとマシな絵にするには

20 7 この章のまとめ

Chapter21 キャラクターが動き出す

21 1 相対移動

21 2 階層モデルクラス

21 3 木構造構築の自動化

21 4 アニメーションのデータ化

21 5 補間法

21 6 ロボファイトに入れる

21 7 おまけ:連立方程式vs決められた傾き

21 8 おまけ:足りないもの

21 9 この章のまとめ

Part3 売り物への道

Chapter22 遅くない衝突検出

22 1 とりあえず総当たりの遅さを実感してみる

22 2 高速化の基本

22 3 ソートに基づいた方法

22 4 分割による方法

22 5 おまけ:均等分割のさらなる改良

22 6 おまけ:高度な空間分割

22 7 この章のまとめ

Chapter23 ローディング

23 1 何故ロード時間は延びるのか

23 2 ファイルローダクラス

23 3 ファイル結合による高速化

23 4 圧縮による高速化

23 5 おまけ:マルチスレッドによる非同期処理

23 6 おまけ:符号化

23 7 おまけ:中身を見せないための結合と圧縮

23 8 この章のまとめ

Chapter24 floatの使い方

24 1 桁数に限りがあるということ

24 2 floatの中身

24 3 中途半端な数による誤差

24 4 誤差はどれくらい出るのか

24 5 誤差を飼いならす

24 6 特別な数

24 7 この章のまとめ

Chapter25 付属ライブラリ本番仕様

25 1 ライブラリのクラスについて

25 2 起動設定

25 3 Frameworkモジュール

25 4 WindowCreatorモジュール

25 5 FileIOモジュール

25 6 Baseモジュール

25 7 Mathモジュール

25 8 Threadingモジュール

25 9 Inputモジュール

25 10 Soundモジュール

25 11 PseudoXmlモジュール

25 12 Graphicsモジュール

25 13 Sceneモジュール

25 14 アンチエイリアス

25 15 最終版ライブラリにロボファイトを移植する

25 16 Xファイル

25 17 この章のまとめ

Chapter26 バグとの付き合い方

26 1 防火と消火

26 2 バグの種類

26 3 「予防」あるいは「防火」のこと

26 4 「治療」あるいは「消火」のこと

26 5 ロボファイト安全仕様

26 6 おまけ:メモリあふれ検出の中身

26 7 この章のまとめ

Chapter27 もっと先へ

27 1 何を学べばいいのか

27 2 ツール

27 3 AI

27 4 ネットワーク

27 5 シェーダ

27 6 参考文献

27 7 こんな本があったらいいのに

PR

秀和システム