パーツ取りエンジン

 商用で使われるゲームエンジンはオール・イン・ワンで、必要な大型機能はほとんど揃っている。ただし、ゲームは企画内容によって必要なものが異なるため、必ずしも全ての機能が必要ではないし、不足は常に発生する。

 過不足とは別に、エンジンがもともと持っている機能を使用しないという選択も常に行われる。各開発会社の伝統技術がエンジン標準より高性能なら使うべきだし、エンジンメーカーとは別の会社からミドルウェアを購入して差し替えることもあるだろう。そういった選択が他社製ゲーム作品との差別化になるので、独創的な技術の重要性は今も昔も変わらない。

 その中で、 SCE の PhyreEngine が興味深いコンセプトを打ち出している。パーツ取りを意識したエンジンで、使いたいと思った部分は自由に取り出して使うことができ、エンジンから Terrain や Particle Effect などのモジュール部分を抜き取って、自社製エンジンや他社製エンジンに移植することができるように作られている。

 PhyreEngine 以外にも、こういう視点に立ったエンジンがいくつか出てきているが、そもそもゲームエンジンが積んでいる物理エンジンなど自体が、そのエンジンのオリジナルではなく Havok や Bullet などのミドルウェアだったりするので、ゲームエンジン自体フランケンシュタインみたいなものだ。

 だからもともと「他のミドルウェアの組み込みやすさ」ではなく「他へのミドルウェアとしての取り外しやすさ」へ注力点をシフトしやすい。それでも、それをひとつの設計テーマにするのはかなり面白いと思う。 CEDEC では PhyreEngine の Terrain のみで1本まるまるセッションを開いていた。まるで Terrain 専用ミドルウェアのノリだった。 PhyreEngine 発祥のものであろうと、ミドルウェアの集合体と考えているのだろう。

 もちろん、ここでいう抜き差しとか取り出しての再利用は少々バタくさいもので、 IT 製品のコンポーネント思想には遠く及ばない。少なくとも DLL をドラッグすれば済む世界ではない。しかし元々C言語圏には、既存のコードを泥臭く使っていこうというノリがあり、「この程度のことをやっておけば、後はつなぎ目の担当のエンジニアがやってくれる」という独特の(そしておぼろげな)基準があると思う。

 なにしろ「ちょっとコード汚くなったんで流体物理エンジン1から書き直しますわ」とはちょっと気軽には言えない規模の世界になりつつある。

 パーツ取りができるオールインワンパッケージといのは、面白いテーマで、最近ちょっとずつ手元のプログラムを作り直している。