■これをヒントにゲームを作れ!! プログラマ本
次は、プログラマ編です。
代表的なプログラマ本をピックアップしてみました。
私委員長はプログラムから離れてちょっと経ちますが、プログラムを上達するコツは、
やはり基礎に飽きないことだと思います。
インデントの取り方から、プロトタイピング用のコーディング、バグが出にくい書き方、
そしてリファクタリングなど、なにごとも基礎! 基礎! 基礎! じゃないかと思います。
そして技術的なコーディングは「忍耐」「調査」そして「創造性」ではないでしょうか。
コツコツと地道に、手順をひとつひとつ。調査は順番に。
最後にヒラメキ! これはセンスもありますね。
基礎については「プログラムの達人」も参考にどうぞ。
 |
●新C++言語入門 ビギナー編
C++言語実用マスターシリーズ
お薦め度:★★★
初心者向けにお薦めなのが、林 晴比古さんの著作です。
この方のシリーズは非常に分かりやすく、私委員長もたいへんお世話になりました。
私はX68kのアセンブラから入り、そのあとC言語に入ったのですが、ポインタ、構造体など初心者が
つまづきやすいところが非常にわかりやすく書かれており、簡単に習得することができました。
今までお世話になった会社でも「あの人の本はほんとうに分かりやすいよね!」と同意見の人が多かったですね。
これからプログラムを習得しようというビギナーにはおすすめです。
以下に必要であろうシリーズを挙げていきます。
|
 |
●リファクタリング―プログラムの体質改善テクニック
Object Technology Series
お薦め度:★★★★★
リファクタリングの目的は,後からの機能追加や変更をしやすく改良することにある。どのように変更したらよいかという具体的な改良方法も,カタログという形式で網羅的に説明している。実は,これが本書の中心部分だ。カタログ形式なので,個々の改良方法は独立して読めるようになっている。また,リファクタリングに用いるため,変更の手順を細かく指定し,途中で確認しながら段階的に変更する方式を採用している。作業の中には,コンパイルとテストも含まれ,どの段階でテストすべきなのかも指示してある。用意された手順は,ミスによるバグ発生を防ぐようにと,周到に考えられたものだ。こうした修正手順を守っている限り,バグを生む可能性は低い(amazonより)。
リファクタリングは、要するに処理のふるまいを変更することなくソースを整理する手法です。
ゲームプログラムは特にそうなのですが、仕様変更などでソースが頻繁に書き換わります。
そうなるといつも整理に気をつけていても、徐々にソースが複雑に入り組んできます。
ソースが複雑になるほど、バグが出やすくなり、また修正するときも非常に苦労することになります。
バグの出ないソースとは、単純にわかりやすいのが原則です。
そのため、仕事の合間合間にリファクタリングの手法によってソースを整理し、合理的な形に直しながら
作業を進めていくのが効果的です。 |
 |
●Java言語で学ぶデザインパターン入門
お薦め度:★★★★★
プログラミングの経験を重ねていくと、やがて「よいコード」のパターンをつかんでいける。そのつど新しいコードを考えなくても、パターンを適用することで効率よくプログラムを作ることができるのだ。デザインパターンとはそのような経験的な要素を抽出したもので、効率の良いプログラミングをするためのテンプレートだ。再利用性の高い、メンテナンス性に優れたプログラムを作るための「型」であり、プログラムを設計する際に大きな助けとなる(amazonより)。
C++言語に慣れてきたときに必修したいのが、デザインパターンです。
ゲームプログラミングでは、コンポジットパターンやファクトリーパターンなどが有用なように思います。
特にコンポジットパターンは、タスク管理の土台として使うと非常にスッキリしたソースコードが出来上がります。
ほかにもシングルトンパターンの応用で、無駄の少ないメモリ管理を実装できたりと便利です。
中級者へのステップとして、デザインパターンをぜひ習得しましょう。
|
 |
●ゲームプログラミングのための3Dグラフィックス数学
お薦め度:★★★★★
ゲームプログラマにとってプロフェッショナル品質の3Dエンジンを開発するために欠かせない数学的概念を解説する。ベクトル幾何や線形代数などの基本的な分野から、高度な3Dゲームプログラミングのトピックまで網羅(amazonより)。
この本はちょっと高めですが、3Dプログラミングをする方には強く薦めます。
これ一冊あれば3Dの基礎知識から応用まで押さえることができます。
3Dエンジンは行列変換などの基礎的な部分よりも、アドバンスドな機能の実装こそが花です。
それには幾何や線形代数などの基礎知識がしっかりしていないと難しい。
この本にはそういった知識の復習用のセクションがあり、けっこうしっかりと3Dのための数学固めができます。
|
 |
●ゲーム開発のための物理シミュレーション入門
―Physics for Game Developers
お薦め度:★★★
ゲームにおける物理シミュレーションは重要な要素の一つとなりつつある。コンピュータゲームの作成にあたって有用な物理学の知識と、ゲームへの応用方法を、ゲームプログラマ向けに具体的なコードを用いて解説(amazonより)。
このあたりになるとすでにエキスパートプログラマが「趣味で」物理シミュレーションをゴリゴリと組んで遊ぶ
ための本になってきますが、コリジョン(当たり)判定やオブジェクトの重力に絡んだ処理を作るとき、
思いがけないところで役に立つ本です。
3Dゲームにおいてコリジョン処理は鬼門なので、ゴリゴリの3Dプログラマになりたい! という方は
押さえておきたい本です。 |
 |
●Game Programming Gems
お薦め度:★★★★
現役の(または未来の)Visual C/C++ のゲームプログラマーを対象に、40人を超える現在活躍中のゲーム・グルから集められた60以上ものプログラミングに関する知識を盛った1冊。プログラマーのみならず、自分でゲームを作成してみたい、あるいはゲームが動くしくみを知りたいという読者のために、本書は「芸術」ともいえる3-Dアニメーションが、プロの手によってどのように生み出されるのかに関する、実に興味をそそる情報を与えてくれる(amazonより)。
この値段の高い本は、けっこうな方が持っているのではないでしょうか。
海外のエキスパートプログラマの知識を凝縮した内容になっており、ほんとうに宝石のような本です。
ただ、実際に仕事で使うかというと、よほど高度な処理を組む時以外は使わないような気もします(笑)。
この本もゴリゴリにプログラムをマスターしたい! という豪気な人が、仕事以外の時に習得する
技術本だと思います。
そうであっても、世界の一流のプログラマがいったいどういったプログラムを組んでいるのか?
その世界を垣間見るのも面白いと思います。 |
|