/note/tech

Epic Games、ゲーム開発向けの次世代バージョン管理システム「Lore」をオープンソースで公開。MIT...

要約:

■ 1. 概要

  • Epic Gamesが次世代バージョン管理システム「Lore」のプレステーブル版を公開
  • MITライセンスのオープンソースとして無料提供
  • プロジェクト種別を問わず使用可能で、改変・配布・Loreを基盤としたツールの構築も許可
  • 対応環境: Windows、macOS(ARM64)、Linux向けにCLIツールおよびサーバーバイナリを提供
  • 言語サポート: C/C++・RustのネイティブインターフェースのほかJavaScript、Python、C#、Goの言語バインディングに対応

■ 2. 開発背景と目的

  • 既存VCSが抱える大規模化・バイナリデータ取り扱いの課題を解決するために設計
  • ゲーム開発では数GBのテクスチャ・3Dモデル・音声ファイルなどの大量バイナリアセットが存在
  • マルチテナントの安全性とオープン仕様を備えた大規模プロジェクト管理システムとして構築

■ 3. 運用実績

  • Epic Games社内ですでに稼働中
  • 「Unreal Editor for Fortnite(UEFN)」の組み込みVCS(旧称: Unreal Revision Control)として採用
  • クリエイターの島データのバージョン管理やクックパイプラインのバックエンドとして利用

■ 4. 技術的特徴

  • バイナリファーストアーキテクチャ:
    • データはファイル単位ではなくフラグメント(チャンク)に分割して管理
    • 暗号学的ハッシュ関数BLAKE3によるコンテンツアドレス方式を採用
    • チャンク化手法はコンテンツベース(FastCDC)と固定サイズの2種類をサポート
    • 変更されたフラグメントのみ再アップロードすることで通信量とストレージ容量を節約
  • スパース設計とオフライン対応:
    • クローン時に「ビューフィルタ」で必要なディレクトリのみ指定可能
    • データはオンデマンドで取得(遅延フェッチ)され、数TBのプロジェクトでもローカルストレージを圧迫しない
    • ミュータブルストア(ブランチの最新ポインタ等)とフラグメントキャッシュをローカルに保持
    • ステージング・コミット・ブランチ操作・差分確認などはオフラインで実行可能
    • サーバー通信はPushおよびSync時のみ発生
  • ロック機能:
    • バイナリアセットなど自動マージ不可能なファイル向けにファイルレベルのロック機能を搭載
    • ロックはサーバーと通信して取得・照会し、ロック中ファイルへのPushはサーバー側で拒否
    • 複数ユーザーによる同一ファイルの同時編集による競合事故を防止
  • リンクとレイヤー:
    • リンク: Gitのサブモジュールに類似しており、ディレクトリごとにアクセス制御が可能、権限のないユーザーには内容が非表示
    • レイヤー: ローカルでのみ適用されるオーバーレイ機能で、CIパイプラインや個人アセットライブラリを透過的にマウント可能

■ 5. 今後のロードマップ

  • 2026年の計画:
    • VS Codeプラグインの実装
    • 仮想ファイルシステム(VFS)の実装
    • 数百万ファイルに対応するスケーラブルなロック機能の強化
  • 2027年の計画:
    • デスクトップクライアント(早期アクセス版)のオープンソース化
    • アンリアルエンジンのエディタ本体へのプラグイン統合
    • Webクライアントの提供

MEMO: