Epic Gamesが、ゲーム開発向けの新しいバージョン管理システム「Lore」をオープンソースで公開したらしい。
ゲームメーカーズの記事を見かけて、少し気になった。
Epic Games、ゲーム開発向けの次世代バージョン管理システム「Lore」をオープンソースで公開。MITライセンスで無料提供
ただ、自分はゲーム開発の現場を詳しく知っているわけではない。
普段触っているのも基本的にはGitなので、Loreが何を解決しようとしているのか、最初はあまりピンと来なかった。
なので、記事を読んだあとにAIに聞きながら整理してみた。
以下は、そのときのメモ。
Loreは何のためのものなのか
AIに聞いたところ、Loreはざっくり言うと、ゲーム開発のように巨大なバイナリファイルを大量に扱う開発向けのバージョン管理システムらしい。
Gitはソースコードのようなテキストファイルの管理にはかなり強い。
一方で、ゲーム開発ではテクスチャ、3Dモデル、音声、動画など、差分をテキストのように扱いにくいファイルがたくさん出てくる。
そういうファイルはサイズも大きくなりやすい。
そのため、Gitだけで全部を扱おうとすると、リポジトリが重くなったり、cloneやpullに時間がかかったりしやすいとのことだった。
Loreは、その前提に合わせて作られているらしい。
「バイナリファースト」とは何か
記事には、Loreがバイナリファーストで設計されていると書かれていた。
この意味もAIに聞いてみた。
AIの説明では、バイナリファーストというのは、最初から大きなバイナリファイルを扱うことを前提にしている、という意味に近いらしい。
たとえば、数GBのファイルがあったとして、その一部だけが変わった場合に、毎回ファイル全体をアップロードするのは重い。
Loreでは、ファイルを細かい単位に分けて管理し、変更された部分だけを扱えるようにする設計になっているようだ。
このあたりはGit LFSと何が違うのかも気になった。
AIに聞いた範囲では、Git LFSはGitに大きなファイルを扱う仕組みを追加するものだが、Loreは最初から巨大なバイナリファイルを扱う前提で設計されている、という違いがあるらしい。
もちろん、自分が実際に両方を比較して使ったわけではないので、ここは理解の途中。
必要なものだけ取ってくる仕組み
Loreでは、作業ツリーをスパースに扱えるらしい。
これもAIに聞いたところ、巨大なプロジェクト全体を最初から全部ローカルに持ってくるのではなく、必要なディレクトリやファイルを選んで作業できるような考え方とのことだった。
小さなWebアプリやブログのリポジトリだと、cloneして全部持ってきても特に困らない。
でも、ゲーム開発のようにプロジェクト全体が非常に大きい場合、最初に全部ダウンロードするだけでもかなり大変そうだ。
必要なものだけを取ってきて、必要になったら追加で取得する。
そういう仕組みがあると、大きなチームや大きなプロジェクトでは便利なのかもしれない。
ファイルロックが必要になる理由
Loreにはファイルロック機能もあるらしい。
Gitに慣れていると、ロックという考え方は少し別世界に見える。
これもAIに聞いたところ、コードなら同時に編集されてもマージできることが多いが、バイナリファイルはそうはいかないことが多いとのことだった。
たとえば、同じ3Dモデルや画像を複数人が同時に編集した場合、あとから差分をいい感じに統合するのは難しい。
そのため、誰かが編集中のファイルをロックして、他の人が同時に編集しないようにする仕組みが必要になるらしい。
Gitの感覚だけで考えると、ロックは少し不便そうにも見える。
ただ、扱うファイルの種類が違うと、必要な仕組みも変わるのだと思った。
Unreal Engineとの統合も予定されているらしい
記事によると、LoreはすでにEpic Games内部やUEFNの組み込みVCSとして使われているとのこと。
さらに、2027年にはUnreal Engineのエディタ本体とのプラグイン統合も計画されているらしい。
この点についてもAIに聞くと、ゲーム開発ではエンジニアだけでなく、アーティストやレベルデザイナーなど、いろいろな職種の人が同じプロジェクトに関わるため、エディタから自然に使えることはかなり重要そうだ、という説明だった。
たしかに、全員がCLIでバージョン管理を細かく操作するより、エディタ上で必要な操作ができた方が使いやすそうではある。
このあたりは、実際のゲーム開発現場を知らないので想像に近い。
ただ、なぜUnreal Engineとの統合が大きな意味を持ちそうなのかは、少し分かった気がする。
Gitの代わりというより、違う課題への道具
AIに聞いて整理してみると、LoreはGitをそのまま置き換えるものというより、Gitが得意ではない領域に向けた道具なのだと思った。
自分のブログや小さなWebアプリの管理なら、今のところGitで十分だと思う。
でも、ゲーム開発や映像制作のように、巨大なバイナリデータを扱う開発では、別の前提で作られたバージョン管理システムが必要になるのかもしれない。
今回の記事を見ただけでは、まだ分からないことも多い。
ただ、普段使っているGitとは違う課題があり、それに合わせた道具が作られているという点は面白かった。
LoreはMITライセンスで公開されているらしいので、今後どのくらい使われていくのかは少し気になる。
また情報が出てきたら、もう少し調べてみたい。