適当おじさんの適当ブログ

技術のことやゲーム開発のことやゲームのことなど自由に雑多に書き連ねます

「Game Programming Patterns」を読んで

本の概要

  • 1章に1パターンずつ紹介されています。計19のパターンが紹介されています。
  • 2章〜7章は、「オブジェクト指向における再利用のためのデザインパターン」にも記載されているパターンです。
    • いずれもゲームプログラミングの視点で説明されています。
  • 特に、8章〜20章の13パターンがこの本の核となるパターン達です。これら13のパターンには以下の項目が記載されいてます。
    • 「パターン誕生の背景」
    • 「パターンに関する説明」
    • 「パターンの適用条件」
    • 「パターン使用上の注意」
    • 「サンプルコード」
    • 「検討項目」
  • 本書の例文はすべてC++です。例はいずれもシンプルなので、C++を触ったことがない人でも、プログラミングの経験があれば問題なく読め進められると思います。
  • 著者の人柄が伝わってくるようなユーモアな注釈が随所にあります。

私の概要

どんな人間が感想を書いたのかは重要だと思うので、はじめに明確にしておきます。私はゲーム制作初心者です。仕事ではなく、趣味でゲーム制作をしています。ゲーム制作にはUnityを使用しています。仕事では、C#, Objective-C, Swift, Pythonあたりを使っていました。本書を手に取った理由は以下です。

  • 以前より、ゲーム分野に特化したプログラミングの参考書を何か1つ読んでおきたいと思っていました。
  • ゲームの規模が大きくなるにつれて、煩雑になりゆくコードに危機感を抱いていました。今のうちに手を打っておきたいと思いました。
  • 趣味のゲーム制作なので、クソコードだろうとなんだろうと書き放題です。加えて、間違いを正してくれる偉大な仲間もいません。自分なりにクソコードにならないよう気をつけているのですが、それが本当にクソコードでないかどうかはわかりません。クソコードと判断するためのヒントを得られればと思いました。

感想

どのパターンも中立的な立場でその特徴が書かれています。パターンの良い面も悪い面も書いてあり、使うべきでないケースまで書かれています。そのおかげで、デザインパターンを勉強したときにありがちな、「とりあえずなんでもかんでもパターンに当てはめてみる」という症状に陥ることがないと思います。

特に、「パターン使用上の注意」「検討項目」の項目は、非常に勉強になりました。どちらの項目も、パターンを使っているかどうかに関わらず参考になりました。デザインパターンそのものを丸暗記するのではなく、それらが着目している問題領域に着目して理解するような読み方の方が多くを得られると思います。このデザパタ本に限った話ではないと思いますが。

様々なデザインパターンのサンプルに触れることで、コードを書く際に考慮できることが多くなったように感じています。「本書を手に取った理由」に対する直接的な答えは得られませんでしたが、それを考えるための十分なヒントを得られたように思います。

ふんわり感想になってしまいましたが、以上です。