Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ビルド待ちがぐっと短くなる!ビルド高速化サービス IncrediBuildのご紹介

ビルド待ちがぐっと短くなる!ビルド高速化サービス IncrediBuildのご紹介

CEDEC 2022にて発表した内容です

More Decks by クラスメソッド 出村成和

Other Decks in Programming

Transcript

  1. ビルド高速化サービス
    IncrediBuildのご紹介
    営業統括本部 ゲームソリューション部
    出村 成和
    1

    View Slide

  2. 2
    自己紹介
    出村 成和 (DEMURA Narikazu)
    クラスメソッド株式会社
    営業統括本部 ゲームソリューション部所属
    ゲーム開発環境の構築、開発支援を担当
    過去の経歴(抜粋)
    • コンソール機向けゲーム開発
    • フリーランス
    • ソーシャルゲーム開発

    View Slide

  3. 3
    アジェンダ
    • ビルド高速化サービス IncrediBuildとは
    • IncrediBuildがサポートする開発環境
    • IncrediBuild Cloud
    • デモ

    View Slide

  4. 4
    ゲーム開発中
    これらの経験はありませんか?

    View Slide

  5. 5
    ゲーム開発中にありがちな出来事
    帰り間際に仕掛けたビルドが翌朝失敗していた
    修正してビルドをやりなおし
    予定が後ろ倒しに…
    ビルド待ちしてたら退社できるのが終電前
    ビルド完了後に動作確認してたら終電が目前に…

    View Slide

  6. 6
    ビルド時間を短くしたい

    View Slide

  7. 7

    View Slide

  8. 8
    ビルド時間が短くなると
    ゲームのクオリティ向上
    浮いた時間をゲームの質向上に充てられる
    ビルド チェック ビルド
    修正 チェック 修正
    ビルド チェック ビルド
    修正 チェック 修正
    改善前
    ビルド高速化後
    この時間を
    クオリティUPに
    当てられる

    View Slide

  9. 9
    IncrediBuildの構成

    View Slide

  10. 10
    IncrediBuildとは
    ビルド高速化サービス
    複数マシンで分散ビルド
    開発用PC
    分散ビルド環境
    ビルド用PC
    単独ビルド環境
    開発用PC
    開発用PC

    View Slide

  11. 11
    どれだけ早くなるのか

    View Slide

  12. 12
    どれだけ早くなるのか?
    未使用時 Ryzen 9 5900X
    使用時 Ryzen 9 5900X + c5.4xlarge×5(分散ビルドマシン)
    92分
    51分
    UnrealEngine 5ソースコードをビルド
    未使用時
    使用時
    45%削減

    View Slide

  13. 13
    導入事例

    View Slide

  14. 14
    ユークス様の事例
    https://classmethod.jp/cases/yukes/

    View Slide

  15. 15
    サポート環境

    View Slide

  16. 16
    サポート環境(IDE)
    Visual Studio

    View Slide

  17. 17
    サポート環境(コンソール開発環境)
    PlayStation Xbox Nintendo
    Switch

    View Slide

  18. 18
    サポート環境(Toolchain)
    ビルドシステム
    • MSBuild
    • cmake
    • GNU Make
    • Ninja など
    コンパイラ
    • MS C++
    • Clang
    • CUDA など

    View Slide

  19. 19
    サポート環境(UnrealEngine)
    ・コード
    ・シェーダーコンパイル
    アーティストの業務が
    効率化できる
    プログラマの業務が
    効率化できる

    View Slide

  20. 20
    VisualStudioプラグインが存在
    VisualStudioのプロジェクトに直ぐに導入可能
    • プロジェクト変更の必要なし
    • IncrediBuildが利用できるか自動で判断
    • VisualStudio 2010以降対応

    View Slide

  21. 21
    IncrediBuildの動き

    View Slide

  22. 22
    IncrediBuildを構成するソフト&サーバ
    IncrediBuild
    Agent
    Coordinator
    Helper
    Agent
    開発用PC
    ビルド指示を出す
    ビルドの介在役
    ビルド実行部隊

    View Slide

  23. 23
    Incredibuildの動き 1/5
    IncrediBuild
    Agent
    Coordinator
    Helper
    Agent
    開発用PC
    HelperAgentの情報取得

    View Slide

  24. 24
    IncrediBuildの動き 2/5
    IncrediBuild
    Agent
    Coordinator
    Helper
    Agent
    開発用PC
    Coordinatorから
    ビルド依頼に関する情報を
    取得する

    View Slide

  25. 25
    IncrediBuildの動き 3/5
    IncrediBuild
    Agent
    Coordinator
    Helper
    Agent
    開発用PC
    ビルドを依頼する

    View Slide

  26. 26
    IncrediBuildの動き 4/5
    IncrediBuild
    Agent
    Coordinator
    Helper
    Agent
    開発用PC
    ビルドを実行

    View Slide

  27. 27
    IncrediBuildの動き 6/5
    IncrediBuild
    Agent
    Coordinator
    Helper
    Agent
    開発用PC
    ビルド結果を取得する

    View Slide

  28. 28
    多数のPCが必要?
    PCを設置する場所がないのですが…

    View Slide

  29. 29
    IncrediBuild Cloud

    View Slide

  30. AWS Cloud
    30
    IncrediBuild Cloud
    IncrediBuild
    Agent
    開発用PC
    ビルド指示を出す ビルドの介在役 ビルド実行部隊
    AWS上にビルド環境が構築可能
    Coordinator Helper
    Agent

    View Slide

  31. 31
    EC2インスタンスの稼働
    サーバコストを最小に抑える仕組み
    • ビルド時のみ、必要なEC2インスタンスが起動
    • 一定時間未使用ならば自動的にインスタンス停止

    View Slide

  32. AWS Cloud
    32
    IncrediBuild Cloud
    IncrediBuild
    Agent
    開発用PC
    ビルド指示を出す
    ビルド処理待ち
    Coordinator Helper
    Agent

    View Slide

  33. AWS Cloud
    33
    IncrediBuild Cloud
    IncrediBuild
    Agent
    開発用PC
    ビルド指示を出す
    ビルド中
    Coordinator Helper
    Agent

    View Slide

  34. 34
    ビルド用マシンのEC2インスタンス
    スポットインスタンスも利用可能
    • 2種類のEC2インスタンスが利用可能
    利用タイミング 料金について
    オンデマンド
    インスタンス • 常時利用可能 • EC2停止中でも料金が発生
    スポット
    インスタンス
    • 必要な時のみインスタンスを
    確保して利用
    • オンデマンドインスタンスより安価
    • 利用不可の場合もありえる

    View Slide

  35. 35
    IncrediBuildの利用形態

    View Slide

  36. 36
    利用形態は選択可能
    • オンプレミス
    • ハイブリッドクラウド
    • フルクラウド

    View Slide

  37. Office
    37
    オンプレミス
    IncrediBuild
    Agent
    Coordinator
    Helper
    Agent
    開発用PC ビルドの介在役
    ビルド指示を出す
    すべてのPCが同一ネットワーク上にある
    ビルド実行部隊
    IncrediBuild
    Agent

    View Slide

  38. Office
    38
    ハイブリッドクラウド
    Coordinator
    ビルド実行部隊
    HelperAgentのみがEC2インスタンスで構築
    AWS Cloud
    Helper
    Agent
    ビルド指示を出す
    ビルドの介在役
    IncrediBuild
    Agent
    開発用PC
    IncrediBuild
    Agent

    View Slide

  39. AWS Cloud
    39
    フルクラウド
    IncrediBuild
    Agent
    Coordinator
    開発用PC
    ビルド実行部隊
    Coordinator、HelperAgentがEC2インスタンスで構築
    Office or Home
    ビルドの介在役
    Helper
    Agent
    ビルド指示を出す
    IncrediBuild
    Agent

    View Slide

  40. AWS Cloud
    40
    フルクラウド
    IncrediBuild
    Agent
    Coordinator
    開発用PC
    ビルド実行部隊
    Coordinator、HelperAgentがEC2インスタンスで構築
    Office or Home
    ビルドの介在役
    Helper
    Agent
    ビルド指示を出す
    IncrediBuild
    Agent
    ボトルネック
    になりがち

    View Slide

  41. 41
    フルクラウド
    Coordinator
    リモート
    デスクトップPC
    すべてEC2インスタンスを利用してボトルネック回避
    Office or Home
    ビルドの介在役
    AWS Cloud
    Helper
    Agent
    ビルド指示を出す
    IncrediBuild
    Agent
    開発用PC
    ビルド実行部隊

    View Slide

  42. 42
    デモ

    View Slide

  43. 43
    まとめ

    View Slide

  44. 44
    まとめ
    ビルド時間を短縮することが可能
    浮いた時間をゲームの質向上へ当てる
    幅広い開発環境をサポート
    プログラマ、アーティストが恩恵を受けられる
    クラウドを利用した環境構築が可能
    さまざまな運用形態が可能

    View Slide

  45. 45
    AWS様のセッション紹介
    AWSの知識ゼロでバックエンド機能を構築する
    AWS GameKit
    8月24日(水) 16:40 ~ 17:10
    他2セッション

    View Slide

  46. 46

    View Slide