均等グリッド・四分木(Quadtree)による O(N^2) → O(N log N) ブロードフェーズ枝刈り
画面上に自機・敵機・弾・パーティクルが数百〜数千個飛び交う弾幕ゲームにおいて、すべての物体同士を総当たりで衝突判定すると、計算回数は物体の2乗(O(N^2))で爆発し、1000個なら毎フレーム50万回、1万個なら5000万回という天文学的な計算量で即座にフレーム落ちします。本章では、プロのゲームエンジンが採用する衝突判定の2段階パイプライン【ブロードフェーズ(大まかな枝刈り)】と【ナローフェーズ(厳密判定)】を体系化。固定長メモリで爆速に動作する【均等グリッド(Spatial Hashing)】と、オブジェクト密度の濃淡に自己適応する【四分木(Quadtree)】のアルゴリズムをゼロからC++で実装します。
JavaScriptを実行すると、ブラウザ内インベーダーゲームエミュレータ、メモリマップ可視化、UMLクラス図、対話型解説、理解度クイズが起動します。