iPhone/iPadゲーム開発ガイド
――Objective-Cで作る2D/3Dゲーム

[cover photo]
  • 2010年09月 発行
  • 304ページ
  • ISBN978-4-87311-462-0
  • フォーマット Print PDF
  • 原書: iPhone Game Development

この商品は好評につき現在入荷待ちです
Ebook Storeで電子版を購入:
価格2,419円

プロのゲームプログラマーが、その豊富な経験に基づいたノウハウを惜しみなく詰め込んだiPhoneゲーム開発の解説書。本書では、ゲームエンジンを構成する機能や要素などの基本を押さえたうえで、iOS SDKを利用したiPhone/iPadゲーム開発に必要な概念や技術を2D/3Dゲームの実装を通して解説します。日本語版オリジナルの巻末付録は豪華三本立て。監訳者の松田白朗氏にはiPad対応のポイントとARアプリケーション開発、Radium Softwareの高橋啓治郎氏には物理エンジンBox2Dを利用したアプリケーション開発について寄稿していただきました。

翻訳者によるサポートページ(本書のサンプルコードをダウンロード可)。

関連書籍

iPhone SDK アプリケーション開発ガイド
iPhoneアプリケーション開発ガイド
「おもしろい」のゲームデザイン
詳解 ActionScript 3.0アニメーション
詳解 OpenCV
実例で学ぶゲーム3D数学
実例で学ぶゲームAIプログラミング
「ヒットする」のゲームデザイン

目次
監訳者まえがき
まえがき

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とは

Feedback

皆さんのご意見をお聞かせください。ご購入いただいた書籍やオライリー・ジャパンへのご感想やご意見、ご提案などをお聞かせください。より良い書籍づくりやサービス改良のための参考にさせていただきます。
[feedbackページへ]