2015年6月5日金曜日

「ゲームプログラマのためのコーディング技術」を読んで

「ゲームプログラマのためのコーディング技術」を読みました.

正直なところ,大圖さんのSlideshareの資料を見て,理想論ではあるんだけれど,そこまでやるのも大変そうだな,と思っていたので,この本も理想論を語っているのではないか,と疑っていましたが,読んでみるとそうでもありませんでした.

この本のタイトルには「ゲームプログラマのための」と書いてあります.実際,例として使われているものがゲームを作っていると見かけるようなものであったりするので,ゲームプログラマ,もしくはゲームプログラマを目指している学生の方が飲み込み易いかもしれませんが,その他のC++を使っていて初心者を抜け出したいプログラマにも是非是非読んでみて欲しい内容になっています.

C++の入門書を読み終えて,いくつか自分でプログラムを書いてみたら,この本の第1章「分かりやすいコードを書くためのテクニック」を読みながら,自分が書いたプログラムを読み返してみましょう.

第1章では,分かりにくいコード例から分かりやすいコードにするまで,何故こう変更するのか,ということを丁寧に説明しています.そして,ここが初心者にとってありがたいのではないか,と思ったのが,どういう場合に関数にすれば良いのか,どういう場合にクラスにすれば良いのか,といったコツを説明しているところです.

新人プログラマと話していて,どういう部分を関数にすれば良いか分からない,どういうものをクラスにすれば良いのか分からない,という言葉は良く聞きます.余裕があるときであれば,新人の書いたコードを見て,例を示したりするわけですが,今後は取り敢えずこの本を読め,と渡すだけで済みそうです.

この本を読んだ初心者ではないつもりの人は,途中でこう思うかもしれません.こんな風に書いてたら,ゲームだと処理が重くなって使えないのでは,と.そう思うタイミングで,実行速度の低下とかはちゃんと対策があるし,コンパイラを活用しよう,といった感じの話が入っていて,上手いなぁ,と感じました.

第2章の「シンプルな設計のための原則とパターン」からは,初心者だとちょっと難しいかもしれません.というのも,実際の問題にぶつかったことが無いか少ないため,こういう設計の方が良い,と言われても感覚が理解できないかもしれないからです.しかし,何かしらの仕事であったり課題であったりを終えた後に読み返してみれば,きっと色々と修正したいポイントが出てくることでしょう.

第3章の「ソースコードの品質計測」は,初心者どころか中級者でも全く知らない人もいるかと思います.理由としては,著者も挙げていますが,C++のコードの品質を計測するツールには商用の高価なものが多く,会社や学校で導入していないと触れる機会がなかなか無いからです.この本では,無償のツールが紹介されているので,自分で書いたコードを自分で計測してみることは可能です.

この本で紹介されているようなコードの品質の指標を利用することで,経験者の勘に頼ること無く,自分でコードの善し悪しに気付くことも可能になるため,是非とも導入したいところです.とりあえず,しばらくは時間がありそうなので,まずは自分の手元だけでも実践して,社内に布教していきたいですね.

この本は,初心者から中級者向け,となっていますが,新人に教える人のための教材としても使えると思うので,C++でプログラムを書く人は買って損は無いのでは,と思います.