【UE4】バージョン管理システムは何を使う?Git・SVN・Perforceを比較!
ゲームを作るとなれば、ほぼ間違いなくバージョン管理を行いますよね。
バージョン管理システムといえばGit・SVNなどいくつかの選択肢がありますが
UE4で使う場合どれが最適なのか調べてみました。
結論
結論から言うと、僕はGitを使うことにしました。
Gitはバイナリファイルの管理に弱いので、GitLFSという機能も併用して使います。
それでは詳しく見ていきましょう。
UE4で使えるバージョン管理システム
まずUE4が対応しているバージョン管理ステムをご紹介します。
Git
現状もっとも使われているであろうバージョン管理システム。
分散型でローカルリポジトリがあるため、慣れていれば使いやすい。
バイナリファイルの管理に弱い。
Subversion(SVN)
集中型なのでローカルリポジトリがないが、直感的で理解しやすい。
リビジョンも連番でわかりやすい。
バイナリを差分で管理できる。
Perforce(P4)
SVNと同じく集中型。
SVNは作業コピーをローカルに持っていますが、P4はデータベース上に保存している。
そのため更新などの速度が段違いで早いらしい。
UE4で使うにはどれがいいの?
それぞれに長所・短所があります。
なので、UEで使う上でのざっくりとしたメリット・デメリットを書いていきます。
僕自身そんなに詳しいわけではないので、個人の見解ということでご覧ください。
Git
メリット
デメリット
- バイナリファイルが差分管理できないので容量がでかくなりがち
- UEのソースコントロールがまだβ版
Subversion(SVN)
メリット
デメリット
- ローカルコミットができない
- ブランチに制約が多い
- ホスティングサービスにいいのが見当たらない(※個人の意見です)
Perforce(P4)
メリット
- SVNより高速に処理できるらしい
- UEで有名な会社ヒストリアさんも使ってる
メリット
- 情報がすくない
- お金がかかる(無料版はいろいろ制限があるらしい)
結局どれを使うか?
Perforceはだいぶプロ仕様っぽかったので今回はパスですね。
正統派で行けばSVNを使うのが妥当なんだと思います。
(バイナリに強い&ソースコントロールも正式版のため)
しかし、自分は
という理由からGitを使うことにしました。
ただ、BPなどのuassetがバイナリファイルのため、差分管理できない点が痛いです。
そこで、GitLFSという機能を使うことで回避したいと思います。
GitLFSとは簡単に言うと
「バイナリファイルを別の場所で管理して、Git上ではハッシュ値だけ管理する。
なので、リポジトリの容量は減る」
という機能です。
また、GitLFSを使うと一応ロック機能も使えるようになります。
ロック機能に関してはSVNより制限があります。
ちゃんとルールを決めておかないと普通に競合するので少し使い勝手は悪そうでした。
ですが、Gitの構造上仕方がないことなのでそこはがまんします。
(まぁチームメンバーが少ないので、そこまでロック機能使わないし…)
まとめ
一応これでGit上でUE4のプロジェクトを管理することができそうです。
もっといい方法を知っている方がいれば、ぜひ教えてください!