マーリンアームズ サポート   翻訳   コンサル   講座   アプリ   コラム
JavaScript講座     辞書サイト

iPhone/iPadゲーム開発ガイド ── Objective-Cで作る2D/3Dゲーム    P. Zurkle & J. Hogue著    武舎広幸+阿部和也+武舎るみ訳

目次


監訳者まえがき
まえがき

1章 iOS入門
    1.1 Appleの開発者アカウントの取得と SDKのダウンロード
        1.1.1 アプリケーションバンドル
        1.1.2 Xcode
        1.1.3 ビューとコントローラ
    1.2 iOS機器への転送の前に
    1.3 Objective-C入門
        1.3.1 クラス
        1.3.2 インスタンスの生成
        1.3.3 メッセージ
        1.3.4 メンバ変数
        1.3.5 メモリ管理
        1.3.6 コンストラクタとデストラクタ
        1.3.7 C++とObjective-Cの併用
    1.4 まとめ

2章 ゲームエンジンの構造
    2.1 アプリケーションフレームワーク
        2.1.1 メインループ
    2.2 ゲームステートマネージャ
        2.2.1 ステートマシン
    2.3 グラフィックスエンジン
        2.3.1 テクスチャリング
        2.3.2 アニメーション
        2.3.3 物理エンジン
        2.3.4 オーディオエンジン
        2.3.5 プレイヤー入力
        2.3.6 ゲームロジック
    2.4 まとめ

3章 フレームワーク
    3.1 ステートの管理
        3.1.1 実装
        3.1.2 ステータスバーを隠す
    3.2 クラス AppDelegate
        3.2.1 フレームレート
    3.3 イベント処理
    3.4 リソース管理
        3.4.1 テクスチャの形式
        3.4.2 サウンドの形式
        3.4.3 リソースの配置
        3.4.4 リソースへのアクセス方法
    3.5 レンダリングエンジン
        3.5.1 クラス GLESGameState
        3.5.2 テクスチャ
        3.5.3 フォントテクスチャ
        3.5.4 サンプル画面の作成
    3.6 サウンドエンジン
        3.6.1 サンプル画面の作成
    3.7 データ保存
        3.7.1 単純なデータの保存
        3.7.2 複雑なデータの保存
        3.7.3 サンプル画面の作成
    3.8 スケルトンアプリケーション
    3.9 まとめ

4章  2Dゲームエンジン
    4.1 ゲームデザイン
        4.1.1 機能一覧
        4.1.2 ユーザー入力の形式
        4.1.3 学習曲線
    4.2 タイルエンジン
        4.2.1 タイルの種類
        4.2.2 タイルの描画
        4.2.3 クラスTileWorld
    4.3 アニメーション
        4.3.1 クラスAnimationとクラスSprite
    4.4 物理エンジン
        4.4.1 キャラクター
        4.4.2 キャラクター−世界間の衝突
        4.4.3 特殊なタイル
        4.4.4 キャラクター−キャラクター間の衝突
    4.5 ステージ1の実装
        4.5.1 クラスEmuLevel
        4.5.2 TileWorldの初期化
        4.5.3 主人公
        4.5.4 エミューの雛鳥
        4.5.5 エミューの母鳥
        4.5.6 ゲームのロジック
        4.5.7 効果音
    4.6 ステージ2の実装
        4.6.1 クラスLionLevel
        4.6.2 TileWorldの初期化
        4.6.3 アイテム
        4.6.4 主人公
        4.6.5 ライオン
        4.6.6 ゲームのロジック
        4.6.7 効果音
    4.7 ステージ3の実装
        4.7.1 クラスMazeLevel
        4.7.2 TileWorldの初期化
        4.7.3 ボタン
        4.7.4 ドア
        4.7.5 ネコとネズミ
        4.7.6 ユーザー入力
        4.7.7 ゲームのロジック
        4.7.8 効果音
    4.8 ステージ4の実装
        4.8.1 クラスRiverLevel
        4.8.2 TileWorldの初期化
        4.8.3 ワニ
        4.8.4 丸太
        4.8.5 トム
        4.8.6 ユーザー入力
        4.8.7 ゲームのロジック
        4.8.8 効果音
    4.9 ゲーム状態のシリアライズ
        4.9.1 ストレージの初期化
        4.9.2 ゲームの終了
        4.9.3 UIの変更
    4.10 まとめ

