『ゲームを動かす数学・物理』の感想

はいどーもこんにちは数学全くできないマンです。
本日は『ゲームを動かす数学・物理』の感想記事を書いていきたいと思いますよ。

数学できないマンでも理解できる部分は結構ある

僕は中学レベルの数学すらできないのですが、説明が丁寧なおかげで「あ、これはゲームの中のあの処理のことだな」というのがわりと想像できます。
数学が多少できるor数式を理解する気持ちがある方なら全く問題なく全ての項目を読み進められるのではないでしょうか。
僕の場合は「数式を理解する気持ちがない」ので一部の項目については読み飛ばしました(理解しようとするとめちゃくちゃストレスだった)が、それでも楽しんで読める部分は結構ありました。

数値型についての話

第一章と第二章では数値型についての話を取り扱っています。
この章の話はプログラマなら知っておいて損はないでしょう。
サンプルコードは全てC言語ですが、他の多くの言語でも応用できる考え方です。
例えば浮動小数点数の巨大な値と、浮動小数点数の小さな値を足した場合、かなりの誤差が生じるということはこの本で初めて理解できました。
もちろん「float型の計算において誤差が生じる」といった程度の知識は僕もあったのですが、まさか単純な足し算で大きめの誤差が生じるとは思ってもいませんでした。
ちゅーわけで気になる方はこの部分だけでも立ち読みしてみてはいかがでしょーか。

二次元や回転

今まで座標とベクトルの違いがよくわかっていなかったのですが、この章を読んで座標やベクトルの概念を理解することができました。
また別の章では回転も扱っています。
デグリーとラジアンの違いとかわかりやすかったですね。
この辺は2Dゲーを作りたい僕にも役立ちそうです。
ただ三角関数とか大嫌いなので、数式はあんまり見ていませんw
実際にプログラムに組み込む際に参照しようと思います。

時間と運動

時間やフレームについては馴染みのある分野でした。
復習的な感じですかね。
運動の方は数式がバンバン出てきます。
僕にはちと厳しい内容でしたが、摩擦係数や重力の考え方はUnityを使う際も役に立つんじゃないかなあと思いました。

3次元とマトリクス

3次元はあんまり興味がなかった&難しかったので斜め読みですが、マトリクスはかなり面白かったです。
今までマトリクス関係の処理や構造体が使われているプログラムを見てもチンプンカンプンだったのですが、多少は読めるようになった気がしますよ。
おそらくシェーダでも使われている処理だと思うので、チマチマ扱ってみたいです。
2Dにも応用できそうですしね。

衝突と乱数

衝突はいわゆる当たり判定です。
Unityだと衝突の判定は自動でやってくれる機能があるのであんまり必要がないのですが、例えば「プレイヤーが敵の探索範囲にいるかどうか」を実装するなら、球の衝突を自前で実装するのもありなのかなあ、とか思いました。
当たり判定の処理は一般的に重たいので、高速化についても触れられています。
空間分割についてはGame Programming Patternsの方が詳しいかなあと思いました。
乱数は「フーン」くらいのもんでした。
「シード値を用いたリプレイ」の考え方は僕も使っていきたいと思います。

終わりに

数学に全然自信がないまま購入しましたが、実際に読んでみたら数式を理解しなくても楽しめる箇所がかなり多かったです。
いやあ購入してよかったです。

ほなそんな感じでまた。

フォローする