Game Programming Patternsの感想

はいどーもこんばんはもうすぐで社会人のニートです。
本日は『Game Programming Patterns』の感想記事を書いていきたいと思いますよ。

なお副題は「ソフトウェア開発の問題解決メニュー」です。

ゲームプログラマにしか役に立たないか?

この本のタイトルには「Game Programming」とあります。
多くの人は「だったら、ゲームのプログラミングにしか役に立たないのでは?」と思うでしょう。
しかしそれは誤解です。

単に(デザイン)パターンのサンプルにゲーム(実際に動くものではなく、最小限のサンプルコード)を使っているだけであり、この本で紹介されているパターンは別のソフトウェア開発にも応用できるでしょう。

対象読者

とは言え主にゲームプログラマに向けて書かれていることは事実です。
実際どの程度の人を想定しているのかなーと言えば、だいたいこんな感じかなと思います。

・GoFのデザインパターンの概要を把握している
・ゲームの基盤となるシステム(なんちゃらマネージャーみたいなの)を作成したことがある。もしくは作成しようとしたことがある
・様々な意味で効率のよいパターン(プロの現場で使われているコード)についてはあまり知らない
・一種類くらいはプログラミング言語をある程度自在に操れる(フレームワークやライブラリの知識は含まない)

一つ一つ詳しく説明します。

・GoFのデザインパターンの概要を把握している
 →そのままです。GoFのデザインパターンはある程度把握しているものとして説明が進んでいきます。少なくとも、パターン名を聞いてどのようなものか全く想像がつかないのでは読むのが苦痛になるのではないかなと思いました(特に前半)。
・ゲームの基盤となるシステム(なんちゃらマネージャーみたいなの)を作成したことがある。もしくは作成しようとしたことがある
 →ちょくちょく「なんちゃらマネージャー」系の話が出てきます。実際に作ったことがないと想像しにくいんではないかなーと思いました。
 ただ作成したことがなくても、なんちゃらマネージャー系をいじる機会があった人(ツクラーとか)は問題なく読み進められると思います。
・様々な意味で効率のよいパターン(プロの現場で使われているコード)についてはあまり知らない
 →僕みたいなプログラミング初心者が対象ということですね。現役バリバリのプロの方が「さらに奥深く」進むための本ではないです。何も知らない初心者が効率のよいコードを書くための「最初の道標」という感じの位置づけでしょう。
・一種類くらいはプログラミング言語をある程度自在に操れる(フレームワークやライブラリの知識は含まない)
 →「for文ってなに? if文って? 配列? はい?」みたいな感じでは相当厳しいと思います。

なお言語はC++で書かれています。
僕はC++の勉強は一切したことがありませんが、解説から推測してほぼ問題なく理解できました(フレンドクラスとかはググりましたけどw)。

どんなことが解説されているのか

もう少し具体的な内容に踏み込んでみましょう。
『Game Programming Patterns』が取り扱っている内容は以下の通りです。

いわゆるGoFのデザインパターン
・コマンド
・フライウェイト
・オブザーバ
・プロトタイプ
・シングルトン
・ステート
シーケンスのパターン
・ダブルバッファ
・ゲームループ
・更新メソッド
ビヘイビアのパターン
・バイトコード
・サブクラスサンドボックス
・型オブジェクト
分離のパターン
・コンポーネント
・イベントキュー
・サービスロケータ
最適化のパターン
・データ局所化
・ダーティフラグ
・オブジェクトプール
・空間分割

このような感じになっています。
よくわからないものが4つ以上あったなら、買っても損はしないと思います。
ちなみに、ツクールのコアスクリプトでもこれらの技術は使われていますよ。
ダーティフラグの意味がわからなくて苦労しましたが、この本でやっと理解できましたw

各項目の詳細はこの記事なんか参考になるかも(外部サイトです)。

通読してみて

一つ一つの項目がとても興味深く、購入したその日は4時間くらいぶっ通しで読みましたw
この本は『実戦で役立つ C#プログラミングのイディオム/定石&パターン』以上にオススメです。
ただ内容が難しめなので、実際のプログラミングで経験を積んだあとに何回か再読したいかな~という感じですね。
GoFのデザインパターンなにそれな感じの方は『Java言語で学ぶデザインパターン入門』も併せて読むとよいかも。

あとは「継承は最近あまりよくないというのは音に聞いているが、じゃあどうするのか?」みたいな疑問にもズバリ答えてくれています。
パターン関係で「これどう組んだらええねん?」みたいな疑問があるなら、買って損はないですね。
まあもちろん、頭ではわかっていてもうまいこと組めるかどうかはまた別なんですが……w

終わりに

『Java言語で学ぶデザインパターン入門』も読んで相当に感動したものですが、こちらはそれ以上です。
上の方で羅列した項目に少しでも興味があるものがあれば、あるいは現場で使われている新し目のパターンを知りたいならば、買ってみてもよいんではないでしょーか。

最近はブログの更新をめっきりサボっていますが、こうやって読書の感想くらいは書いていきたいものですねえ。
あ、ニート完全体に戻ったらたぶん更新頻度またあがります。
更新頻度あがったらお察しください。

ほなそんな感じでまた。

フォローする