ゲーム開発をはじめる前に読んでおきたい本
1年半ほど前から本格的にブラウザじゃないゲーム開発(ネイティブゲームって言うんですかね)を始めたのですが、Web の知識が全くと言っていいほど役に立たずほとんど一から勉強するみたいな感じでかなり苦労しました。自分は Cocos2d-x を使って開発していたのですが、機能を追加すればするほどどんどんゲームの動きが遅くなっていく...C++で開発すれば速いんじゃなかったっけ???みたいな状態でした。半年かけてなんとかゲーム開発できるかなぐらいになったものの、自分のやり方が正解だったのか全くわからずこれで良かったのかと悩んでいたときに出会ったのがこの本「Game Programming Patterns」です。
ゲーム開発は言語化されてなかったり、ゲーム開発経験のあるプログラマしか知らないノウハウやパターンがあり、ネットや本では見つからない情報が多いです。この本はそんな現場のノウハウ的なものがぎゅっと1冊にまとめられています。
GoF のデザインパターンをゲームのどのような場面で使うかといった内容から入り、ゲームループや更新メソッドといった GoF 以外のゲームプログラミングの基本パターンからオブジェクトプーリングやデータ局所化などの最適化のパターンなどゲーム開発のいろんな場面で使えるパターンがたくさん紹介されています。紹介されているコードは全てC++で書かれていますがとてもシンプルなコードが多いのでC++をかじったことのある人なら問題なく読めると思います。また特定のゲームエンジンに縛られるような内容では無いので Cocos2d-x で開発している人も Unity 使って開発している人も SpriteKit を使って開発している人も関係なく読めます。5年10年たっても古びない内容になっていると思います。 自分は毎日1章づつ読んでいったのですが、あの時の悩みがこんなことで解決するのか、こうすればコード量をかなり減らせたな、しまった設計ミスってた、みたいな発見がほぼ毎日ありました。また読み進めていくうちにベテラン開発者が言ってたことが少しづつ理解できるようになりました*1。 少し値が張りますが十分にもとを取れる内容です。この本にはもっと早く出会いたかったです。
*1:この本を読むまでは、この人なんでこんな小さなことにこだわってんだろ、よくわからんみたいな感じでした。本当にすみません。