付録: ビルドプロセスの基本

確認済のバージョン: 5

-

難易度: 初級

概要

この項目では、ゲームのビルドプロセスの大まかな概要を解説していきます。このレッスンを修了すると、ビルドプロセスの概要とその構成要素を理解できます。

ビルドとは?

ゲームの「使用可能」なバージョンのことです。プレイヤーが実際にデバイスに入れるビルドは、公開 / ライブ / プロダクションビルドなどと呼ばれます。そしてプロダクションビルドが完成する過程で開発者は、何百、あるいは何千というビルドを作成します。これらはゲームが適切に動作するかどうかを確認するために作成されるものです。ビルドには毎回、構成、コンパイル、検証、配布のための時間がかかります。

ビルドプロセス (ビルドパイプライン) とは?

ゲーム開発者がビルドを作成するために使うツールと手順のセットを指します。開発者が一人だけの場合はシンプルです。コード、アセット、リビジョン、ビルド環境、マシンはすべてローカルコンピューター上で完結します。しかしチームで作業する環境では、チームが注力する「正式な」バージョンをはっきりさせるためにツールやプロセスが必要になってきます。

ビルドプロセスの構成要素とは?

一般的な構成要素は次の通りです:

  • リポジトリ: アセットやコードが格納される場所です。プロの制作環境では、複数メンバーが同時に作業した場合に生じる競合を最小限に抑えるため、プロジェクトに関する一切のファイルがソース管理システムに格納されます。

  • ビルド環境: コードとアセットをリポジトリから取得してゲームの「動く」バージョンをコンパイルします。

  • 配布サービス: ビルドをユーザーに届けます。通常、ゲーム開発サイクルの大半においてビルドは内部的に配布され、検証されます。

  • 自動化エンジン: ビルドプロセスの一部を監視して自動的にアクション (ビルドのコンパイル、レポートや通知の発行、ビルドの配布など) を行います。自動化エンジンがない場合、チームの誰か (あるいは複数人) がこれらプロセスを手動で実施します。

一般的なビルドパイプラインは次のようになります。

description

ソース管理とは?

ソース管理 (バージョン管理) とは複数ファイルにまたがる変更を「取り消す」ことができるシステムで、チームを組んでソフトウェア開発を進める際にコラボレーションを可能にします。ゲーム開発においてはソース管理を使用することが「ベストプラクティス (最も効率のよい手法)」と考えられています。具体的な理由としては、長時間かけた作業内容が失われる危険を減らせる、コードを使って新しいことを試しやすくなる (試みがうまく行かなかった場合には安定していたバージョンに「ロールバック」できるため)、などがあります。

ソース管理の仕組みとは?

これは使用するソース管理システムによって異なりますが、Git を用いたソフトウェア開発ワークフローは通常、次のようになります。

  1. リポジトリを作成し (どこかでホストされるものとします)、そこに Unity プロジェクトを追加します。
  2. 変更内容の閲覧や追跡をするインターフェイスとなる、Git クライアント (ソフトウェア) を選びます。
  3. 特定のファイル (Library フォルダなど) を無視するように Git を設定します。
  4. Unity プロジェクトに変更を加え、Unity 上で保存します。
  5. Git クライアントに切り替えると、変更されたファイルが表示されます。
  6. それらファイルを選択して「コミット」します。この操作は基本的にその時点でのプロジェクトの状態にしるしをつけて、後で参照できるようにした、と考えられます。
  7. コミットしたら (複数回コミットすることも可能)、Git のホスト / サーバーに「プッシュ」します。プッシュが完了するとバックアップ完了となり、プロジェクトで作業している他のメンバーにも変更内容が見えるようになります。この「プッシュ」部分が Unity Cloud Build の監視するアクションです。プッシュが検出されると自動的に新しいビルドの作成が開始されます。

Cloud Build でサポートされているソース管理システムは?

Unity Cloud Build では次のソース管理システムをサポートしています。

  • Git
  • Subversion (“SVN”)
  • Perforce
  • Mercurial

各システムの詳細な情報については以下の参考情報 (英語) を参照してください。

開発者 1 人だけでもビルドパイプラインは必要?

はい、1 人だけで開発作業を行っている場合であっても、ソース管理とビルドパイプラインは便利です。ソース管理を使用していれば、たとえば HDD が死亡したり、誤ってファイルを削除してしまったりした場合でも、プロジェクトのバックアップとなります。また Unity Cloud Build のようなビルドパイプラインがあれば複数プラットフォーム向けのビルドをまとめて作れるので、時間を大幅に節約できます。