2016年2月に開催されたMobile World Congress 2016(以下,MWC 2016)に合わせて,Epic Gamesが「Unreal Engine 4」(以下,UE4)ベースの技術デモ「ProtoStar」をSamsung Electonics(以下,Samsung)製スマートフォン「Galaxy S7」上で動作させ,話題を集めた。
下に示したのはそのデモをムービーにしたものだが,Game Developers Conference 2016(以下,GDC 2016)には,そんなProtoStarデモをEpic Gamesがいかにして開発したのかを語る技術セッション「Vulkan on Mobile with Unreal Engine 4 Case Study」(モバイルデバイス上におけるVulkan,UE4におけるケーススタディ)があったので,いくつかの発表ともども,簡単にレポートしてみたい。
■「UE4 Vulkan」のソースコードをGithubで近日公開
GDC 2016では,Vulkan APIをテーマにした技術セッションが多数ある。Vulkan on Mobile with Unreal Engine 4 Case Studyもその1つで,これ自体はARMが主催するものだ。Epic Gamesでテクニカルディレクターを務めるNiklas Smedberg氏が登壇し,ProtoStarの解説を行ったのは,「Mali」GPU IPコアにおけるVulkanと利点といった,割と一般的なテーマが語られた後,セッション後半のことだった。
さて,そんなProtoStarだが,これは,UE4上で,Vulkan APIを用いて動作するリアルタイムデモだ。セッションでは「UE4 Vulkan」と呼んでいたので,本稿でもそう呼ぶが,Smedberg氏によると,UE4 Vulkanの開発は,ないないづくしの状況から始まったという。
それもあり,なんとか動いた最初期のプロトタイプは,下のとおり,トンデモない画面になったとのことである。
そんなProtoStarを完成させた経験からSmedberg氏は,「Galaxy S7のようなモバイルデバイスにおけるバッテリー駆動時間への影響を抑えながら,PC並みのグラフィックス表現を可能にするには,とくにVulkanのマルチスレッドレンダリングが効果的」と語っていた。UE4 VulkanベースとなるProtoStarデモでは,1フレームあたりの「GPUに対するコマンド実行数」が非常に多いが,それをマルチスレッドで実装しているという。
また,Vulkanではコマンドバッファの記録(レコード)を行うことができるので,それをインスタンス化して,多数の「同じ動きのオブジェクト」を1回のコマンドで描画しているとも氏は語っていた。ProtoStarデモには多数の隕石が出てくるのだが,おそらくはそういったオブジェクトにコマンドバッファのレコーディング機能を用いているのだろう。
なお,ProtoStarデモに用いたUE4 Vulkanは「まだ極めて実験的といえる段階で,商用に使えるものではない」(Smedberg氏)とのこと。その点を氏は明確に断ったうえで,「ProtoStarで我々が何をやっているのか。より詳しく知りたい人のために,一部のソースコードを今週中,またさらに多くのソースコードを来週にはそれぞれGithubで公開する」と予告していた。
■Samsungがゲームデベロッパ向けの開発支援プログラムを開始予定
セッションでは,ProtoStarデモのプラットフォームとなったGalaxy S7のメーカーであるSamsungから,Jungwoo Kim氏も登壇した。Kim氏によると,SamsungとEpig Games,そしてARMが連携してデモ開発のプログラムをスタートさせたのは,今から3年前だという。
そのうえで氏は,2016年4月27日にサンフランシスコ市内で開催予定となっているSamsung主催の開発者向けイベント「Samsung Developer Conference 2016」で,同社として新しいゲーム開発者向けの支援プログラムをスタートさせることを明らかにした。その詳細は同イベントで開示するという。
―――――――――――――――――――――――――――――
―――――――――――――――――――――――――――――