どうもです、タドスケです。
ここ3ヶ月ほど『ゲームエンジンアーキテクチャ』をずっと読んでいて、先日ようやく読み終えました。
1000ページにもなろうかという驚きの厚さ!
最初は戸惑いましたが、それでも読んでみたところ、とても良い本だったのでレビュー記事にまとめたいと思います。
読もうと思ったきっかけ
僕はいまゲーム開発者向けのツールを作る仕事をしています。
ツールではグラフィクスやアニメーションなど多様なデータを扱いますが、わからない用語もたくさんありました。
それでも仕事に差し支えはありませんでしたが、さすがにこのままでは良くないなと。自分で実装できなくてもいいので、せめて用語や「どのように使うデータなのか」は知っておきたいと思いました。
そんな折、グラフィクス以外にも幅広い内容を扱っていそうで、評判も良いこの本を知り、手に取った次第です。
内容
本の内容は以下です。(目次から引用しています)
- 仕事用ツール
- ゲームのためのソフトウェアエンジニアリングの基本
- 並列・並行プログラミング
- ゲームのための3D数学
- エンジンサポートシステム
- リソースとファイルシステム
- ゲームループとリアルタイムシミュレーション
- ヒューマンインターフェイスデバイス
- デバッグおよび開発のツール
- レンダリングエンジン
- アニメーションシステム
- コリジョンと剛体力学
- オーディオ
- ゲームプレイシステムの概要
- ランタイムのゲームプレイ基本システム
特にオススメのポイント
本書を読んで、豊富でわかりやすい内容にとても満足しました。他の技術書と比べて特にオススメしたいポイントをまとめます。
基礎知識編がとても充実している
本書はゲームエンジンの構成要素だけでなく、そのベースとなるプログラミング・数学・ハードウェアについても、多くのページを割いて丁寧に説明してくれました。
配列処理やキャッシュの仕組みは、この後に続くグラフィクスなどの話を理解する上でも重要な要素になりました。
「どの説明を、どの順番でするか?」ということもよく考えられていて、それがわかりやすさに繋がっているように思えます。
様々な選択肢を幅広く紹介してくれる
多くの技術書が「1番良い(と著者が考えている)」やり方だけを紹介している中で、本書では様々なやり方をメリット/デメリットを交えて幅広く紹介してくれています。
紹介する流れも、
- 初心者が選びがちなやり方を紹介する
- そのやり方だとこういうケースで問題が起きますよね?と指摘する
- それを解決するためにこのやり方がある
という流れで説明されるので、非常に説得力があります。
著者が謙虚
もう一つ、内容とは関係ないけど個人的に重要だと思ったポイント。
著者は『アンチャーテッド』『The Last of Us』シリーズでリードプログラマを勤めた経験があり、間違いなく「超一流のゲームプログラマー」です。
しかし本書の語り口はとっても謙虚。
「詳しい私が教えてあげよう」ではなく、「自分の経験では、これがいいと思うよ」くらいの感じです。
参考文献へのリスペクトも深く、「自分が説明するより、こっちの資料が最高だよ!」と紹介してくれるので、とても好感が持てました。
もし著者が偉そうな口ぶりだったら、この圧倒的なボリュームの途中で嫌になり、最後まで読み切れなかったと思います。
初学者が読む際の注意点
本書が掲げる「入門書」という謳い文句に間違いはないとは思いますが、初学者が読む場合は
いきなり全てを理解しようとしない
ということを念頭に置いたほうが良いと思います。
たとえある程度の経験を積んだゲームプログラマーであっても、専門外のパートについては難しい部分がいくつかあると思います。
僕の場合は物理・数学が苦手なので、グラフィクス、アニメーション、物理周りで大量の数式が出てくるところは読み飛ばしました。
各分野で使われている技術の名前、メリット/デメリット、動作イメージをざっと把握しておくだけでも、現場では十分に役に立つと思います。
全てのゲームプログラマーにオススメできる良書!
本書を全て読み終えたことで、「ゲーム開発に必要な技術を広く浅く学ぶ」という当初の目的が達成できました。
今後の現場で各パートのプログラマーと話す際にも、本書で学んだ基礎知識が役に立ちそうです。
ゲームエンジンにあまり興味がないゲームプログラマーにも、自信を持ってオススメできる一冊でした。
今後も手元に置いておき、新しいことをやる時には読み返すようにしたいと思います!
コメント