もくじ
あのゲームは、こうやって動いている
今回はゲームアルゴリズムをひたすら追求した書籍を3冊まとめて紹介します。
言語やAPIは時代と共に変わってしまいますが、アルゴリズムは普遍的です。
定石アルゴリズムは汎用性に優れ、カスタマイズすれば他ジャンルにも活用できます。
例えばシューティングのアルゴリズムを、3Dアクションに応用する事は普通にあり得ます。
だから様々なアルゴリズムに触れることで、ゲーム表現の引き出しを増やせるでしょう。
シューティングゲーム アルゴリズムマニアックス
まずは1冊目。シューティングゲームです。
本書では古今東西のシューティングに出てくるギミックを紹介し、そのアルゴリズムを解説しています。
個人的に面白かったのは、ホーミングレーザーと触手(うねうね)の解説でした。
シンプルなデータ構造を積み重ねて、印象的な動きをつくり出す。こういうの大好きです。
シューティングはゲームプログラミングの基本です。
基本ゆえに他ジャンルへ応用しやすいので、コストパフォーマンスに優れた一冊です。
実際に本書のアルゴリズムは、RPGやアクションのエフェクト・ギミックにも使えます。
弾幕は魔法エフェクトに、追尾弾はキャラ移動に、触手はボスキャラ などなど
応用の幅は想像以上に大きくなります。
アクションゲーム アルゴリズムマニアックス
2冊目はアクションゲーム編です。
アクションゲームなので、本書はジャンプ処理のサンプルが充実しています。
可変長ジャンプ、2段ジャンプ、三角跳び等々、計10種のジャンプ(と着地)を解説しています。
また地形の処理も多彩に収録してあり、中でも「ディグダグ2」の島崩しアルゴリズムはとても興味深かったです。
ただアクション固有の処理が多く、シューティングに比べると、他ジャンルへの応用度は小さい感じです。
パズルゲーム アルゴリズムマニアックス
ラスト3冊目はパズルゲーム編です。
パズルゲームはアルゴリズムの見本市みたいなジャンルなので、3冊で最もバラエティに富んでます。
正直ただ読むだけでも、ゲームの仕組みが分かり面白いです。
テトリス、ぷよぷよ、倉庫番、I.Q、パズルボブル などなど
おなじみのゲームがサンプルになっていて、プログラマの創意工夫が良く分かります。
私はクイックスのような「囲んで塗りつぶす処理」が興味深かったです。
ある学生がこのアルゴリズムをカスタマイズした作品をつくり、私も解析を手伝ったのは良い思い出です。
そして、その学生は無事ゲーム会社に就職できました。
どれを選ぶ?3冊シリーズ
というわけで、3冊まとめて紹介しました。
それぞれの特徴を一言で表すと
シューティング : 最も基本。他ジャンルへの応用に優れる。
アクション : アクション固有の処理に強い。
パズル : 定番パズルゲームの基本が分かる。
といった感じでしょうか。
私は本シリーズ3冊を、学生によく薦めています。
実際これらのサンプルをベースにして作品を作り、ゲーム会社へ入った学生は多いです。
解析は最強の上達法
なお3冊ともサンプルが付属してますが「コピペしてすぐ動く」ものではありません。
このシリーズに限らずアルゴリズム本は「手順の解説」がメインなので、読者は言語環境に合わせてカスタマイズするのが普通です。
またサンプルはC/C++を使っているので、それを理解する必要もあります。
だから対象読者は、プログラミングの基本を分かっている人になります。
優れたサンプルをベースにして、オリジナルのアルゴリズムを組み上げるのは、上達への近道です。
その教材として、このシリーズは最適だと思います。