Game Programming Patterns

ゲーム プログラミング パターンズ

ソフトウェア開発の問題解決メニュー

Game Programming Patterns の表紙
プログラミング
著者:
ロバート・ナイストロム / 武舎広幸(ナイストロム, ロバート / ムシャ, ヒロユキ)
出版社:
インプレス
出版日:
2015年09月
ISBN:
9784844338901
シリーズ:
impress top gear
在庫:
在庫あり
4.67(4 件 / 楽天ブックス)

なぜ注目されているか

総合285位 ↓ 1 ランクダウン 言及 7 件
言及数
373位
01220222023202420252026

技書の森解説

『Game Programming Patterns』は、ゲーム開発で何度も出会う設計上の問題と、その定番の解き方を名前付きのパターンとして整理した本の日本語版です。著者は Robert Nystrom、監訳は武舎 広幸、訳は阿部 和也と上西 昌弘で、インプレスの impress top gear シリーズから 2015 年 9 月に刊行されました。副題はソフトウェア開発の問題解決メニューです。動くゲームは作れるものの、コードが大きくなるにつれて手を入れにくくなっていく、という段階にいる開発者に向いた設計の本です。

原書の区分、GoF の再訪から 4 分類 13 パターンへ

原書の Web 版の目次と序章によると、全体は大きく 3 つに分かれます。最初が導入で、序章に続いてアーキテクチャと性能とゲームの関係を論じる章が置かれます。次の Design Patterns Revisited では、GoF の本から Command、Flyweight、Observer、Prototype、Singleton、State を取り上げ、それぞれがゲームの文脈でどう効くのかを著者の視点で捉え直します。残りが本論で、13 のパターンを Sequencing (Double Buffer、Game Loop、Update Method)、Behavioral (Bytecode、Subclass Sandbox、Type Object)、Decoupling (Component、Event Queue、Service Locator)、Optimization (Data Locality、Dirty Flag、Object Pool、Spatial Partition) の 4 分類にまとめています。序章では各パターンを意図から始まる一定の構成で書いたと説明されており、頭から通読するだけでなく、目の前の問題に近いパターンを引く参照書として使えるつくりと読めます。ここでは原書の区分に沿って紹介しています。

ゲームのコードで設計の問題が先に表面化する理由

ゲームは、毎フレーム決まった時間内に入力処理と更新と描画を終えなければならない、という強い制約のもとで動くソフトウェアです。大量のオブジェクトがそれぞれ状態を持って動き、互いに衝突し、効果音や演出のイベントを発生させるため、素朴に書くとクラス同士の依存が網の目のように絡みます。そこに処理速度の要求が重なり、読みやすさを優先した抽象化と、メモリ配置やキャッシュの効き方を意識した書き方とのあいだで判断を迫られます。原書が 4 分類のうち 1 つを丸ごと最適化に割き、データの局所性や オブジェクトプール を扱っているのは、この両立がゲームのコードの中心的な課題であることの表れと読めます。こうした問題は物理シミュレーションや UI のイベント処理など、時間制約のある対話型のシステム全般に共通するため、ゲーム以外の開発者にも応用の利く題材です。

サンプルコードは C++、言語よりも発想を読む本

原書の序章によると、サンプルコードは C++ で書かれていますが、本書は C++ の教本ではありません。標準ライブラリを使わず、テンプレートもほとんど使わない簡素な書き方にしてあり、C や Java、C# などに慣れた人でも読めるように配慮したと著者は述べています。そのため前提として求められるのは、クラスと継承、ポインターや参照の意味をおおむね読み取れる程度の素養です。一方で、Unity や Unreal Engine といった特定のエンジンの操作手順や、グラフィックスの描画技法そのものを学びたい人には目的が合いません。設計を一段広い視点で学び直したい場合は、設計とアーキテクチャの本の選び方 も合わせて眺めておくと、本書の位置づけがつかみやすくなります。

エンジンの機能を使いこなしたうえで、自分のゲームのコードをどう組めば後から手を入れやすくなるのかを考え始めた人にとって、本書は判断の引き出しを一気に増やしてくれる一冊です。ゲームループやコンポーネントといった、エンジンの内部で当たり前に使われている仕組みの成り立ちが分かると、エンジンの設計思想そのものも読み解きやすくなります。

言及した記事 (7 件)

この本に興味がある方におすすめ

関連する本

関連記事

関連用語

共有: