Androidゲームプログラミング A to Z

Androidゲームプログラミング A to Z

5,060円(本体 4,600円+税10%)

品種名
書籍
発売日
2011/11/25
ページ数
656P
サイズ
B5変型判
著者
Mario Zechner 著/株式会社クイープ 訳/安生 真 編集協力
ISBN
9784844331131

Androidゲーム作成を基本から学びたいと考えているプログラマーに贈る解説書

本書は、ゲームエンジン「libGDX」(ゲームフレームワーク)開発の中心人物である著者が、ゲーム開発に必要なAndroid OSのAPIを厳選し、JAVAをすでに学んだ初-中級プログラマーがゲームフレームワークを構築できるよう、その方法を紹介。また、フレームワークをもとに、ゲーム表示を2Dから3Dへと改良していく方法も段階を踏んで解説。この1冊でゲーム開発の一連の流れを学ぶことができます。

「読者アンケートに答える」「読者プレゼントに応募」の場合もこちらをご利用ください。

アンケートに答える

書籍の内容に関するお問い合わせはこちら。お答えできるのは本書に記載の内容に関することに限ります。

学校・法人一括購入に関するお問い合わせはこちらへ。

一括購入窓口

目次

第1章 Androidの新しい可能性
1.1 Androidの略史
1.2 分裂
1.3 Googleの役割
1.4 Androidの機能とアーキテクチャ
1.5 SDK
1.6 開発者コミュニティ
1.7 何をおいてもデバイス
1.8 モバイルゲームは勝手が違う
1.9 まとめ
第2章 Android SDKでのファーストステップ
2.1 開発環境のセットアップ
2.2 AndroidスタイルのHello World
2.3 Androidアプリケーションの実行とデバッグ
2.4 まとめ
第3章 ゲーム開発の基礎
3.1 ジャンル:好みは人それぞれ
3.2 ゲームデザイン:ペンはコードよりも強し
3.3 コード:ゲームの詳細
3.4 まとめ
第4章 ゲーム開発者のためのAndroid
4.1 Androidアプリケーションの定義:マニフェストファイル
4.2 Android APIの基礎
4.3 ベストプラクティス
4.4 まとめ
第5章 Androidゲーム開発フレームワーク
5.1 プラン・オブ・アタック
5.2 AndroidFileIOクラス
5.3 AndroidAudioクラス、AndroidSoundクラス、AndroidMusicクラス
5.4 AndroidInputクラスとAccelerometerHandlerクラス
5.5 AndroidGraphicsクラスとAndroidPixmapクラス
5.6 AndroidGameクラス:すべてを1つに
5.7 まとめ
第6章 Androidを攻略せよ
6.1 アセットの作成
6.2 プロジェクトのセットアップ
6.3 MrNomGame:メインアクティビティ
6.4 メインメニュースクリーン
6.5 ヘルプスクリーン
6.6 ハイスコアスクリーン
6.7 抽象化
6.8 まとめ
第7章 OpenGL ESの紹介
7.1 なぜOpenGL ESが必要なのか
7.2 作業を始める前に
7.3 GLSurfaceViewクラス
7.4 GLGameクラス:ゲームインターフェイスの実装
7.5 赤い三角形
7.6 頂点ごとの色の指定
7.7 テクスチャマッピング:簡単な壁紙の作成
7.8 インデックス付きの頂点:再利用は効果的
7.9 アルファブレンド:透けて見える
7.10 その他のプリミティブ:ポイント、直線、ストリップ、ファン
7.11 2D変換:モデルビュー行列の操作
7.12 パフォーマンスのための最適化
7.13 まとめ
第8章 2Dゲームプログラミングのトリック
8.1 はじめに
8.2 はじめにベクトルありき
8.3 2Dでの簡単な物理学
8.4 2Dでの衝突検出とオブジェクトの表現
8.5 2Dのカメラ
8.6 テクスチャアトラス:共有は思いやり
8.7 テクスチャ領域、スプライト、バッチ:OpenGL ESを見えなくする
8.8 スプライトアニメーション
8.9 まとめ
第9章 Super Jumper:OpenGL ESを使った2Dゲーム
9.1 ゲームの主な仕組み
9.2 背景ストーリーとアートスタイル
9.3 スクリーンと切り替え
9.4 ゲームワールドを定義する
9.5 アセットを作成する
9.6 Super Jumperを実装する
9.7 最適化は必要か
9.8 まとめ
第10章 OpenGL ES:3Dの世界
10.1 準備作業
10.2 3Dの頂点
10.3 透視投影:近くなるほど大きくなる
10.4 Zバッファ:順序を決める
10.5 3Dメッシュの定義
10.6 行列と変換
10.7 まとめ
第11章 3Dゲームプログラミングのトリック
11.1 準備作業
11.2 3Dのベクトル
11.3 OpenGL ESのライティング
11.4 ミップマッピング
11.5 シンプルなカメラ
11.6 モデルの読み込み
11.7 3Dでの物理学
11.8 3Dでの衝突検出とオブジェクトの表現
11.9 まとめ
第12章 Droid Invaders:グランドフィナーレ
12.1 ゲームの基本的な仕組み
12.2 背景ストーリーとアートスタイル
12.3 スクリーンと切り替え
12.4 ゲームワールドの定義
12.5 アセットの作成
12.6 プラン・オブ・アタック
12.7 Assetsクラス
12.8 Settingsクラス
12.9 メインアクティビティ
12.10 メインメニュースクリーン
12.11 設定スクリーン
12.12 シミュレーションクラス
12.13 GameScreenクラス
12.14 WorldRenderクラス
12.15 最適化
12.16 まとめ
第13章 ゲームの公開
13.1 テストに関する注意点
13.2 開発者として登録する
13.3 ゲームのAPKに署名する
13.4 Android Marketでゲームを公開する
13.5 デベロッパーコンソール
13.6 まとめ
第14章 次なる展開
14.1 ソーシャルサービスに参加する
14.2 位置認識
14.3 マルチプレイヤー機能
14.4 OpenGL ES 2.0などについて
14.5 フレームワークとエンジン
14.6 Webリソース
14.7 終わりの言葉
索引

