Epic Games Lore バージョン管理システム

Epic Games、大規模なバイナリ資産のバージョニング向けに Lore を導入

Epic Games は、ソースコードと膨大なバイナリ資産を組み合わせたプロジェクトのスケーラビリティの課題を解決するために設計された、オープンソースのバージョン管理システム (VCS) である Lore をリリースしました。Git はテキストベースのファイルに最適化されていますが、Lore はゲーム開発やエンターテインメントにおける高いデータ需要に合わせて設計されており、Perforce Helix Core のようなプロプライエタリなシステムに代わるスケーラブルな選択肢を提供します。

Lore は MIT ライセンスの下でリリースされており、ライブラリ、サーバー、CLI のセットとして提供され、C/C++、C#、Rust、Go、Python、JavaScript 用の SDK も提供されています。

技術アーキテクチャ:Merkle Trees とチャンク化ストレージ

Lore は、データの整合性とスケーラビリティを確保するために、Merkle trees と不変の履歴チェーンを組み合わせた、中央集権的なコンテンツ・アドレス指定型の VCS です。

コンテンツ・アドレス指定ストレージと Merkle Trees

Lore は、Merkle tree 内のコンテンツハッシュによってリポジトリデータを参照します。このアーキテクチャにより、システムは高速な比較、データの整合性検証、および重複のない異なるブランチや履歴間でのデータの再利用が可能になります。

不変の履歴チェーン

Lore のすべてのリビジョンは、暗号学的に署名されています。リビジョンのハッシュは、その状態から派生しており、これには親リビジョンのハッシュと含まれるデータのハッシュが含まれます。これにより、改ざんが検知可能な、不変の「真実のチェーン」が作成されます。

バイナリ資産のためのチャンク化ストレージ

大きなファイルを効率的に扱うため、Lore はチャンク化ストレージを採用しています。ファイルはインデックス付きルックアップが可能な再利用可能なチャンクに分割され、これにより重複が削減され、ファイルの変更された部分のみを更新することで大規模なバイナリ資産の転送を最適化します。

オンデマンド・ハイドレーション

Lore は、オンデマンド・ハイドレーションを通じて、疎なワークスペースをサポートしています。ユーザーは、リポジトリの履歴全体やすべての資産を事前にダウンロードする必要はありません。代わりに、システムは開発者やアーティストが具体的に必要としたときにのみ、ファイルデータを取得します。

Lore vs. Git と Perforce

Lore は、Git の一般的な代替品としてではなく、ゲーム開発分野における Perforce の競合相手として位置付けられています。

Git のバイナリ制限への対処

コミュニティの議論では、Git はコードには効果的ですが、テクスチャ、3D モデル、オーディオファイルなどの扱いに苦労することが指摘されています。Git LFS (Large File Storage) も存在しますが、大規模なチームによる AAA ゲーム開発におけるコラボレーションには不十分であると見なされることが多いです。

Perforce の独占への挑戦

Perforce Helix Core は、大規模プロジェクトを扱い、ファイルロック機能を提供できるため、現在 Unreal Engine 開発における業界標準となっています。Lore は、オープンソースのフレームワーク内で、同等のレベルのパフォーマンスとスケールを提供することを目指しています。業界のベテランは、Lore の成功は、Unreal Engine 内での統合レベルに依存するだろうと指摘しています。Epic の内部使用が、通常、エンジンが最もサポートする VCS を決定するためです。

コミュニティの洞察と批判的分析

発表は関心を集めていますが、技術的なユーザーは、Lore の現在の状態と設計についていくつかの点を指摘しています。

  • 起源と由来: Lore は以前「Unreal Revision Control」として知られており、UEFN (Unreal Editor for Fortnite) のバックエンド・ストアとして機能していました。Rust で書かれており、Epic の従来の C++ や Verse の使用とは異なります。
  • ツールキットの不足: 一部のユーザーは、初期ドキュメントにおいて、バイナリ資産をマージできないアーティストにとって不可欠な、可視化されたファイルロックのワークフローが欠題していると指摘しています。また、コア部分はオープンソースですが、デスクトップクライアントは現在バイナリ形式でのみ提供されています。
  • API のアクセシビリティ: Lore は「フルサーフェス API」を提供しており、これは、他のツールへの統合を容易にするためのリンク可能なライブラリを欠く Git のアーキテクチャと比較して、大きな利点として見なされています。
  • 他のデータ・バージョニングへの比較: 一部の開発者は、Lore が採用しているチャンク化とコンテンツ・アドレス指定のアプローチは、Pachyderm、LakeFS、Oxen などの既存のデータ・バージョニング・システムと酷似しており、AI/ML データ管理とゲーム開発のニーズが収集斂していることを示唆しています。

"Git は、コードのようなテキストベースのファイルには適していますが、テクスチャ、3D モデル、オーディオファイル、その他のゲーム開発者が共同作業するために必要な非テキストファイルには非常に適していません... その分野における SOTA は Perforce... プロプライエタリなシステムです。"

"Lore は、以前 Unreal Revision Control と呼ばれていました。UEFN (Unreal Editor for Fortnite) の作成者が、自身のアイランドのバージョニングを行うために使用している、UEFN の組み込みバージョン管理システムです。"

Sources