先月、Unity の DevOps ソリューションの未来像についてお話しました。その中核となるのが Plastic SCM です。これは、DevOps サービスに対応し、あらゆる規模のチーム間のコラボレーションを改善するための計画や投資の基盤となっています。Plastic ウェブ体験の一環として、私たちの最新開発の詳細を知ることができます。
ロールベースワークフロー、コードレビュー、ユーザーおよびユーザーグループ管理など、深く統合された新しいワークフローにいち早くアクセスするために、近日開始予定のベータ版プログラムにぜひご参加ください。これらの機能は、チームをつなぐだけでなく、リアルタイムコンテンツの制作者の生産性を向上させるうえで役立ちます。皆さんのフィードバックを受けて、引き続きゲーム開発およびリアルタイム 3D におけるバージョン管理の未来を形作っていきます。この記事の続きを読み、私たちが取り組んできた仕事に触れてください。なお、これらのアップデートは開発中のものであり、今後の皆さんからご意見を受けて変更されることがあります。
シナリオ
こうしたツールを開発することで私たちが解決しようとしているコラボレーションプロセスの問題を説明するために、Saver Studios という架空のゲーム開発チームが登場するシナリオを例として説明します。この例では Saver Studios で Unity を使用しているとしていますが、Plastic はエンジンに依存しないソリューションであり、Saver Studios が Unreal やその他のカスタム エンジンを使用していても、同じように簡単に Plastic ツールを活用できることを覚えておいてください。
Saver Studios は、中規模のインディーゲーム開発スタジオです。16 人のチームで PC 向けとコンソール向けに、マルチプレイヤー RPG の開発を行っています。しかし、チームは手一杯になってきており、リリーススケジュールを守るためにアーティストのコントラクターを雇い入れる必要がでてきました。
チームメンバーを迎え入れる
このシナリオでは、Saver Studios はコントラクターのアーティスト 6 人にプロジェクトへ参加してもらいます。新しい共同作業者、特に外部のコントラクターを追加する場合は、きめ細かいアクセス権限の制御がスタジオにとって非常に重要です。Plastic ウェブ体験では、必要に応じてレポジトリサーバーの権限を設定できるようにして、このようなアクセス権限の制御をサポートしています。また、Saver Studios は、コントラクターがレポジトリ全体を同期できないように、読み取りと書き込みのアクセス権を指定できるため、プロジェクトをより安全な状態に維持することができます。
この機能はデスクトップクライアントにはすでに存在していますが、今回のリリースの目的は、ウェブダッシュボードで直接チームを立ち上げてプロジェクトを運営できるようにすることです。これにより、日常的な管理作業のために別途クライアントをインストールする必要がなくなりました。
さらに、Saver Studios はネットワーク(IP)許可リストを導入することで、悪意のあるユーザーが組織にアクセスするのを防ぐことができます。許可リストにない IP からクラウドサーバーに接続しようとした場合、接続は拒否されます。Saver Studios は許可された IP を指定したり、特定の IP から接続できる特定のユーザーを指定したりするだけでよく、管理が簡単に行えます。
Saver Studios は、新しいチームメンバーが作業を始めやすいように、良質な Readme ファイルを整備しています。Readme は、ソフトウェア、プロジェクト、コード、ゲーム、セットアップの手順などに関する重要な情報が含まれているため、新しいチームメンバーが最初に読むことになるファイルであることが多いのです。Saver Studios が新しいコントラクターに Plastic のウェブダッシュボードを使うように最初に伝えるだけで、コントラクターは自身のオンボーディングプロセスの効果を最大化するために必要なすべてのツールを自由に使える状態になるのです。
Readme はマークダウンでの記述・表示に対応しているため、Saver Studios はさまざまなリンクや、スクリーンショット、動画、GIF を追加して参照することができます。言い換えると、読者に最も重要な情報を確実に伝えるために、読みやすくフォーマットされたコンテンツを表示することができるということです。
ファイルやリポジトリを操作する
Saver Studios は、プロジェクトを 3 つのリポジトリに整理しています。1 つはゲーム用、1 つは素材のアセット用、1 つは社内ツール用です。例えば、新しいアーティストが 1 か月ほど環境モデルの制作に携わったとします。日々のワークフローの中で、アーティストはそのレポジトリを素早く開いてファイルを閲覧し、どのように変更が加えられたかを確認し、ファイルがどのように変化してきたかを理解しなければなりません。そしてこれらの作業すべてを、ローカルの作業場所にレポジトリ全体をダウンロードすることなく行うことができる必要があります。
新しい Plastic ウェブ体験では、アーティストチームはレポジトリのコンテンツを便利な方法で検索・閲覧することができます。より具体的に言えば、ファイルエクスプローラーを使ってレポジトリ内のすべてのファイルを見ることができるということです。多数のファイルを効率的に閲覧し、あらゆる期間について、ある特定のファイルに加えられた変更を検出することができます。History では、あらゆるファイルの履歴を閲覧でき、Annotate では、誰がどのような変更を行ったかをタイムスタンプ付きで追跡することができます。
コードレビューによる迅速なフィードバック
Saver Studios のプログラマーである Jett は、このゲームのビヘイビアツリー AI を担当しています。彼は非常に複雑な部分の手直しを終えたばかりで、他のエンジニア何人かにコードレビューをしてもらう必要が生じています。ここで彼はウェブダッシュボードを使い、新しいレビューリクエストを作成し、複数のチームメンバーをレビューに追加します。このリクエストが送信されると、Slack でレビュアー全員に Jett のリクエストに関するアラートが届きます。
上記のアラートに加え、レビューが完了したとき、変更が要求されたとき、誰かが質問をしたときに、レビューシステムは通知を送信します。このようなアラートは、Slack、Discord、Webhooks など Plastic のサードパーティツールとの連携により簡単に設定することが可能です。
また自動通知に頼らず、レビューへの直接リンクを送ることもできます(急いでいるときに最適です)。レビュープロセス自体は、レビュアー全員の希望に応じて柔軟に作り変えることができます。例えば、レビュアーは、変更されたファイルの差分を「ファイル全体ビュー」で表示することができます。このビューでは、すべてのコード行が表示され、何が、どこで、いつ変更されたかがハイライトされます。
さらに、注意が必要な変更箇所のみを表示するために表示する量を減らしたり、必要に応じて変更箇所と関係のない行を展開したり折りたたんだりすることも可能です。
アクティビティと使用状況のモニタリング
コントラクターの出入りがある Saver Studios にとって、プロジェクトを管理する上で重要なことは、チーム内のさまざまなユーザーの活動を可視化することです。Plastic はユーザーとストレージに応じた課金を行うため、この可視化を行うことで、課金サイクルの予測可能性を高めることができます。
このビューでは、Saver Studios は特定のタイムラインでフィルターを適用し、一定期間内でレポジトリがどのくらい拡大したか確認することができます。ここでは、データストレージの総量やアクティブユーザー、非アクティブユーザーの数を調べてコストを管理したり、差分、ブランチ、マージ、コードレビューなどのより詳細な使用状況を監視したりすることができます。これらの変数を把握することで、チームワークを促進し、各メンバーが利用可能な機能をフルに活用できるようになります。
ワークフローが円滑に進み、コントラクターを受け入れる時の問題も最小化でき、Saver Studios はプレイアブルなベータ版を予定通りコミュニティにリリースすることができました。フィードバックを受け取った際も、チームは進行するプロジェクトの管理について機敏なアプローチをとり続けることができます。
参加する方法
私たちと共有したいアイデアがありますか?パートナーとして、バージョン管理の未来を形作りましょう。ここまでで紹介した新しい Plastic ウェブ体験のリリースは現在のところ年末を予定していますが、まだまだやるべきことはたくさんあります。ベータ版プログラムには、Unity または Unreal のユーザーを募集しています。このプログラムでは、本番環境へのフルアクセスが提供されます。皆さんからのフィードバックを受けて機能とロードマップを改善し、あらゆる規模のゲーム開発に対応する強力な DevOps プラットフォームを構築していきます。
GDC で行われた Unity DevOps チームのプレゼンテーションで、私たちの計画をご覧いただけます。