平山尚『ゲームプログラマになる前に覚えておきたい技術』

ゲームプログラマになる前に覚えておきたい技術

ゲームプログラマになる前に覚えておきたい技術

C++でゲームを作る本ですが、これは良い本。って、まだ頭の方と最後の方しか読んでませんが。あとはぱらぱら眺めた程度。

そもそも、分厚い本(800ページ以上!)だし、あんまりゲーム開発そのものには興味ない(ゲームっぽいUIには興味あるけど)ので、買おうかどうしようかと迷ったんですが、それでも買うことに決めたのは、まえがきの「数学について」の最初の段落の一行。

ゲームを作るには数学が必要だ。

と書かれていたからでした。
この本は冒頭で、

この本の目的は、君が一人で3Dゲームを作れるようにすることだ。
3Dゲームと言ってもいろいろあるが、ここでは「某ロボットが弾を打ち合うゲーム」に似たものを作ることを具体的な目標としよう。

とうたいながらも、いきなり3Dゲームの話をするでもなく、あるいは3Dに必要なライブラリやら数学やらの話をするでもなく、最初は「ローグ」みたいな文字だけの画面の倉庫番もどきの作り方からはじまる本です。そういう、何も知らない初心者を前提にした、丁寧に手ほどきをしていく本にも関わらず、「数学が必要だ。」と言い切り、実際に三角関数やベクトル・行列の説明もしているっぽい(そこはざっとしか読んでない)のは、著者がゲームプログラマ志望者に必要な技術を覚えさせようとする、その本気度を感じさせるに十分でした。

実際に読んでみると、本の内容も去ることながら(というか私はC++は素人なのでレベルが判断できない)、書き方もよい感じです。
まず教えるスタンスがいい。「ここではこう書いたが、君はこうしなくてもいい。私はこれこれこうだという判断をしたからこうするようにしてる。君はどうだろうか」という雰囲気で、「私」と「君」との間で、押し付けがましかったり馴れ馴れしかったりするでもなく、さりとて完全に突き放してしまうでもない距離の置き方が、「教わってる」感がして気分良く読めます。
特に、技術的な判断としては最初の方では変数名の省略の仕方、ポインタと参照の使い分け、書き方としては「intが2バイトだったり8バイトだったりすることもないわけではない。しかしこの本ではそんな事は無視して4バイトとする。」と脚注に書くスタンス、あるいは11章で、必要ないと言いつつプログラムでの音の鳴らし方を細かく説明するセンスなども好感が持てます。

あとは、プロフェッショナルというか、仕事としてのソフトウェア開発の視点。最適化に関する17章で、さらっと手法を紹介しつつも、

大抵の場合、速度が足りないのは、分不相応なゲームを作ろうとしたからである。
(略)
責任感の強いプログラマほど必死に高速化しようとするのだが、大抵の場合それは無駄な努力に終わる。(略)
無駄な努力は無駄である。プログラマは妙な努力をする前に、絵描きには「素材もっと小さくしろ」と、ゲームデザイナには「物を出しすぎだ。減らせ」とはっきりいうべきなのだ。

とする態度とか。あとは、最後から2番目の章である「バグとの付き合い方」は、たいへん納得できる内容でした(ここは私のスキルで善し悪しがほぼ判断できる章なので)。

日本語もいいですね。難しくなく読めるようにしつつも、妙な湿り気のない、読点多めの文章。読み物寄りの技術系文章としてよくあるタイプのいい感じの書き方で、時折「こういう長い条件文は我々人類の能力を超えたものであり、馬鹿でもわかるように割ってやるのが良い。」という感じの軽さも時折挟まれてます。書き慣れているというか、説明しなれている感。

いずれにしても、日本でこういう「これ一冊でばっちり」的な分厚い本というのはあまりなかったと思います(著者も同様のことをあとがきで書きつつ、それを目指したっぽいですが)。こういう本はもっと書かれて(そして売れて)欲しいというか、ゲームに興味がある若い人が手にとって、これをもとに実際に自分で書いたゲームが動くのを体験するようになれば、日本の未来も明るいんじゃないかと思いました。著者と、そのサポートをした人たち、特に「業務として会社で書いてよい」という許可を出されたらしい(すごい)熊谷美恵氏さんに拍手。

追記:なんかamazonにもbk1にも在庫がないんすか? むーん。じゃあジュンク堂へのリンクを。