--------------------
内容紹介
--------------------
フレームワーク設計から3D表現まで
必要なことが実践的にひとつずつ学べる
Androidゲーム開発書の決定版!

ゲーム開発にはトライ&エラーが欠かせません。本書では、ゲームエンジン「libGDX」の開発者である著者・Mario Zechnerが、厳選したAPIを用いてAndroidゲームのフレームワークを構築する方法を紹介します。この本では、フレームワークでゲームが改良しやすい環境を整えるとともに、OpenGL ESを用いた2D/3D画面構築の方法も詳しく解説していきます。

関連書籍

好評発売中

Windows 10 ユニバーサルアプリ開発【Windows 10 Mobile 対応】(Think IT Books)

Windows 10 Mobileに対応したユニバーサルアプリを作ろう!

好評発売中

Javaからはじめよう Androidプログラミング ―Android Studio対応版

Javaを知らない人のためのAndroidの入門書!

好評発売中

イラストでよくわかるAndroidアプリのつくり方—Android Studio対応版

Android Studio対応のAndroidアプリ開発入門書、決定版。

好評発売中

UX侍 スマホアプリでユーザーが使いやすいデザインとは [impress Digital Booksシリーズ]

大人気のスマホアプリ開発者とUX・UIの第一人者が使いやすいデザインについて語り尽くす!

ダウンロード

  • 『Androidゲームプログラミング A to Z』のサンプルコードです。アーカイバでZIPファイルを展開後、eclipseにインポートしてお使いください。

お詫びと訂正

