Unityをバージョン管理する

1月 17, 2019

結論

  • UnityのマニュアルではPerforce、Plastic SCM推し
  • Perforceは個人向けのサービスには見えない
  • Plastic SCMはゲーム開発向けの機能多めで良い
  • GitHubで十分、安い

バージョン管理とは?

何らかの作業を長期にわたって行うとき、自分が行った作業にラベルをつけて作業内容を段階的に記録していくこと、過去に行った作業にどんな意義があったかを明確にすることです。
バージョン管理を行うことでどの手順でどんな作業を行ったかを調べることができ、必要に応じて目的とする状態に戻すことができます。
あるいはリリース用/テスト用の環境、またはモバイル向け/PC環境向けの製品など、複数のバージョンが必要な製品などをスマートに管理できます。

要するにトラブルや機能変更にめっちゃ対処しやすくなります。
また各人の作業内容が把握しやすくなり、複数人で同じ物を改良するのが簡単になるという効能もあります。

Let’s バージョン管理!

(上記はバージョン管理初心者の意見なので正確ではないです。
詳しく知らない人はあまり参考にはせず使うと便利っぽいという雰囲気だけ理解してください)

まずGitHubを試す

プログラマはみんな知ってる定番のWebサービス。
Gitというバージョン管理ソフトをネット経由でいい感じに扱えるようになる。
複数のハードや遠隔地のユーザー同士で共同作業がやりやすくなる。超有名。

しばらくGitHubを使っていたのですが、私の場合は大きなメリットがなかったので他のバージョン管理サービスについて調べることにしました。
なおこの記事は前提として、ごく少人数(正確には一人)のプロジェクトであり予算は少ない(あってもあんまり金をかけたくない)人を想定してます。

ちなみにGitHubについての私の印象はこんな感じ

  • (重要)GitHub for Unityという公式アセットがあり連携が容易
  • 一人プロジェクトなので便利機能の大部分は使えない、使わない
  • アセット使ってるので基本的に公開できない、するとしたら結構な手間
  • 公開できないからプライベートリポジトリが必要、7ドル/月 (無料化!)
  • Git LFS周りでちょいちょいトラブルの噂を聞くので怖い
  • Git LFSの容量制限は将来的に面倒ごとの要因になりそうで怖い

必要十分な機能はあるけど最適ではないのでは?という印象です。

一番良さそうなやつを探す!

unityのマニュアルにはこう書いてある

Unity は Perforce や PlasticSCM など、よく使用されているバージョン管理ツールをサポートしています。

Unity はアドオン製品として アセットサーバー (チームライセンス) を提供し、 バージョン管理の統合(チームライセンス) を容易にします。なんらかの理由で Unity Asset Server を使用できない場合も、PerforcePlasticSCM といった外部のバージョン管理システムにプロジェクトを格納することができます。なんらかの理由でこれらのシステムが使用できない場合は Subversion や Bazaar も使用することが可能です。

Unity 2017.1 以降、Asset Server のサポートは廃止される予定です。 ~Unity プロジェクトのバージョン管理には Plastic SCM か Perforce の使用を推奨します。~

https://docs.unity3d.com/ja/2018.3/Manual/UnityManual.html

Unity的には明確にPerforce/Plastic SCMを推しているようだ
というわけでPerforceかPlastic SCMを使おう!

Perforceとは?

Perforce | Application Development Solutions

  • Gitベースのバージョン管理システムっぽい
  • 法人向けっぽい
  • 製品多すぎて何が適してるのか全然わからん
  • 価格は見積もりで明確に書いてない

うん、まだ詳細を把握してないけど価格が見積もりって時点でとりあえず個人で使うものではなさそうなことは理解した。
調べるのはやめよう。

Plastic SCMとは?

Plastic SCM – The Distributed Version Control for Big Projects
とりあえずトップページの下の方にある比較表を見ましょう。
Plastic, Git, Perforce, Subversionの比較が載ってます。
実に自信ありげで他社に軽く喧嘩を売ってる感じが好感を持てますよね?
早速調べました。

  • (重要)ゲーム開発者が利用することも想定されてる、もちろんUnityとの連携も公式アセットで可能
  • 独自仕様のバージョン管理システムっぽい
  • マージ機能が優れているらしい
  • 独自仕様なのでGitLFSみたいな容量制限はなし
  • 大容量ファイルの扱いも簡単、作業中のファイルのロックも可
  • アーティスト向けに使いやすく機能制限されたGluonというツールがある
  • Git、GitHubの機能は大部分を網羅してそう
  • Unityのプラグインを利用する場合は約7ドル/月のプランから
  • クラウドストレージは5GB,15GB,100GB
  • 30日間の無料トライアルあり

調べました。調べましたが…書いてること多すぎてまとめられないのでもし気になった人がいたら直接サイト見て…

ストレージの容量には難があるけど機能的には優秀そう。
+4.95ドルで15GB、+19.95ドルで100GBのクラウドストレージが使えるらしい
刻むだろ…普通もっと…!段階をっ……!
クラウドストレージは15GBあれば十分だと思うし合計12ドル程度なら利便性が本当に良いなら払っても全然後悔しない金額なので試すことにしました。

今Plastic SCMを無料体験中なので詳細な使用感はそのうち書きます…たぶん

Plastic SCMの感想

Plastic SCMが提供しているソフトの操作性は良かったけどUnity用アセットの使い勝手が微妙でした。
とはいえ機能的には満足だったのでPlastic SCMに傾いていたところにGitHubのプライベートリポジトリが無料化!

一番重要なのは非公開でクラウド上にデータを保存できることなのでそれ以外の機能が充実してても約7ドル分の価値の差は感じなかった…
いやチーム開発ならいいと思うんだけどね?自分の場合はアーティストいないし、ファイルのロックもしないし、マージも頻繁にはしないし…自分はPlastic SCMが想定している顧客ではなかったと思われます。
アーティスト、プログラマ混在チームでゲーム開発するならGit/GitHubよりも便利なサービスだと思う!たぶん!