自分のような一皮向けようとしている初心者にとっては非常にわかりやすく、レイアウトなども含め、いい本だと思いました。特に"クラス"については、いかにクラス設計すべきかの指針を具体的に書いており、そもそもクラスは何のために必要か?という部分も学ぶことが出来る本かと。オブジェクト指向の把握のしにくさは、このブログでも何度か書いてますが、そこらへんがキッチリ説明されている本です。
題名に反し、普遍的な内容
ゲームプログラマのための、と題されてますが、むしろ普遍的な、基本的な技術を中心とした内容になっており、実践的なプログラミング力(ちから)を付けるのには、最適な一冊だと思います。Amazonのレビューは割と厳しめですが。
この本で身につけられるものは、大きく分けて次の三つです。
- 簡潔で読み易いコードを書く
- クラスを上手く使う
- デザインパターンの活用
具体的なゲームを動かすコードをどのように書くべきか、という内容ではなく、それらを上手く書くための基礎的な部分を説明しているのが本書の特徴だと思います。
コーディング技術ですからね、そこにだけ注意です。
サンプルコードはC++で書かれている点を許容できれば、Unityを使う上でも非常にためになる知識が多く載っていると思うのですが、どうでしょうか。
Unityで覚える遊びのアルゴリズム
Unity関連の書籍としては、この本が有名ですが、これもプログラミングを主体にした本です。しかし、これはある程度プログラミングできる前提で、コードの書き方自体ではなく、あるルールのゲームを実現するには、どういうコードを組めばいいか?という内容になっています。つまりは『ゲームプログラマのための~』の対極にある本です。これについての書評もそのうち書きたいと思います。本記事の本と合わせて読むのがいいのかもしれませんね。
本、テキストとしてのクオリティ
個人的な意見として、プログラミングについての本、特に和書は抽象的な説明のみになってしまっており、つかみどころのない文章になってしまっている場合が多いと思います。その結果、頭ではわかっても体ではわからない、という状態になってしまいます。まぁプログラミングは自分で書いて覚えていくものでしょうが。
Amazonの批判的なレビューに「今更な内容。この時期にあえて出す意味わからん」というようなものがありますが、そうは思いませんね。基礎的な内容を求めているヒトは自分を含めてたくさんいますし、何より基礎的なことをあえて今書かない理由の方が見つからないと思います。そう反論したいくらいには買ってよかったなと思います。要は"書き方"の問題であり、どう書かれているか?ということです。
例えば、プログラミングに関する名著に『リーダブルコード』があります。この本も、どう書くべきかの指針となるような本で、確かに名著だと思いますし、C#でのコードは一切出てこないのですが、かなり勉強になります。
この本も、『別に新しくもなんともないじゃん。』というレビューがあったそうです。
でも、この本は別に内容だけで評価されているのではなくて、その書き方によるところも大きいと思うのです。とにかくすごい読みやすいですし、読み物としてのクオリティが高いんです。読み通すこと自体は直ぐできますが、書いてあることを実際に出来るようになるには時間がかかりますし、何度も読み返すことになります。
何度も読み返すのが楽しいこと、が大事なんだと思います。
少し話がズレましたが、要はこの本もそういうクオリティを持っている自分は考えています。テキストとしてのクオリティが高いです。
いい本に限ってC++
これはもうそういう定めなんでしょうね。
以前紹介した『プログラマーの考え方が身につく本』もC++で書かれていますが、これも非常にためになる本です。C++は何でもできるし、使えるプログラマは本物だから、ということで採用したとのことですが、本著でもそういうことなんでしょう。
UnrealエンジンはまさしくC++がメインなので、Unity使い達にとっては羨ましい限りです。というかC++勉強すれば良いじゃん!って言われそうですが。
しかし、読めるコードも多いので、Unity使いであっても、なんとか読むべきかなと。
C#じゃないんだ・・・、じゃあいいかな。というのではもったいない!
C#で書かれたこのようなクオリティの本が欲しいところです。
まとめ
2015年発行ということで、新しい書籍に属すると思いますし、著者の方も実際にコンシューマ開発に携わっておられたようなので、昨今のコーディング技術を実践的に学ぶにはやはり良い一冊です。さらに精読をしていきたいと思います!!
ではまた!