Unityでインディゲームを作る!

Unityでのゲーム制作を目指し、それに関わる話題についてのブログ

Unity e-book "Level Up Your Code With Game Programming Patterns"を読みました。 [ 感想 レビュー ]

GameProgrammingPatterns_Cover

 Unity公式から発行されているe-bookである、

Level up your code with game programming patterns

を読んだので、その感想及びレビューを書きます。

 公式による、日本語版の紹介記事です。本書の冒頭部分の内容が抜粋されています。ただし、e-book自体は英語ですので、ご了承ください。

 

 プログラミング・パターンとは、日々のソフトウェア開発の中で多くのプログラマーが出くわす『よくある問題』及び、それに対する一般的な解決法の概案です。

 コピペで使えるような直接的な解決法ではありませんが、これを上手く利用することで無駄な苦労(車輪の再発明)しないで済む、という補助ツールのような存在になります。

 

 本書はUnityで使用されるC#を用いて、特にUnityでのゲーム制作をする上で代表的なパターンについて解説するものであり、非常に勉強になるものでした。C#を使ったプログラミング・パターンについてのテキストはそんなに多くないと思うので、そういう意味でも価値のある本だと思います。

 

前提としてのSOLID原則

 この本では前置きとして、まずSOLID原則について前半部で触れています。

 上記事では、個別にSOLID原則を扱いましたが、それはこの本に影響を受けてのことです。正直、原則と言うのは一般化された抽象的なものであり、結局その真髄を理解できるのは自分自身で経験を積んだ後、と思っています。

 しかし、本著は実例やコードを交えながら、わかりやすく説明してくれています。個人的には、この部分だけでも得るモノは大きかったです。

 

パターンを使う上での注意

 プログラミング・パターンを紹介、解説するのが本書の目的ですが、当然ながらデメリットについても注意喚起してくれています。

 パターンは便利な道具ではあるのですが、それを使う際には管理が必要となる追加的な構造や余分な準備を伴うことになります。

Decide if the benefit justifies extra work before implementing it.

(その利益が余計な仕事を正当化するかどうか、実装する前に判断しよう!)

と書かれているように、本当に必要かどうかを判断する必要があります。

 

 紹介されるSOLID原則や各パターンは、(将来的に拡大していく)大規模な開発において特に効力を発揮するモノであり、ちょっとしたゲームや小規模な(個人)開発においては必要はないのかもしれません。本書で釘を刺されているように、実際に使う際には慎重に判断したい所です。

 

紹介されるパターン群

 本書で紹介されるパターンはファクトリー、オブジェクトプール、シングルトン、コマンド、ステート、オブザーバー、MVPとなり、意外と多くはありません。

 どのセクションも実例を交えながら分かりやすく解説されているので、詰むことは無いと思います。ある程度経験のある人にとってはお馴染みのパターンばかりかもしれませんが、改めて丁寧に解説されているのは、どんな人にとってもありがたい事ではないでしょうか。

 

 どのパターンも最初はもっとも単純な実装方法から始まり、そこからより実践的な内容に移ります。そして、メリットとデメリットについても解説し、それらに対する改善案があれば紹介する、というのが主な流れになります。

 各パターン長すぎず、ちょうど良くまとめられているため、読み返しもしやすいです。これを読みながら自分で実装してみる際にも使いやすいと思います。

 

まとめ

 パターンを自力で再発見する場合がある、のですが、やはり予備知識としてパターンを身につけておいた方が、時間と労力は節約できるだろうと思います。

 この本はパターンについて学ぶきっかけを与えてくれるような本ですし、おすすめできます。自分としても、とても良い勉強になる一冊でした。