ProgrammingLab

プログラミングに役立つ情報を更新!

【UE4】バージョン管理システムは何を使う?Git・SVN・Perforceを比較!

ゲームを作るとなれば、ほぼ間違いなくバージョン管理を行いますよね。

バージョン管理システムといえばGit・SVNなどいくつかの選択肢がありますが

UE4で使う場合どれが最適なのか調べてみました。

結論

結論から言うと、僕はGitを使うことにしました。

Gitはバイナリファイルの管理に弱いので、GitLFSという機能も併用して使います。

それでは詳しく見ていきましょう。

UE4で使えるバージョン管理システム

まずUE4が対応しているバージョン管理ステムをご紹介します。

Git

現状もっとも使われているであろうバージョン管理システム

分散型でローカルリポジトリがあるため、慣れていれば使いやすい。

バイナリファイルの管理に弱い。

SubversionSVN

集中型なのでローカルリポジトリがないが、直感的で理解しやすい。

リビジョンも連番でわかりやすい。

バイナリを差分で管理できる。

Perforce(P4)

SVNと同じく集中型。

SVNは作業コピーをローカルに持っていますが、P4はデータベース上に保存している。

そのため更新などの速度が段違いで早いらしい。

UE4で使うにはどれがいいの?

それぞれに長所・短所があります。

なので、UEで使う上でのざっくりとしたメリット・デメリットを書いていきます。

僕自身そんなに詳しいわけではないので、個人の見解ということでご覧ください。

Git

 メリット

  • ローカルコミットができる
  • ブランチが作りやすい
  • 利用者が多いので情報が豊富
  • ホスティングサービスが優秀(GitHub、GitLabなど)

デメリット

  • バイナリファイルが差分管理できないので容量がでかくなりがち
  • UEのソースコントロールがまだβ版

SubversionSVN

 メリット

  • バイナリファイルが差分管理なので容量が減る
  • UE4で使っている人が多い(UEのソースコントロールが正式版)

デメリット

  • ローカルコミットができない
  • ブランチに制約が多い
  • ホスティングサービスにいいのが見当たらない(※個人の意見です)

Perforce(P4)

 メリット

  • SVNより高速に処理できるらしい
  • UEで有名な会社ヒストリアさんも使ってる

 メリット

  • 情報がすくない
  • お金がかかる(無料版はいろいろ制限があるらしい)

結局どれを使うか?

Perforceはだいぶプロ仕様っぽかったので今回はパスですね。

正統派で行けばSVNを使うのが妥当なんだと思います。

(バイナリに強い&ソースコントロールも正式版のため)

しかし、自分は

  • チームメンバーとGitで開発経験がある(UEではないが)
  • ローカルリポジトリが欲しい
  • GitHubを使えば無料で人数制限なく無限にプライベートリポジトリを作れる。

という理由からGitを使うことにしました。

ただ、BPなどのuassetがバイナリファイルのため、差分管理できない点が痛いです。

そこで、GitLFSという機能を使うことで回避したいと思います。

GitLFSとは簡単に言うと

「バイナリファイルを別の場所で管理して、Git上ではハッシュ値だけ管理する。

なので、リポジトリの容量は減る」

という機能です。

また、GitLFSを使うと一応ロック機能も使えるようになります。

ロック機能に関してはSVNより制限があります。

ちゃんとルールを決めておかないと普通に競合するので少し使い勝手は悪そうでした。

ですが、Gitの構造上仕方がないことなのでそこはがまんします。

(まぁチームメンバーが少ないので、そこまでロック機能使わないし…)

まとめ

 一応これでGit上でUE4のプロジェクトを管理することができそうです。

もっといい方法を知っている方がいれば、ぜひ教えてください!