【西川善司のモバイルテックアラカルト】第12回: ゲームエンジンってなんですか

遅ればせながら新年、あけましておめでとうございます。今回は編集部のリクエストもあり「ゲームエンジン」というキーワードの解説をしたいと思います。

「ゲーム」の「エンジン」? なにそれ?

「エンジン」といえば多くの人が連想するのは自動車に搭載されているあのメカとしてのエンジンでしょう。今さら説明はいらないでしょうが、エンジンは車を走らせるための動力を生み出す動力発生装置です。

「ゲーム」が頭についてできた「ゲームエンジン」というキーワードを、あえて一言で解説するならば、ゲームを開発したり、動作させたりするための基盤システムのことです。「ゲームを動かすための根幹駆動システム」ということで「エンジン」というワードが組み合わされたのでしょう。

ゲームエンジンとよく似た言葉に、「(ゲーム開発)フレームワーク」というものもあります。「フレーム」は「骨組」や「骨格」を意味し、「フレームワーク」は「体制」「構成」を表す用語になります。

なので「ゲーム開発フレームワーク」は、ゲーム開発のパイプライン(流れ、工程)までを面倒見るシステムのような意味になります。より概念的なものまでも含まれるイメージでしょうか。ただ、広義には「ゲーム開発フレームワーク」をゲームエンジンと呼ぶこともあります。まぁ、最近ではゲームエンジンというと、自らゲームエンジンという呼び名を謳っているモノをゲームエンジンと呼べばいいと思います。それとゲーム開発スタジオが既存のゲームエンジンを使っている場合でも、自社独自のプラグインソフトやツール群を利用している場合、その仕組みのことを「われわれのゲーム開発フレームワークは……」なんていうことがあります。

ゲームエンジンの成り立ち

ゲームエンジンは昔からあったわけではありません。ここではゲームエンジンの成り立ちについてお話ししましょう。

昔のゲーム開発は、ゲーム機メーカーから提供されたのはゲーム機のハードウェア仕様書と、基本的なサンプルプログラムや基礎ライブラリ程度のものでしたので、ゲーム開発チーム側で、ゲームに必要な処理系のほぼすべてを自前で開発していました。だいたい、16ビットゲーム機時代までは、この開発スタイルが主流だったといえます。

しかし、ゲーム機のスペックが上がり、ゲームプログラムの規模が大きくなってくるに従い、すべてのゲーム処理系をその都度開発していたのでは非効率であることがわかってきました。

ところで、ゲームには「定番の処理系」が存在します。具体例を挙げると、グラフィックス処理とか、サウンド処理、ネットワーク処理、ゲームコントローラーからの各種入力処理、ストレージデバイスへの入出力処理……などですね。

ゲームエンジンという発想の具現化は、日本よりも欧米のゲーム開発シーンの方が圧倒的に先行していた。画面は、パソコン向け3Dゲームの黎明期に登場した『Quake II』(1997年、id Software)だが、このゲームはid Softwareの自社開発ゲームエンジン「ID Tech2」ベースによって開発されたものだった

Valve Sotfwareが開発した『Source Engine』(SE)もゲームエンジンの有効性をゲーム開発シーンに知らしめたものの1つ。画面はSEベースでValve Sotfware自身が自社開発したゲーム『Half-Life 2』より

実力があり、経験が豊富なゲームスタジオは、そうしたゲームにおける定番の処理系を独自にライブラリ化して効率よく使えるような環境整備に乗り出すようになります。これはだいたい、2000年前後、プレイステーション2や初代Xbox時代前後のことです。

このライブラリ化された「ゲームの定番処理系」は、異なる機種のゲーム機向けのゲーム開発で広く使えるような「透過性」「移植性」を持つように進化させられ、これらを社外に商用提供する事例も出てくるようになりました。これが「ゲーム開発ミドルウェア」の始まりです。

ゲーム開発ミドルウェアはグラフィックス、サウンド、物理シミュレーションなど、ゲーム開発において専門性が求められる特定ジャンルの処理系をカバーするものが中心でした。時代が進み、さらにゲーム機のスペックが上がってゲームの開発規模が大きくなると、特定ジャンルの処理系だけでなく、ゲーム開発全般の面倒見てくれるゲーム開発ミドルウェアも出てくるようになります。