誤記のためにご迷惑をおかけし、誠に申し訳ございません。

  • 22ページ 2.1.2の本文5行目以降
    • [誤]
      Windowsでは%ANDROID_HOME%\tools、Linuxでは$ANDROID_HOME/toolsをPATH環境変数に追加する。
    • [正]
      Windowsでは%ANDROID_HOME%\toolsと%ANDROID_HOME%\platform-tools、Linuxでは$ANDROID_HOME/toolsと$ANDROID_HOME/platform-toolsをPATH環境変数に追加する。
    • 備考:

      【原書の正誤表サイト(http://www.apress.com/9781430230427)では、原書p.44の正誤として記載されています。Android SDKには、toolsフォルダとplatform-toolsフォルダの両方があるので、日本語版では両方のフォルダをPATHに設定するようにしました】

  • 31ページ リスト2-1の7行目
    • [誤]
      【原書の正誤表サイト(http://www.apress.com/9781430230427)では、原書p.36の正誤として記載されていますが、このサイトに記載されたように「implements OnClickListener」に修正すると、エラーになるので、修正しません】
    • [正]
    • 備考:

      【原書p.36】 

      「View.OnClickListener」を「OnClickListener」に修正("View."を削除)すると、型が解決できないというエラーになります。OnClickListenerがandroid.view.View.OnClickListener以外のクラスにも存在するためです。どうしても「View.」を削除したい場合、「import android.view.View.OnClickListener;」を追加する必要があります。

  • 42ページ 下から4行目
    • [誤]
      【原書の正誤表サイト(http://www.apress.com/9781430230427)では、原書p.47の正誤として記載されていますが、修正する必要はありません】
    • [正]
    • 備考:

       【原書p.47】

  • 77ページ タイトル「画像のフォーマットと圧縮」下にある第2段落の3行目
    • [誤]
      この場合、画像のサイズは1024×1024になる。つまり、たった1つの画像で3MBになる。
    • [正]
      画像のサイズが1024×1024であるとすれば、たった1つの画像で3MBになる。
  • 79ページ ページ中央より下のブレンド方程式(3行のうちの下2行)
    • [誤]
      blue = src.green * src.alpha + dst.green * (1 - src.alpha)
      green = src.blue * src.alpha + dst.blue * (1 - src.alpha)
    • [正]
      green= src.green * src.alpha + dst.green * (1 - src.alpha)
      blue = src.blue * src.alpha + dst.blue * (1 - src.alpha)
    • 備考:

       【原書p.87-90】

  • 89ページ 6行目と10行目
    • [誤]
      【原書の正誤表サイト(http://www.apress.com/9781430230427)では、原書p.99の正誤として記載されていますが、日本語版では修正済みです】
    • [正]
    • 備考:

       【原書p.99】

  • 112ページ コードの1行目
    • [誤]
      【原書の正誤表サイト(http://www.apress.com/9781430230427)では、原書p.124の正誤として記載されていますが、「"Life Cycle Test"」でもエラーにはならないため、修正する必要はありません】
    • [正]
    • 備考:

       【原書p.124】

  • 116ページ リスト4-4の下から11行目
    • [誤]
      【原書の正誤表サイト(http://www.apress.com/9781430230427)では、原書p.129の正誤として記載されていますが、「@Override」があってもエラーにならなかったため、日本語版では修正は必要ないと判断します】
    • [正]
    • 備考:

       【原書p.129】

  • 146ページ 最初のアミカケ部分の2行目
    • [誤]
      【原書の正誤表サイトでは、原書p.158の正誤として記載されています。この場合のcontextは概念的なコードであり、アクティビティのコンテキストを表していると解釈されるため、日本語版では修正の必要はないと判断します。実際のサンプルコードでは、アクティビティ内でgetSystemService()を呼び出しているため、contextは記述していません。ただし、thisを記述することはOKです。】
    • [正]
    • 備考:

       【原書p.158】

  • 157ページ タイトル「ビットマップの読み込みと調査」の下の本文2行目
    • [誤]
      BitmapFactoryシングルトン
    • [正]
      BitmapFactoryクラス
    • 備考:

       【原書p.169】

  • 158ページ 本文12行目(ページ中央)
    • [誤]
       このようにすると、そのBitmapインスタンスによって使われているメモリはすべて解放される。もちろん、このメソッドを呼び出した後、ビットマップをレンダリングに使うことはできなくなる。
    • [正]
      【上記の文章をページ末尾のコード「Bitmap.recycle();」の下に移動】
    • 備考:

       【原書p.170】

  • 168ページ コードの下から8行目周辺
    • [誤]
      【原書の正誤表サイト(http://www.apress.com/9781430230427)では、原書p.180の正誤として記載されていますが、日本語版では修正済みです】
    • [正]
    • 備考:

       【原書p.180】

  • 174ページ 5.2の本文4行目以降
    • [誤]
      【原書の正誤表サイト(http://www.apress.com/9781430230427)では、原書p.186の正誤として記載されていますが、日本語版では「前章では」「前章の知識に基づいて」と記述しており、修正済みです】
    • [正]
    • 備考:

       【原書p.186】

  • 178ページ リスト5-4-1
    • [誤]
      【原書の正誤表サイト(http://www.apress.com/9781430230427)では、原書p.190の正誤として記載されていますが、日本語版では修正済みです】
    • [正]
    • 備考:

       【原書p.190】

  • 180ページ 本文の最終行
    • [誤]
      【原書の正誤表サイト(http://www.apress.com/9781430230427)では、原書p.192の正誤として記載されていますが、日本語版では「スタックトレースを出力」とし、修正済みです】
    • [正]
    • 備考:

       【原書p.192】

  • 180ページ リスト5-4-5
    • [誤]
      【原書の正誤表サイト(http://www.apress.com/9781430230427)では、原書p.192の正誤として記載されていますが、日本語版では「AndroidMusicクラス:pause()メソッド」を定義しており、修正済みです】
    • [正]
    • 備考:

       【原書p.192】

  • 188ページ コードの9行目と14行目
    • [誤]
      if(keyCode > 0 && keyCode < 127)
    • [正]
      if(keyCode >= 0 && keyCode <= 127)
    • 備考:

       【原書p.198】

      なお、0はKEYCODE_UNKNOWNであり、127はレベル11で追加されたKEYCODE_MEDIA_PAUSEなので、このサンプルコードの動作にはあまり関係がありません。

       

  • 196ページ コードの下から7行目周辺
    • [誤]
      【原書の正誤表サイト(http://www.apress.com/9781430230427)では、「touchEventsBuffer.add(touchEvent);」の上に、「isTouched[pointerId]=true;」を追加するように、記載されています。isTouched[pointerId]の値は、タッチした時点(ACTION_DOWNなど)でtrueに設定され、タッチをやめた時点(ACTION_UPなど)でfalseに設定されるため、ドラッグ中(ACTION_MOVE)は常にtrueになります。したがって、原書の正誤表のようにこのコードを追加してもあまり意味がありません】
    • [正]
    • 備考:

       【原書p.206】

  • 208ページ 本文の最終行
    • [誤]
      【原書の正誤表サイト(http://www.apress.com/9781430230427)では、原書p.218の正誤として記載されていますが、日本語版では「AndroidPixmapクラス」と掲載しており、修正済みです】
    • [正]
    • 備考:

       【原書p.218】

  • 209ページ リスト5-13-7の下から2行目
    • [誤]
      【原書の正誤表サイト(http://www.apress.com/9781430230427)では、原書p.219の正誤として記載されていますが、日本語版では「…, y + height - 1, paint);」と掲載しており、修正済みです】
    • [正]
    • 備考:

       【原書p.219】

  • 222ページ background.pngのピクセルサイズ
    • [誤]
      【原書の正誤表サイト(http://www.apress.com/9781430230427)では、原書p.230の正誤として記載されていますが、日本語版では「320x480」と掲載しており、修正済みです】
    • [正]
    • 備考:

       【原書p.230】

  • 281ページ 本文の下から4行目
    • [誤]
      【原書の正誤表サイト(http://www.apress.com/9781430230427)では、原書p.290の正誤として記載されていますが、日本語版では「図7-5」と掲載しており、修正済みです】
    • [正]
    • 備考:

       【原書p.290】

  • 300ページ 7.7.4のコードの2行目
    • [誤]
      int textureIds = { textureid };
    • [正]
      int[] textureIds = { textureId };
    • 備考:

       【原書p.309】

  • 317ページ 7.11の本文4行目
    • [誤]
      リスト7-11をもう一度見てみよう。
    • [正]
      リスト7-11-1をもう一度見てみよう。
    • 備考:

       【原書p.326】

  • 321ページ 最初のコードの3行目
    • [誤]
      bob.update(deltaTime);
    • [正]
      bobs[i].update(deltaTime);
    • 備考:

       【原書p.330】

  • 343ページ 8.2.1の本文の第3段落
    • [誤]
      【8.2.1の本文の第3段落は「 これらの成分を足し合わせると、」から「よって算出される。」までです。原書の正誤表サイト(http://www.apress.com/9781430230427)では、原書p.353の正誤として記載されています。このサイトの表現とは異なりますが、日本語版で修正済みです】
    • [正]
    • 備考:

       【原書p.353】

  • 349ページ 本文の最終行
    • [誤]
      【原書の正誤表サイト(http://www.apress.com/9781430230427)では、原書p.359の正誤として記載されています。日本語版では「FloatMathクラス」と記載しており、修正済みです】
    • [正]
    • 備考:

       【原書p.359】

  • 421ページ 9.4の本文の8行目
    • [誤]
      【原書の正誤表サイト(http://www.apress.com/9781430230427)では、原書p.433の正誤として記載されています。日本語版では「サイズが320×480ピクセルのモックアップ」と記載しており、修正済みです】
    • [正]
    • 備考:

       【原書p.433】

お問い合わせ

書籍の内容に関するお問い合わせはこちら。お答えできるのは本書に記載の内容に関することに限ります。

お問い合わせフォーム