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 公式ドキュメント

関連記事

UE5.5の新しいキャラクターカスタマイズ機能「Mutable」の解説や、マテリアルに関する中級者向けTipsも。UE勉強会「Unreal Engine Meetup in Osaka Vol.03」講演資料が公開
2025.01.24
ランタイムでスタティックメッシュを結合し、ドローコールを削減。UE5での実装例をロジカルビートが技術ブログで紹介
2025.01.16
UE5で状態遷移を管理する機能「StateTree」の活用事例、おかず氏がブログで紹介。ブループリントから送信されるイベントに基づきドアの開閉状態を制御
2025.01.06
2024年アドベントカレンダーから、ゲームメーカーズ編集部が注目した14記事を一挙紹介!
2024.12.26
UE5&Blender初挑戦から“わずか1か月”で最優秀賞!第22回UE5ぷちコン受賞作『ワンオペ遊園地』開発陣が駆け抜けた制作スケジュール
2024.12.25
Motion Matchingなどが学べる公式サンプルプロジェクトがUE5.5に対応。300以上のアニメーションが追加され、モバイル・オンラインマルチプレイにも対応
2024.12.23

注目記事ランキング

2025.01.22 - 2025.01.29
VIEW MORE

連載・特集ピックアップ

イベントカレンダー

VIEW MORE

今日の用語

乱数
ランスウ プログラムにおいてランダムに生成される数値。アルゴリズムによって導かれ、実際には完全なランダムではないため疑似乱数とも呼ばれる。
VIEW MORE

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