Frag Lab

Incredibuild導入で、Frag Labの開発者は全てのマシンのコアを利用して高速化を体感しています。

Frag Labについて

Frag Lab社はウクライナを拠点とするビデオゲーム開発会社で、AAAランクのオンラインF2P・FPSゲームの開発に情熱を注いでいます。Frag Lab社は有名なFPSタイトルを手掛けており、シューティングゲームのファンの間で、近い将来、人気が出るだろうと予想されています。

Frag Lab社は、Visual Studioを使用してWindowsプラットフォームでC++ゲームクライアントを開発しています。

一方、ゲームサーバーは、WindowsとLinuxの両方のOSに対応して開発されています。WindowsバージョンのサーバーはVisual Studio IDEのために使用されており、LinuxバージョンはClangで構築され、プロダクション環境への展開を目的としています。

課題

「私たちにとっての最大の課題は、開発者のローカル変更のコンパイル時間です。ソースコードの編成方法とC++言語自体が原因で、特に一般的なC ++ヘッダーファイルでの多くの変更により、さまざまな場所で大規模な再構築がトリガーとなっています。分散ビルドシステムがないと、この作業には非常に時間が掛かります。副作用として、コンパイルプロセス中の全体的なCPU使用率が非常に高く、別のタスクに切り替えることがほとんど不可能になるため、開発者の時間が無駄になります。」(Frag Lab社 Sergey氏)

長時間掛かるコンパイルだけがFrag Labの課題ではありませんでした。 スタジオは、Jenkinsを利用したCIシステムも、可能な限り高速にする必要があったのです。

「私たちの開発哲学は、できるだけ早く失敗する、です。私たちは、開発ストリームでミスをし、メインラインストリームからそれを防ぐことを良しとします。 CIシステムの速度は、このアイデアの重要な要素です。PERFORCEへの送信の早い段階で失敗し、開発者がソースコードを変更した直後に、QAチームが自動ビルドを行い再び失敗することを可能にします。」(Frag Lab社 Sergey氏)

「開発者の観点からすると、IncrediBuildを使用した場合と使用しない場合のビルド時間の違いは非常に大きいです」

Sergey Rustamov

Frag Labs

Incredibuildの導入

Incredibuildを使用すると、Frag Labの開発者は、様々なタスクをネットワーク内の他のマシン全ての利用可能なコアに分散し、高速化のメリットを受けることができます。

Incredibuild導入範囲

  • 開発者がローカルの変更をすばやくコンパイルできるようにする
  • CIシステムを高速化して、ビルドおよび自動ビルドアーティファクトの待機時間を短縮

Incredibuildのビルドステップは全てWAFと呼ばれるビルドシステムで管理されています。これは、Make and Buildソリューションを使用して直接Incredibuildと統合されており、開発者はWAF、Ninja、MS Buildなどのツールをすぐに高速化することができます。

Linuxバージョンのゲームサーバーは分散しませんが、コンパイルプロセスを高速化するために、利用可能なすべてのCPUコアをスケーリングできます。

CIサイクルの高速化に関しては、Incredibuildの分散処理テクノロジー利用により、以下が可能です。

  • アクションの送信によってトリガーされた開発ストリームからの自動構築
  • カナリア自動ビルドで壊れたメインビルドを早期に検出
  • メインラインからビルドし、ブランチをリリース

Incredibuildについて、Sergey氏は次のように語っています。
「開発者の観点から、Incredibuildを使用した場合と使用しない場合のビルド時間の違いは非常に大きいです。 開発チームからビルドメトリックを収集して、一般的なビルドアクションの平均時間を確認します。ローカルの変更をビルドするには、Incredibuild利用で平均200秒かかりますが、Incredibuildがない場合は、変更の大きさに応じて15分から数時間まで掛かります。Incredibuildは、高速CIパイプラインを提供する重要なコンポーネントであり、特に自動ビルドフローのために利用しています。」

Incredibuild時間

  • ローカルの変更をビルド

    3.3 mins
    15 mins
With Incredibuild
Without Incredibuild