これが、現在一般的にいわれているゲームエンジンのスタイルです。広義的にはゲーム開発ミドルウェアもゲームエンジンと呼ばなくはないのですが、冒頭で少し触れたように最近では「ゲーム開発のトータルソリューション」を指す場合が多いようです。

なお、今でも特定分野においては、ゲーム開発トータルソリューションとしてのゲームエンジンとはならずに、あえて専門性の追求を継続しているミドルウェアも多いです。

NatutalMotionの人体アニメーションミドルウェア『Morpheme with Euphoria』の開発画面より。アニメーションに知性を融合させることができるミドルウェアとして採用事例を増やしている。世界的に有名な『Grand Theft Auto V』のリアルタイム人体アニメーションは『Euphoria』による

広がるゲームエンジンの活用

実力派や大手のゲームスタジオは、ゲームエンジンを自社開発して、社内プロジェクトを中心に活用する事例が多く、こうしたゲームエンジンの具体例としては、バンダイナムコエンターテインメントの『NUライブラリ』、コナミの『FOX ENGINE』、カプコンの『MTフレームワーク』や『Panta Rhei』(現在は開発休止中の噂あり)、スクウェア・エニックスの『Luminous Studio』などがあります。こうした社内ゲームエンジンは外部に提供される事は基本的にはありませんが、外注スタジオを巻き込んだプロジェクトでは一部例外もあるようです。

一方で、もともと社外ゲームスタジオに商業利用してもらうために開発されたゲームエンジンも存在します。その代表例にはEpic Gamesの『Unreal Engine』、CRYTEKの『CRY ENGINE』、UNITYテクノロジーズの『UNITY』、シリコンスタジオ『OROCHI』などがあります。

アメリカのEpic Gamesが開発提供している『Unreal Engine 4』(UE4)は、ハイエンドゲーム開発に採用事例が多い。日本での採用事例も急増中。画面はUE4の技術デモより

ドイツのCrytekが開発提供している『CRY ENGINE』(CE)は欧州での採用事例が多いが、Crytek自社開発のゲームである『CRYSIS』シリーズが採用ゲームとしては最も有名。画面はCEの技術デモより

デンマークのUnity Technologiesが開発したゲームエンジン『Unity』は、携帯電話向けゲーム開発に採用事例が多い。日本での採用事例も急増している。画面は技術デモより

日本のシリコンスタジオは純国産ゲームエンジンとして『OROCHI4』を開発・提供している。画面はその技術デモより

このタイプのゲームエンジンは、もともと自社でゲーム開発をするために開発したゲームエンジンを、外向けにも提供するようになったものが多いです。ゲームエンジンを用いたゲーム開発はPS3、Xbox360時代には当たり前のように浸透し、現在のPS4、Xbox One時代でも同様です。

携帯電話向けのゲーム開発に採用例が多いのは『Unity』です。ちなみに、ここでUnityの採用ゲーム一覧が確認できますが、驚くほどの数の人気タイトル、著名タイトルが名を連ねています。

興味深いのは、最近ではこのゲームエンジンを、ゲーム開発以外に利用していこうとする動きまでもが見られる点です。ゲームエンジンを用いると、リアルタイム動作するインタラクティブ映像やデモソフトを比較的容易に開発できることから、都市計画、建築、映像制作、学術シミュレーション、教育訓練システム開発などの業務に採用される事例も出てきているのです。

今後、ゲームをプレイしない人でも、ゲームエンジンベースのコンテンツに触れる機会が多くなるかも知れません。

2013年、フランスのEnodoは建築分野や都市設計用途にCRY ENGINEを採用することを発表した。これらの映像は実際にCRY ENGINEを用いて実施した都市計画シミュレーションのもの

日本のCGスタジオMarza Animation Planetは、2015年にUnreal Engine 4を活用しての短編映像作品制作を行った。画面はその開発時のもの