ゲームプログラミングのための数学と物理

ゲームプログラミングのための数学と物理

 
kenmoは、
ゲーム開発のための数学・物理学入門 Beginning Math and Physics for Game Programmers
で、数学・物理の基礎を勉強したのですが、
これに続く本が中々なかったのですよね、、。
 
ゲームプログラミングのための3Dグラフィックス数学

ゲーム開発のための物理シミュレーション入門―Physics for Game Developers
は、大学レベルでかなり難しいのですが、
今回の本は、その中間レベルという感じで、
kenmoがちょうど知りたかった知識が詰まっています。
 
具体的な内容としては、、、
パート1は基礎的な数学の知識です。
ゲーム開発のための数学・物理学入門 Beginning Math and Physics for Game Programmers
とかぶる部分が多いので、ちょっと損したような…(´Д`;
ただ、最後の微積分は分りやすくてよかったです。
 
パート2は物理で、これも
ゲーム開発のための数学・物理学入門 Beginning Math and Physics for Game Programmers
とかぶる、、と思いきやレイ交差判定とかあるので少し高度です。
個人的にはキャットマルロム曲線の式がのっていたのがおいしかったです。
全体的にいえるのですが、プログラムでの実装例や式がちゃんとのっているのが、
親切な本だなー、と思いました。
 
パート3は力とか回転とか摩擦とか、、。
ここらへは、
ゲーム開発のための数学・物理学入門 Beginning Math and Physics for Game Programmers
にものっているのですが、
それに加えてヒモや振動(バネとか波動)についてのっているのが
勉強になりました。
 
パート4は3D数学で、
行列から入って、テクスチャとか曲面とかボーンとかインバースキネマティクスとか。
ちょうど、
ゲームプログラミングのための3Dグラフィックス数学
の内容の簡単な部分を分りやすくした感じです。
 
パート5はゲームの高速化とかAIについて。
AIの内容は
ゲーム開発者のためのAI入門
を持っていれば必要ないかも。
 
 
とまあ、まとめると、
よく言えば上級への橋渡し的な本であり、
悪く言えば中途半端な内容、かもしれないです。
あと、値段も高いので要注意です。
 

AI

ゲームを面白くする裏方となるのが「AI」です。
 
例えば、敵が乱数で適当な動きをするだけ、
もしくは決まりきった動きしかしないゲームは、
プレイヤーにとって退屈です。
 
そこで「AI」により、敵(もしくはNPC)を知性のある動きをさせると、
プレイヤーは、
「おおお!頭いいじゃん!」
と感心させ、プレイヤーは攻略法を模索し、ゲームの寿命を長くします。
 

ゲーム開発者のためのAI入門

ゲーム開発者のためのAI入門

そんなAIを簡潔に解説しているのがこの本です。
基本的なアルゴリズムである、

  • 追跡
  • 逃走
  • 迎撃

の解説から始まり、
経路探索のデファクトスタンダードである「A*」や、
複雑な問題に対応できる「ニューラルネットワーク」、
思考ルーチンを進化させる「遺伝的アルゴリズム
をとーっても分かりやすく解説しています。
 
こういった本は、たいてい難しい数式がズラー、っと並んでいて、
眠くなってしまうのですが(´∀`;
この本はソースコードを中心に解説していて、理解しやすいです。
(少しだけ数式はありますが、高校レベルの線形代数微分積分の知識があれば、それほど難しくないです)
 
追記:
この本に書いてある、「A*」について、ここにまとめておいたのですが、
http://www5f.biglobe.ne.jp/~kenmo/program/SLG/astar/astar.html
世界樹の迷宮の「F.O.E」の追跡アルゴリズムを作成するときに、
このページを参考にした、という話を聞いて吹きました(w

スクリプトエンジン

アクションゲームなどを作る場合、
敵の動き方を「外部のスクリプト」として定義しておき、
企画さんが自由に敵の動きを決めることができるようにする、
ということが最近のゲーム作成の現場では行われています。
 
これはゲームバランスの微調整を容易に行うためでもあります。
 
そういった場合に、スクリプトの解析/実行エンジンの作成方法を知っておくと、何かと便利です。

いまどきのプログラム言語の作り方

いまどきのプログラム言語の作り方

この本では、単純な四則演算からオブジェクト指向の実装まで、
かなり本格的なスクリプトの作成方法を解説しています。
 
「動かしながら、少しずつ作って行こう!」
というコンセプトのため、途中でつまづいても、
そこまでは動くので大丈夫です(´∀`;
 
Javaオブジェクト指向で書いてあるので、苦手な人は大変かもしれませんが、
解説も丁寧でとても分かりやすいです。
 

ゲームデザイン

ただがむしゃらにゲームを作り続けていても、
良いゲームをつくれるかどうかは「運」次第になってしまいます。
 
そうならないように、ちゃんとした理論を身につけたい方にオススメしたいのが、
ゲームデザイン論」
です。
 
ただ、ゲームデザイン論は歴史が浅く、「ちゃんとした理論」というものは存在しません。
 
そんなゲームデザインを勉強するために役に立つ、かどうかはやや微妙です。
ですが、きっかけ、としてはなかなかいいと思う本です。
 

クロフォードのインタラクティブデザイン論

クロフォードのインタラクティブデザイン論

ゲームデザイナーであるクリス・クロフォードさんが、
インタラクティブなシステムにおけるよいデザインとは?」
ということについて解説している本です。
 
よいデザインを作るための方法を「体系的」にまとめられているので、
少々堅苦しいですが、
しっかりとゲームデザインを勉強したい方にはオススメです。
 
「おもしろい」のゲームデザイン ―楽しいゲームを作る理論

「おもしろい」のゲームデザイン ―楽しいゲームを作る理論

「面白いゲームをつくるには?」
ということに、音楽や心理学など、少し変わった切り口で、
解説してある本です。
 
かっちりと「理論的」に面白さを作りたい人にオススメです。
 
桜井政博のゲームについて思うこと Think about the Video Games

桜井政博のゲームについて思うこと Think about the Video Games

ゲームLoveな桜井さんが、日頃ゲームについて感じていることを書き残したものです。
 
こちらは雑記という形なので、スイスイ読むことができると思います。
 
桜井さんは、今も「カービィ」や「スマブラ」、「メテオス」などのヒット作を作り続けている方なので、
話の内容も身近に感じられるのではないでしょうか。
 
ただ、雑記ゆえ辞書的な使い方はできないので、
実際にゲームデザインとして応用にするには、
内容を自分なりにまとめる必要があると思います。
 
むしろゲームデザインの辞書として使うよりは、
桜井さんのゲームに対する思想を理解して、
自分の中に取り入れていくことが重要かもしれません。
 

シナリオ

プログラムはもう、関係なくなっていますが、、。(´Д`;
 
それはさておき。
 
シナリオは、アドベンチャーゲーム/ノベルゲームでは必須ですね。
また、それ以外のジャンルでも、シナリオのあるなしでは、
ゲームへの思い入れが大きく変わってきます。
 
たとえアクションやシューティングでも、ゲームをより魅力的にさせる手段として、
知っておいたほうがいいかもしれません。
 

この本の魅力はRPGのシナリオ本なのに、題材がドラクエでもFFでもなく、

というところですね。
 
作者がそれぞれのゲームに何らかの形でかかわっている(縁がある)
ということで、中から見た深い分析が面白いです。
 
特にkenmoはルナ2にハマッた人なので、
それに関するシステム・仕掛け部分の解説で、当時を思い出して、
熱いものがこみ上げてきまちた。
 
この本は、シナリオの勉強本ですが、
この2つが好きな人は、ファンブックとしても楽しめますね。
 
あと、枡田省治さんやさくまあきらさん、重馬敬さんや芝村祐吏さんの
インタビュー記事なんかも、シナリオにとどまらない内容で、
ゲーム作成の勉強になります。
 
 
今でも魅力的である2つのゲームを題材に取り上げていて、
楽しくシナリオが勉強できる本です。
ただkenmo的に、この本で最も重要なのは「あとがき」だと思います。
 

知識としてあるだけでは、本書のテクニックは、ほとんどなんの役にも立ちません。
本書の内容など、せいぜい頭でっかちのゲーム好きがゲームシナリオの知識として、
どこかの誰かにひけらかす程度が関の山です。
 
わかっていても実際にやらなければ、なんの意味もないということです。

 
やっぱりやってみないと、見えないことってたくさんありますよね。
あと、やってみると良いことばかりじゃなくて、失敗もあります。
やや、説教臭い部分があったりしますが、
それが他の本にない魅力であったりします。