コラボレーション強化のためのバージョン管理の導入

ゲーム開発を効率的に進めるためには、バージョン管理やプロジェクトの整理が欠かせません。バージョン管理を理解するには、技術的なバックグラウンドがないと難しいとなって気がめいってしまうかもしれませんが、技術的なバックグラウンドがなければ理解することがかなわないということでもありません。
私たちの新しい e ブック「Version control and project organization best practices」では、テクニカル・ノンテクニカルのどちらのゲームクリエイターにとっても、バージョン管理の設定方法や生産的なチームワークのための計画について、賢明な判断を下すために役立つ内容となっています。
この e ブックは、長年 Unity での開発経験を積んできた開発者が、他の Unity の専門家と協力して、チームでのゲーム開発やプロジェクト編成の経験をもとに執筆したものです。そのため、このガイドで収集された知識は、ソースコード管理を初めて利用する方を含め、さまざまな開発者に役立ちます。手始めに、この e ブックで紹介されている基本的なコンセプト、つまりバージョン管理がどのように機能し、どのような効果があるのか、を解説しているサンプルを見てみましょう。
バージョン管理を行うことで、プロジェクト全体の履歴を残すことができます。仕事を整理し、チームをまたいだスムーズなイテレーションを可能にします。
プロジェクトのファイルは、レポジトリと呼ばれる共有データベースに格納されます。定期的にプロジェクトをレポジトリにバックアップしておけば、何かあったときにいつでも以前のバージョンに戻すことができます。
バージョン管理システム(VCS)では、複数の個別の変更を行い、それらをひとまとまりのバージョンとして「コミット」することができます。このコミットは、プロジェクトのタイムライン上の点となり、前のバージョンに戻す必要が生じた場合、そのバージョンに対応するコミット以降に行ったすべての変更を取り消すことができます。実際には、1 つのコミットの中にまとめられた個別の変更を確認して修正することも、コミット全体を取り消すこともできます。
プロジェクトの全履歴にアクセスできるバージョン管理では、どの変更によってバグが発生したかを簡単に特定できるだけでなく、以前に削除された機能を復元したり、ゲーム内や製品リリース間の変更を文書化したりすることができます。
さらに、バージョン管理は一般的にクラウドや分散型サーバーに保存されるため、チームのメンバーがたとえどこから仕事をしていてもコラボレーションできるようにサポートしてくれます。リモートワークが一般的になってきている中で、この特徴の持つ意味はますます重要になってきています。
上記の理由以外にも、バージョン管理は実験的な変更を行うのにも便利です。たとえば、ローカルバージョンのプロジェクトに新機能を追加してみて、うまくいかない場合は、ためらいなくクリーンで動作するバージョンに戻すことができます。
さらに、実験的なアイデアのためのイテレーションをしつつ、変更を保存しておくことができるので、メインプロジェクトで大きな問題が発生したときには特に便利です。バージョン管理を使えば、ローカルバージョンをメインブランチに戻し、実験的な作業が終わったら、元に戻して作業の続きを行うことができます。
最後に挙げておくべきバージョン管理システムを使う利点は、チームメイトの作業を誤って上書きしてしまうことを防いでくれる点です。このような不手際は多くの人がやったことがあると思います。
自分の作業をリポジトリにコミットする際には、最新のアップデートをリポジトリから「プル」する必要があります。これにより、他の人が自分と同じファイルに対して作業をしているかどうかを確認することができます。マージ時のコンフリクトは、最初は怖く感じるかもしれませんが、適切なツールを使えばすぐに解決できることが多いのです。

無料の e ブックをダウンロードして、専門家からのヒントをすべて手に入れましょう。このガイドでは、以下のようなトピックを取り上げています。
- 集中型バージョンコントロールシステムと分散型バージョンコントロールシステム
- Git、Perforce、Plastic SCM など、さまざまなバージョン管理ソリューションの比較
- 各バージョン管理ソリューションを用いた Unity プロジェクトのセットアップ
- 適切なフォルダー構造、.meta ファイル、命名基準など、Unity プロジェクトを効果的に整理するための知識
- コミットメッセージをきれいでわかりやすいものにすること、無差別なコミットを避けることなど、バージョン管理のベストプラクティス
バージョン管理に関する更なる示唆やヒントをお探しの方は、以下の最近のブログ記事もチェックしてください。
バージョン管理システムを選ぶときに考慮すべき 8 つのポイント
より良いチームワークを作り上げる、KO_OP のバージョン管理活用法
Sycoforge の『Return to Nangrim』が、Unity と Plastic SCM を使ったゲーム開発を民主化する