ISBN 9784798157610

ゲームプログラミングC++

ゲームプログラミングC++
出版社
翔泳社
刊行
2018-12

概要

C++でゲームエンジンの基礎を一から実装して理解する

想定読者

C++の基礎文法を習得済みで、SDL2/OpenGLを使ったゲーム開発の実装原理を体系的に学びたい人。ゲーム会社の新卒入社前に基礎力を固めたい学生や、個人ゲーム開発者。

こんな人には向いていない

  • C++をこれから学び始める段階の人。付録Aの中級C++復習はあるが、ポインタ・クラス・テンプレートの理解が前提とされており、言語入門書と並行でないと消化が難しい
  • Unity・Unreal EngineなどゲームエンジンのAPIを使いこなすことが目的の人。本書はエンジン内部の仕組みを自作する教本であり、エディタ操作やブループリントの学習には対応していない
  • すでに自作ゲームエンジンやレンダリングパイプラインを実務で扱っている開発者。扱う範囲は基礎的であり、実装経験者には既知内容が大半を占める

読了後にできるようになること

  • ゲームループ(ProcessInput / UpdateGame / GenerateOutput)の構造と、vsyncを使ったフレームレート制御を実装できる
  • SDL2を用いた2Dスプライト描画とダブルバッファリングの仕組みを理解し、自力でウィンドウ描画パイプラインを組める
  • OpenGLシェーダーとVAO/VBO/EBOの仕組みを理解し、3Dグラフィックスのレンダリングパイプラインを一から実装できる
  • ベクトル演算・衝突検知・物理シミュレーションの基礎をゲームコード内に組み込める
  • 有限オートマトン(FSM)や経路探索(GBFS/A*)などのゲームAIアルゴリズムをC++で実装できる
  • スケルタルアニメーション・オーディオシステム・UIシステムなど、商用ゲームに必要なサブシステムの設計パターンを把握できる

本書のキー概念(章解説)

  • 第 1 章 ゲームプログラミングの概要 — ゲームループの3ステップ構造はすべての章の前提。最初に完全に理解すること
  • 第 2 章 ゲームオブジェクトと2Dグラフィックス — SDL2でスプライト描画を実装。ここでゲームオブジェクト設計の基本パターンを習得する
  • 第 3 章 ベクトルと基礎の物理 — 数学的基礎。高校物理程度の理解があれば読み進められる
  • 第 4 章 人工知能(AI) — FSMと経路探索(GBFS/A*)を実装。Qiita記事でも参照例がある独立性の高い章
  • 第 5 章 OpenGL — シェーダーとレンダリングパイプラインの入口。3D章への橋渡し
  • 第 6 章 3Dグラフィックス
  • 第 7 章 オーディオ
  • 第 8 章 入力システム
  • 第 9 章 カメラ
  • 第 10 章 衝突検知
  • 第 11 章 ユーザーインターフェイス(UI)
  • 第 12 章 スケルタル(骨格)アニメーション
  • 第 13 章 中級グラフィックス
  • 第 14 章 レベルファイルとバイナリデータ

ハイライト

  • 誰も教えてくれなかった、ゲーム開発の基本を徹底的に学ぼう!3Dグラフィックスからサウンド、AIまで。ゲームプログラマーになりたい人のみならず、すべてのゲーム開発者が知っておきたい「基本」が詰まった、ゲーム開発の教科書!(本書の対象読者と扱う範囲の広さが端的に示されており、購入判断の軸になる)
  • C++の初歩は習得済みで、本気でゲームプログラミングを学びたい人が、新人になる前に、確かな基礎力を磨ける一冊。(想定レベルが明示されており、読者が自分に合うかどうかを判断しやすい)

外部からの言及

  • 複数の開発者がC++でSDL2/SDL3を使ったゲーム・ローグライクを自作する際に本書をアーキテクチャ参照として活用している。ゲームループ設計やオブジェクト管理の構造パターンを実コードに落とす足がかりとして使われており、単なる教科書にとどまらず実装プロジェクトの設計指針として機能している(qiita)
  • 第4章のGBFS(最良優先探索)実装について、教科書ではComputeHeuristic関数が省略されており、自分で補完する必要があるという指摘がある。アルゴリズムの概念説明は丁寧だが、動かすためには読者側の実装補足が必要な箇所がある(qiita)

編集メモ

Qiita言及4件 / 累計likes 6。言及数・likes数は多くないが、SDL2/C++ゲーム開発の実装解説記事で参照書籍として挙げられており、特定分野での参照実績がある

読む前に押さえておきたいこと

  • C++のポインタ・参照・クラス・継承を自力で書ける程度の実装経験
  • 行列・ベクトルの基本演算(内積・外積・正規化)の概念理解。高校数学レベルで可
  • コンパイル・リンク・ビルドシステム(CMakeまたはVisual Studio)の基本的な操作経験

学習のコツ

  • 第1章のゲームループ(ProcessInput/UpdateGame/GenerateOutput)を完全に理解してから先に進む。この3ステップ構造は全14章を通じて共通の骨格となるため、ここが曖昧なまま進むと後の章が断片的な知識で終わる
  • 第4章(AI)は他の章と独立性が高いため、グラフィックス章で行き詰まった場合のブレイクとして前後させて読むことができる。GBFSの実装はA*アルゴリズムへの入口としても機能する
  • 付録Aの中級C++は読み始め前に確認し、スマートポインタ・テンプレート・ラムダが不安な場合は先に補強する。本文中は説明なく使われる箇所がある
  • 各章末の演習問題は設計判断力を養う設問が多い。コードを動かすだけでなく、演習を通じて章の設計意図を掘り下げることで理解の定着度が大きく変わる
出版社による内容紹介

誰も教えてくれなかった、 ゲーム開発の基本を徹底的に学ぼう! ・ゲームとはどんなプログラムなのか? ・「あの機能」はどうやって実装されているのか? 3Dグラフィックスからサウンド、AIまで。 ゲームプログラマーになりたい人のみならず、 すべてのゲーム開発者が知っておきたい「基本」が詰まった、 ゲーム開発の教科書! C++の初歩は習得済みで、本気でゲームプログラミングを学びたい人が、 新人になる前に、確かな基礎力を磨ける一冊。 ====目次==== Chapter 1 ゲームプログラミングの概要 Chapter 2 ゲームオブジェクトと2Dグラフィックス Chapter 3 ベクトルと基礎の物理 Chapter 4 人工知能(AI) Chapter 5 OpenGL Chapter 6 3Dグラフィックス Chapter 7 オーディオ Chapter 8 入力システム Chapter 9 カメラ Chapter 10 衝突検知 Chapter 11 ユーザーインターフェイス(UI) Chapter 12 スケルタル(骨格)アニメーション Chapter 13 中級グラフィックス Chapter 14 レベルファイルとバイナリデータ 付録A 中級C++の復習

この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。

質問に答えるだけで、
あなたに合う専門書が見つかる

IT・デザイン・士業・医療・経理・教育・研究 ほか、あらゆる分野の専門書と 「読む順序」(学習ロードマップ)を収録。何を選べばいいか分からなくても、 いくつかの質問に答えるだけでたどり着けます。