すべての導入事例
    私たち自身のスタジオ導入事例 · Ayelet Studio

    Son of ThanjaiをPS5、Xbox Series X|S、PCへ出荷

    Ayelet StudioはSpeedrunCIを作ったチームです。つまり、これは私たち自身の話です。私たちはChennaiにある約30人のスタジオで、11世紀の南インドを舞台にしたアクションアドベンチャー、Son of ThanjaiをUnreal Engine 5で開発しています。SpeedrunCIは、自分たちのビルドの問題を解決した社内ツールとして始まりました。今も毎日、このゲームをSpeedrunCIでビルドしています。

    開示:SpeedrunCIはAyelet Studioが開発しています。以下の数値は私たち自身による計測です。

    スタジオ
    Ayelet Studio(インド・Chennai)
    チーム
    約30人
    ゲーム
    Son of Thanjai(アクションアドベンチャー)
    エンジン
    Unreal Engine 5
    プラットフォーム
    PS5、Xbox Series X|S、PC
    導入前
    Jenkinsと1台のビルドマシン
    同じプロジェクト、同じハードウェア、同じリポジトリ
    Jenkins
    3時間32分
    SpeedrunCI
    27分

    Son of Thanjaiのフルビルドを、同じマシンで計測。SpeedrunCIの初回ビルドは、キャッシュが温まるまで時間がかかります。

    アーキテクチャ
    01トリガー
    Unreal Editorプラグインツールバーからビルド
    ホスト型Loreリポジトリすべてのビルドのソース
    02オーケストレーション
    SpeedrunCIパイプラインプラットフォームごとに1本、同じコミットから
    ゲームを理解するキャッシュコード、クック済みアセット、派生データ
    認証情報ボールトコンソール署名鍵、AES-256-GCM
    03並列ビルド
    Win64専用ランナー
    PS5専用ランナー
    Xbox Series X|S専用ランナー
    04配信
    成果物ストレージ期限付きの署名付きダウンロードリンク
    スタジオダッシュボードプロデューサーとQA向けのライブステータス
    チームチャットSlackとDiscordへの通知
    1つのコミットが、プラットフォームごとのパイプラインに展開されます。各パイプラインはそれぞれ専用のランナーで並行してビルドされ、ゲームを理解するキャッシュと認証情報ボールトがすべての実行を支えます。完成したビルドは成果物ストレージとダッシュボードに届きます。
    導入前

    力の半分は、Jenkinsを動かし続けることに消えていた

    多くのスタジオと同じく、私たちもJenkinsから始めました。数週間のうちに、BuildGraphをシェルコマンドとして呼び出し、環境変数や共有フォルダで状態を受け渡し、原因をよく理解できていない失敗を回避するためにフラグを足すようになっていました。

    フルビルドには3時間以上かかりました。3つのプラットフォームは1台しかないビルドマシンで順番に実行されたため、3つすべてを出荷するには3倍の時間がかかりました。テクスチャを1枚変えただけでフルリビルドが走ることもあり、何かが失敗しても、ログには200ステップの処理のどこかで何かが壊れたとしか書かれていませんでした。

    パイプラインをデバッグできるのは1人だけでした。アーティストは夕方に作業をプッシュし、それが無事だったかを翌朝に知ることになります。3人のエンジニアは念のため、コミットのたびに事前にローカルビルドを実行していました。1日最大9時間ものコンピュート時間を、CIの結果を予測することすらできないビルドに費やしていたのです。

    「プロデューサーとしての私の仕事は、ビルドがどういう状況で、誰が止まっているかを把握することに尽きます。以前はそれを知るだけで3.5時間かかり、ビルドが壊れれば丸1日を失っていました。今はSpeedrunCIのおかげでチーム全員が毎日ビルドし、私はすべてのビルドを実行した瞬間から確認できます。ビルドの問題でマイルストーンが遅れることもなくなりました。」
    Mohan Raj、Ayelet Studio スタジオプロデューサー
    私たちのSpeedrunCI活用法

    機能ごとに

    01

    プラットフォームごとのパイプラインを並行して

    Win64、PS5、Xbox Series X|Sはそれぞれ専用のパイプラインを持ち、同じコミットから開始されます。1台のマシンで順番待ちをするのではなく、複数のランナーで同時に実行されます。以前の3時間の待ち時間の大半は、この順番待ちによるものでした。

    02

    ゲームを理解するキャッシュ

    SpeedrunCIは、コンパイル済みのコード、クック済みのアセット、シェーダーと派生データを実行間でキャッシュし、変更が影響する部分だけを再ビルドします。同じハードウェアで3時間32分と27分の差を生んだのはこれです。実行する必要のないステップを、実行しなくなったのです。

    03

    問題の場所を指し示す失敗

    ビルドが失敗するときは、どこか1つのステップで、そのステップのログと、きっかけとなったコミットとともに失敗します。SpeedrunCIはログを読み、確認すべきファイルと行を添えて修正案を提示します。赤いビルドの修正にかかるのは、午前中いっぱいではなく数分です。

    04

    Unreal Editorの中からビルド

    アーティストやデザイナーは、エディタのツールバーにあるSpeedrunCIプラグイン(Fabで無料)からビルドを開始します。リアルタイムのステータスはエディタ内で確認でき、コマンドを知っているたった1人を探し回る必要はもうありません。

    05

    チーム全員が手に取れる成果物

    完成した約20 GBのコンソールビルドは、それを作った実行からそのままダウンロードできます。Google Driveのリンクも、どれが最新のビルドかを尋ねる必要もありません。

    06

    全員に見えるビルドステータス

    プロデューサーとQAは、すべてのビルドを実行した瞬間から、ダッシュボードとチームチャットで確認できます。スタンドアップでパイプラインについて尋ねる人はもういません。

    07

    ホスト型Loreリポジトリ

    Ayelet Studioは、SpeedrunCIのホスト型Loreリポジトリを本番環境で運用した最初のスタジオです。

    何が変わったか

    ビルドが話題にならなくなった

    • アーティストのコミットは1日1回から2回に増えました。誰かに言われたわけではなく、夜間ビルドを恐れなくなったからです。
    • エンジニアは「念のため」のローカルビルドをやめました。CIが信頼できるビルドになったからです。
    • 専任のビルドエンジニアはいません。キャッシュ、並列実行、オーケストレーションはSpeedrunCIの役目です。
    • プロデューサーは誰にも聞かずにすべてのビルドの状況を把握できるので、ビルドの問題でマイルストーンが遅れることはなくなりました。

    さらなる事例を準備中

    現在、さらに多くのパイロットが進行中で、その事例も順次掲載します。次はあなたのスタジオの番にしませんか?パイロットは、お客様の実際のUnrealプロジェクトのひとつで実施します。