5章  3Dゲーム
    5.1 クラス GLESGameState3D
        5.1.1 PowerVR
        5.1.2 クラス Sprite3D
        5.1.3 加速度センサー
    5.2 3Dゲームデザイン
        5.2.1 グラフィックス
        5.2.2 入力
        5.2.3 カメラ
        5.2.4 ゲームのロジック
    5.3 実装
        5.3.1 カメラ
        5.3.2 スカイボックス
        5.3.3 入力
        5.3.4 リング
        5.3.5 パーティクルシステム
        5.3.6 ゲームのロジック
        5.3.7 ベストタイム
        5.3.8 ゲームの終了
    5.4 まとめ

6章 ゲームデザインに関する考察
    6.1 リソース管理
    6.2 ユーザー入力のデザイン
    6.3 ネットワーキング
    6.4 サードパーティのコード
        6.4.1 ライブラリ
        6.4.2 ミドルウェア
        6.4.3 オープンソースのゲーム
    6.5 App Store
    6.6 まとめ

付録 A リファレンス
    A.1 参照用コード
    A.2 ライブラリ
    A.3 ミドルウェア
    A.4 オープンソースのゲーム

付録 B iPadへのアプリケーションの移植
    B.1 iPad、iPhone 4の特徴
        B.1.1 スクリーンサイズと画面アスペクト比
        B.1.2 iPadではタッチ入力が 11箇所まで可能に
        B.1.3 パフォーマンス(ハードウェアスペック)
        B.1.4 iPadヒューマンインタフェースガイドライン
    B.2 2D/3Dゲームの移植
        B.2.1 ユニバーサルアプリケーションか、別アプリケーションか
        B.2.2 プロジェクトの変換処理
        B.2.3 アプリケーション側の対応
        B.2.4 そのほかの設定項目を変更
        B.2.5 まとめ

付録 C 組み込みデバイスを応用した ARアプリケーションの開発
    C.1 ARアプリケーションの概要
    C.2 iPhoneの組み込み入出力デバイス
        C.2.1 背面カメラ
        C.2.2 加速度センサー
        C.2.3 電子コンパス
    C.3 アプリケーション開発手順
        C.3.1 OpenGL ESプロジェクトの作成
        C.3.2 プロジェクトの修正
        C.3.3 電子コンパス用コードの追加
        C.3.4 加速度センサー用コードの追加
        C.3.5 カメラプレビューの表示
        C.3.6 OpenGL描画
    C.4 応用と発展
        C.4.1 画像認識
        C.4.2 GPS
        C.4.3 ジャイロ
        C.4.4 バイブレータ
        C.4.5 近接センサー
        C.4.6 オーディオ出力

付録 D 物理エンジンを使ったアプリケーションの開発
    D.1 物理エンジンの導入
        D.1.1 物理エンジン Box2D
        D.1.2 Box2Dの入手
    D.2 アプリケーションの設計
        D.2.1 基本要素
        D.2.2 ワールド
        D.2.3 画面を囲む枠
        D.2.4 豆腐
    D.3 実装
        D.3.1 Tofu ─豆腐クラス
        D.3.2 Wrangler ─ラングラー「世話人」クラス
        D.3.3 EAGLView ─ビュークラス
        D.3.4 TofinityAppDelegate ─アプリケーションデリゲート
    D.4 タッチアクションの拡張
        D.4.1 拡張する機能の概要
        D.4.2 AABBクエリー
        D.4.3 コールバッククラスの定義
        D.4.4 touchAtメソッドの拡張

訳者あとがき
索引

コラム目次

レガシーな C/C++のコード
並列アクセス
高速で動くオブジェクトの衝突判定
3D最適化の補足
経路探索
シリアライゼーションの方式
3DのAPIを用いた 2D描画
OpenGLを使用してテクスチャを表示する場合の注意
ベクトル演算入門
物理エンジンのメリットとデメリット
AABBとは