UE6にはフォートナイト用の言語「Verse」が導入される?GDC 2024のVerse講演から見るアンリアルエンジンの今後

2024.04.22
注目記事アンリアルエンジンプログラム
この記事をシェア!
Twitter Facebook LINE B!
Twitter Facebook LINE B!

2024年3月18日~2024年3月22日(現地時間)に、世界最大級のゲーム開発者向けカンファレンス「Game Developers Conference 2024(GDC 2024)」が開催されました。

本記事では、Epic Gamesが行った講演のひとつ「Verse Update」にフォーカス。同社が開発するプログラミング言語「Verse」の今後から、アンリアルエンジン、ひいてはUnreal Engine 6に関係するトピックをピックアップして紹介します。

目次

『Verse Update | GDC 2024』

Epic Gamesが開発したプログラミング言語「Verse」

Verseとは、『フォートナイト』上で動作するゲームを制作するツール『Unreal Editor for Fortnite(以下、UEFN)』で用いられるプログラミング言語です。

2023年3月にUEFNのリリースと同時に開始された「クリエイターエコノミー2.0」では、Epic Gamesがフォートナイトで得た収入の40%をフォートナイト上にゲームを公開しているクリエイターに分配します。Epic Gamesは、年間の配当が合計10万ドル以上になるクリエイターは200を超えると試算しています(2023年5月31日時点)。

関連記事
Epic Games、200を超えるフォートナイトの島クリエイターが年間10万ドル以上の配当金を得られると発表。島の「プレイ時間」が影響
2023.06.05

今後、フォートナイトの開発がアンリアルエンジンに代わりUEFNで行われることが発表されているほか、VerseがUnreal Engine 6へ導入されることが示唆されています。

Verseの特徴は、強い静的型付け・関数型やオブジェクト指向を取り入れたマルチパラダイム・直感的な非同期処理の記述。その中でも、関数が「失敗」した場合に処理がロールバックする仕様を大きな特徴としています。

if (Element := MyArray[Index]):
    Log(Element)

例えば、MyArrayIndex番目の要素が存在していない場合はMyArray[Index]は失敗する。MyArray[Index]は実行されなかったことになり、if式の中身も実行されない(コードは公式ドキュメントより引用)

ここからは、講演内容の一部をピックアップして紹介します。

Incremental Garbage CollectionがUE5.4で導入

Incremental Garbage Collectio(Incremental GC)」とは、複数フレームにまたがってガベージコレクションを行う機能です。

従来よりアンリアルエンジンに搭載されているガベージコレクションは1フレーム内で実行されるため、大量のオブジェクトを破棄する場合は1フレームに負荷が集中します。

UE5.4でIncremental GCが導入されることにより、多くのオブジェクトを破棄する際にもヒッチが起きにくくなります。

(画像は『Verse Update | GDC 2024』より引用)

C++にトランザクショナルメモリの概念を導入する独自コンパイラ「AutoRTFM」を開発

Verseは、すべての処理がロールバックできることを目標に掲げています。

Verseが持つ「処理がロールバック可能である」特徴を実現するために、Epic Gamesは変更を伴う一連の処理を「トランザクション」として切り分ける仕組み「トランザクショナルメモリ(※)」を活用しています。トランザクションの実行中には変更は反映されず、トランザクションの完了時にはじめて結果が反映されます。

トランザクショナルメモリを導入することで、処理を並列実行しやすくなるほか、トランザクションが失敗したときは実行結果が破棄されるためランタイムエラーによる被害を抑えられます

これにあわせて、Epic Gamesは、C++にトランザクショナルメモリの概念を導入するClangベースのコンパイラ「AutoRTFM」を開発しました。AutoRTFMはC++コードのコンパイル時、各関数に対してロールバック用のハンドラを自動で生成します。

(画像は『Verse Update | GDC 2024』より引用)

なお、トランザクショナルメモリとAutoRTFMについては、解説記事が公式ブログにて公開されています。

「Verse のトランザクショナル メモリ セマンティクスを C++ に導入する」アンリアルエンジン公式ブログ

単体で動作可能なVerseが今年終盤にリリース

スタンドアローンで動作するVerseが、今年終盤にオープンソースでリリースされることが明らかとなりました。

開発内部では、講演時点でフォートナイトに搭載されているVerse言語を「BetaVerse」、独立して実行できるVerse言語を「MaxVerse」と呼んで区別しているそうです。

MaxVerseは、Haskellベースの言語として開発中。リリース時には講演時点より10倍のパフォーマンス向上を実現し、Webブラウザ上で実行できる状態を予定しているとのこと。

(画像は『Verse Update | GDC 2024』より引用)

ブループリントやC++との相互運用が可能に

講演では、VerseがアンリアルエンジンのブループリントC++との相互運用性を持つようになることが明かされました。

従来のC++コードをブループリントに公開するのと同様の手法を用いて、C++コードをVerseに公開できるとしています。

(画像は『Verse Update | GDC 2024』より引用)

新たなオブジェクト構成システム「Scene Graph」が導入予定

従来のActor/Actor Componentと同様に、オブジェクトをいくつかのパーツから構成する新たなシステム「Scene Graph」の導入が予定されています。

Scene Graphは、単一の機能を含む「Component」Componentのコンテナとなる「Entity」でひとつのオブジェクトを構成します。

Actorにはトランスフォームやレプリケーション、タグなど、複数の機能がまとめて搭載されています。一方でEntityはわずかな機能のみを持ち、トランスフォームなどの要素はComponentとして追加する点で異なります。

複数のEntity、Componentをまとめて「Prefab」を定義することも可能(画像は『Inside UEFN Scene Graph | GDC 2024』より引用)

Scene Graphは、2024年の第二四半期に実験的機能としてUEFNに導入される予定です。

GDC 2024では、Scene Graphについてより詳しく紹介するセッション『Inside UEFN Scene Graph』も行われました。

『Inside UEFN Scene Graph | GDC 2024』

セッションの詳細は、アーカイブ動画をご覧ください。

Verse Update | GDC 2024Verse 公式ドキュメント

関連記事

500以上のアニメーションを同梱。UE5.4の「Motion Matching」学習に役立つサンプルプロジェクトをEpic Gamesが無料公開
2024.06.13
Epic Gamesが開発中のプログラミング言語「Verse」って知ってる?編集部員が感じる2つの特徴「ロールバック」「非同期処理」などを解説
2024.06.12
Apple、統合開発環境「Xcode 16」のベータ版をリリース。予測的コード補完エンジンや、処理負荷を可視化する「flame graph」の実装など
2024.06.11
「シェーダー最適化入門」、サイバーエージェントのゲーム・エンタメ技術組織が新設ブログで公開
2024.06.10
「Unreal Engine」2024年6月の無料マーケットプレイスコンテンツが公開!バイキングの家をイメージしたアセットや、インベントリを実現するブループリントアセットなど
2024.06.05
Unreal Engine 5.4.2がリリース。「Motion Design」のClonerにおける機能改善や、リターゲットに関する不具合の修正など
2024.06.05

注目記事ランキング

2024.06.07 - 2024.06.14
VIEW MORE

連載・特集ピックアップ

イベントカレンダー

VIEW MORE

今日の用語

フレームレート(Frame Rate)
フレームレート 1秒あたり何回フレームを表示するかを示す数値。フレームレートの単位のことをFPS(frames per second)と呼ぶ。
VIEW MORE

Twitterで最新情報を
チェック!