オートデスクが2015年にリリースしたゲームエンジン「Autodesk Stingray」についても同様です。GDC2016でStingrayの生みの親であるオートデスクのNiklas Frykholm氏は「Technical Introduction to the Stingray Game Engine(Stingrayの技術紹介)と題した講演を行い、その設計思想についてあきらかにしました。

Stingrayがもつ4つの設計思想
Stingrayは元々、登壇者のNiklas Frykholm氏とTobias Persson氏が2009年に開発したゲームエンジン「Bistquid」がベースです(開発元のBistquid ADはスウェーデン企業)。Bistquidは汎用ゲームエンジンとして確かな評価を受け、2014年にオートデスクによって買収され、両者の協業によって全面改修。新たにStingrayとして生まれ変わりました。もちろん、両氏もこれらの作業に深くかかわっています。
Frykholm氏はStingrayの設計思想を「データ駆動型」「軽量動作」「素早いイテレーション」「高性能」という4点に整理し、それぞれについて深く掘り下げました。
(1)データ駆動型
データ駆動型とは、ひらたくいえばソースコードにアクセスしなくても、データの種類によって処理を変えられるということです。初期のプログラムではソースコードの中にデータが埋め込まれていました。しかし、これでは修正や調整が困難なため、次第にコードとデータが分離されていきました。
では、コードとデータはどちらが重要なのでしょうか。データ駆動型ではデータの方が重要だとします。データを変えることで、全体の処理が変化するというわけです。たとえばエディタ上でキャラクターを二足歩行の人型から四足歩行のモンスターに変更するだけで、IKなどの処理が最適化されるなどは一例です。
この方式はゲーム開発のように状況が常に変化する開発スタイルに適しており、ゲームエンジンの汎用性を高められます(余談ながら、多くの汎用ゲームエンジンはデータ駆動型の思想で開発されています)。
これを実現するために、Stingrayではすべての動作がJSONファイルで記述され、マージしやすくなっています。武器やキャラクター、アイテムボックスといった、特定のゲームでしか使用しない機能は、ゲームエンジン側ではサポートされません。データストリーミングのスタイルについても同様です。
一方でゲーム開発者はロジック(ゲームプレイ)をスクリプト言語のLuaと、ビジュアルプログラミング言語のFlowで記述します。Luaはプログラマー向け、Flowはゲームデザイナーやアーティスト向けです。これらもデータ駆動型ゲーム開発の一環としてデザインされています。なおオートデスクとの契約により、C++ベースで開発することもできます。
ゲームエンジン側はできるだけシンプルな機能に留めておき、個々の機能はデータレイヤー側で、開発者の作り込みにゆだねること。そのためにデータ駆動型のアーキテクチャがとられていること。これがStingrayの大きなポイントだと語られました。
(2)軽量動作
ゲームエンジン側をシンプルに保つということは、何も提供しないという意味ではありません。必要な機能がユニット化され、必用に応じて組み合わせられるという意味です。それを可能にするのがオートデスクの多彩なミドルウェア群。さらに必要に応じてプラグインを制作し、機能を拡張できます。そのためにStingrayではC言語によるABI(Application Binary Interface)が採用され、さまざまな言語で記述できます。
これによりエンジン側はシンプルかつ軽量に保たれるのです。Frykholm氏はStingrayのソースコードは40万行以下だとします。
ここでFrykholm氏は興味深いデモを披露しました。プレゼンのスライドがゲーム世界に変わり、3Dキャラクターが動き出したのです。実はパワーポイントのスライドのように見えた画面は、Stingrayでレンダリングされた画像がキャプチャされ、Webソケットを介してブラウザ上に出力されていたものでした。必要に応じて、ユーザー側でこうした機能拡張も可能というわけです。

(3)素早いイテレーション
イテレーションの速度を速めることがゲームの品質向上には欠かせないことは明らかです。そのためにはエディタ上だけでなく、実機上でも修正が確認できることが求められます。Stingrayでは全システム・全プラットフォームでホットリロードをサポートすることで、これを実現させました。インクリメンタルコンパイルの採用で、最初の1回はすべてのコードがコンパイルされますが、修正などの差分についてはディスクにアクセスすることなく、100ミリ秒以下の速度で完了するといいます。これはローカル上のPCでも、インターネット上のコンソールやスマートフォンでも同様です。

(4)高性能
最後に言うまでもなく、ゲームエンジンは高性能であるべきだとFrykholm氏は強調しました。「ゲームエンジンは性能面で妥協するべきではありません」(Frykholm氏)。登場してから日数が浅く、まさに「売り出し中」というStingrayですが、今回の講演でずいぶんとその特徴が明らかになったのではないでしょうか。
Oculus Rift向けのVRデモを作成
また講演「Building VR Experiences in the Autodesk Stingray Game Engine」では、オートデスクのMatthew Doyle氏がStingray上でOculus Rift向けにVRコンテンツを作成し、実行させるデモを行いました。
GDCの直前にHTC ViveとOculus Rift SDK v0.8に対応するStingray v1.2を発表したオートデスク。新たにマルチコアでのコンパイル対応や、UIの改善によるワークフローの効率化なども行われています(あわせてMaya LT 2016 Extension 3も発表されました)。
壇上ではDoyle氏がStingrayのエディタ上にアセットを読み込み、Flowを用いてロジックを組み、Luaでスクリプトを修正。わずか十数分でローラーコースターを創り出しました。同じ手順で背景となる南国の島を表示させ、両者を融合。島の上空を高速で走り回るローラーコースターのVRデモが、サクサクと創られていく様が披露されました。