Skip to main content
Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
EN
Upload
Download free for 30 days
Sign in
Uploaded by
DeNA
45,452 views
大規模ゲーム開発における build 高速化と安定化
DeNA TechCon 2018の登壇資料です。
Technology
◦
Read more
15
Save
Share
Embed
1
/ 22
2
/ 22
Most read
3
/ 22
4
/ 22
5
/ 22
6
/ 22
7
/ 22
8
/ 22
9
/ 22
10
/ 22
Most read
11
/ 22
12
/ 22
13
/ 22
14
/ 22
Most read
15
/ 22
16
/ 22
17
/ 22
18
/ 22
19
/ 22
20
/ 22
More Related Content
PDF
オンラインゲームの仕組みと工夫
by
Yuta Imai
56 slides
889.1K views
PDF
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
by
モノビット エンジン
29 slides
8.8K views
PDF
Unityでパフォーマンスの良いUIを作る為のTips
by
Unity Technologies Japan K.K.
87 slides
86.6K views
PDF
Google Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps Online
by
Google Cloud Platform - Japan
44 slides
3.1K views
PPTX
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
by
Unity Technologies Japan K.K.
112 slides
30.3K views
PPTX
Unityネイティブプラグインマニアクス #denatechcon
by
DeNA
48 slides
16.2K views
PDF
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
by
UnityTechnologiesJapan002
82 slides
73.8K views
PDF
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
by
Unity Technologies Japan K.K.
145 slides
46.9K views
オンラインゲームの仕組みと工夫
by
Yuta Imai
56 slides
889.1K views
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
by
モノビット エンジン
29 slides
8.8K views
Unityでパフォーマンスの良いUIを作る為のTips
by
Unity Technologies Japan K.K.
87 slides
86.6K views
Google Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps Online
by
Google Cloud Platform - Japan
44 slides
3.1K views
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
by
Unity Technologies Japan K.K.
112 slides
30.3K views
Unityネイティブプラグインマニアクス #denatechcon
by
DeNA
48 slides
16.2K views
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
by
UnityTechnologiesJapan002
82 slides
73.8K views
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
by
Unity Technologies Japan K.K.
145 slides
46.9K views
What's hot
PDF
【Unity道場】VectorGraphicsで作る エモい表現
by
Unity Technologies Japan K.K.
62 slides
15.3K views
PDF
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
by
historia_Inc
12 slides
17.8K views
PDF
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
by
UnityTechnologiesJapan002
87 slides
43.3K views
PDF
猫でも分かる UE4の新しいサンプル「Action RPG」について
by
エピック・ゲームズ・ジャパン Epic Games Japan
136 slides
37K views
PDF
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
by
Unity Technologies Japan K.K.
151 slides
17.4K views
PDF
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
by
Unity Technologies Japan K.K.
118 slides
50.2K views
PPTX
UnityでUI開発を高速化した件
by
Grenge, Inc.
38 slides
10.4K views
PDF
60fpsアクションを実現する秘訣を伝授 基礎編
by
エピック・ゲームズ・ジャパン Epic Games Japan
63 slides
31.1K views
PDF
UE4 コリジョン検証 -HitとOverlapイベントが発生する条件について-
by
Tatsuya Iwama
68 slides
24.8K views
PDF
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
by
historia_Inc
158 slides
31.8K views
PDF
MagicOnion~C#でゲームサーバを開発しよう~
by
torisoup
176 slides
30.7K views
PDF
UE4でマルチプレイヤーゲームを作ろう
by
エピック・ゲームズ・ジャパン Epic Games Japan
226 slides
32.9K views
PDF
IL2CPPに関する軽い話
by
Wooram Yang
37 slides
18.7K views
PDF
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
by
NTT Communications Technology Development
30 slides
2.6K views
PPTX
UE4のスレッドの流れとInput Latency改善の仕組み
by
エピック・ゲームズ・ジャパン Epic Games Japan
56 slides
21.1K views
PDF
MagicOnion入門
by
torisoup
37 slides
11.5K views
PDF
Mask Material only in Early Z-passの効果と仕組み
by
エピック・ゲームズ・ジャパン Epic Games Japan
16 slides
9.2K views
PPTX
UE4のためのより良いゲーム設計を理解しよう!
by
Masahiko Nakamura
77 slides
30.9K views
PPTX
UE4ローカライズ事例 (UE4 Localization Deep Dive)
by
エピック・ゲームズ・ジャパン Epic Games Japan
45 slides
21.3K views
PPTX
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
by
sairoutine
54 slides
9.9K views
【Unity道場】VectorGraphicsで作る エモい表現
by
Unity Technologies Japan K.K.
62 slides
15.3K views
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
by
historia_Inc
12 slides
17.8K views
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
by
UnityTechnologiesJapan002
87 slides
43.3K views
猫でも分かる UE4の新しいサンプル「Action RPG」について
by
エピック・ゲームズ・ジャパン Epic Games Japan
136 slides
37K views
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
by
Unity Technologies Japan K.K.
151 slides
17.4K views
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
by
Unity Technologies Japan K.K.
118 slides
50.2K views
UnityでUI開発を高速化した件
by
Grenge, Inc.
38 slides
10.4K views
60fpsアクションを実現する秘訣を伝授 基礎編
by
エピック・ゲームズ・ジャパン Epic Games Japan
63 slides
31.1K views
UE4 コリジョン検証 -HitとOverlapイベントが発生する条件について-
by
Tatsuya Iwama
68 slides
24.8K views
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
by
historia_Inc
158 slides
31.8K views
MagicOnion~C#でゲームサーバを開発しよう~
by
torisoup
176 slides
30.7K views
UE4でマルチプレイヤーゲームを作ろう
by
エピック・ゲームズ・ジャパン Epic Games Japan
226 slides
32.9K views
IL2CPPに関する軽い話
by
Wooram Yang
37 slides
18.7K views
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
by
NTT Communications Technology Development
30 slides
2.6K views
UE4のスレッドの流れとInput Latency改善の仕組み
by
エピック・ゲームズ・ジャパン Epic Games Japan
56 slides
21.1K views
MagicOnion入門
by
torisoup
37 slides
11.5K views
Mask Material only in Early Z-passの効果と仕組み
by
エピック・ゲームズ・ジャパン Epic Games Japan
16 slides
9.2K views
UE4のためのより良いゲーム設計を理解しよう!
by
Masahiko Nakamura
77 slides
30.9K views
UE4ローカライズ事例 (UE4 Localization Deep Dive)
by
エピック・ゲームズ・ジャパン Epic Games Japan
45 slides
21.3K views
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
by
sairoutine
54 slides
9.9K views
Similar to 大規模ゲーム開発における build 高速化と安定化
PDF
Unity開発で週イチ呑み会を支える技術
by
kazuya noshiro
60 slides
6.2K views
PDF
【Unite Tokyo 2019】AWS for Unity Developers
by
UnityTechnologiesJapan002
82 slides
10.7K views
PDF
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
by
UnityTechnologiesJapan002
105 slides
7.9K views
PDF
Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)
by
Amazon Web Services Japan
34 slides
4.8K views
PPTX
Unityで本格戦国シュミレーションRPG 開発
by
dena_study
27 slides
15K views
PPTX
Unity ゲーム開発
by
Katsutoshi Makino
29 slides
17.1K views
PPTX
ゲーム運営の上流工程 -領域を閉じないエンジニア-(DeNA Games Tokyo・岡村謙)
by
DeNA Games Tokyo
23 slides
767 views
PDF
全世界135か国に配信したレーシングゲーム『ACR DRIFT』の制作秘話と技術基盤の構築について
by
CROOZ, inc.
87 slides
20.1K views
PPTX
Deep-Dive into Scriptable Build Pipeline
by
Haruto Otake
40 slides
7.4K views
PPTX
アセットビルドパイプラインについて考えてみる
by
RYUTARO OSAFUNE
29 slides
3.1K views
PPTX
長寿なゲーム事業におけるアプリビルドの効率化
by
gree_tech
116 slides
399 views
PDF
Regional Scrum Gathering Tokyo 2023 Keiji Kikuchi Remote Mobbing
by
Keiji Kikuchi
94 slides
86 views
PPTX
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
by
DeNA
71 slides
5.9K views
PDF
実行速度の最適化のあれこれ プラス おまけ
by
エピック・ゲームズ・ジャパン Epic Games Japan
52 slides
28.6K views
PPTX
メガ Unity ユーザーミートアップ 2012
by
cfm_art
67 slides
8.3K views
PPTX
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 TOKYO
by
Game Tools & Middleware Forum
67 slides
1.9K views
PDF
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
by
KLab Inc. / Tech
15 slides
420 views
PPTX
Unity * スマートフォン開発で学んだこと
by
Katsutoshi Makino
83 slides
15.7K views
PPTX
Jenkinsを使おうよ
by
Yohei Oda
12 slides
1.1K views
PDF
【Unite Tokyo 2019】開発から運用まで、デベロッパーをサポートするUnity Services
by
UnityTechnologiesJapan002
57 slides
9.9K views
Unity開発で週イチ呑み会を支える技術
by
kazuya noshiro
60 slides
6.2K views
【Unite Tokyo 2019】AWS for Unity Developers
by
UnityTechnologiesJapan002
82 slides
10.7K views
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
by
UnityTechnologiesJapan002
105 slides
7.9K views
Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)
by
Amazon Web Services Japan
34 slides
4.8K views
Unityで本格戦国シュミレーションRPG 開発
by
dena_study
27 slides
15K views
Unity ゲーム開発
by
Katsutoshi Makino
29 slides
17.1K views
ゲーム運営の上流工程 -領域を閉じないエンジニア-(DeNA Games Tokyo・岡村謙)
by
DeNA Games Tokyo
23 slides
767 views
全世界135か国に配信したレーシングゲーム『ACR DRIFT』の制作秘話と技術基盤の構築について
by
CROOZ, inc.
87 slides
20.1K views
Deep-Dive into Scriptable Build Pipeline
by
Haruto Otake
40 slides
7.4K views
アセットビルドパイプラインについて考えてみる
by
RYUTARO OSAFUNE
29 slides
3.1K views
長寿なゲーム事業におけるアプリビルドの効率化
by
gree_tech
116 slides
399 views
Regional Scrum Gathering Tokyo 2023 Keiji Kikuchi Remote Mobbing
by
Keiji Kikuchi
94 slides
86 views
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
by
DeNA
71 slides
5.9K views
実行速度の最適化のあれこれ プラス おまけ
by
エピック・ゲームズ・ジャパン Epic Games Japan
52 slides
28.6K views
メガ Unity ユーザーミートアップ 2012
by
cfm_art
67 slides
8.3K views
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 TOKYO
by
Game Tools & Middleware Forum
67 slides
1.9K views
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
by
KLab Inc. / Tech
15 slides
420 views
Unity * スマートフォン開発で学んだこと
by
Katsutoshi Makino
83 slides
15.7K views
Jenkinsを使おうよ
by
Yohei Oda
12 slides
1.1K views
【Unite Tokyo 2019】開発から運用まで、デベロッパーをサポートするUnity Services
by
UnityTechnologiesJapan002
57 slides
9.9K views
More from DeNA
PPTX
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
by
DeNA
74 slides
5.9K views
PPTX
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
by
DeNA
114 slides
7.1K views
PPTX
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
by
DeNA
61 slides
991 views
PDF
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
by
DeNA
75 slides
30.9K views
PPTX
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
by
DeNA
43 slides
1.1K views
PPTX
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
by
DeNA
47 slides
4.1K views
PDF
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
by
DeNA
168 slides
10.2K views
PPTX
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
by
DeNA
98 slides
953 views
PPTX
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
by
DeNA
98 slides
2K views
PDF
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
by
DeNA
74 slides
15.5K views
PDF
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
by
DeNA
77 slides
2.1K views
PDF
DeNA の Slack 導入と活用の事例紹介
by
DeNA
49 slides
1.2K views
PPTX
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
by
DeNA
29 slides
5.7K views
PPTX
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
by
DeNA
63 slides
909 views
PPTX
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
by
DeNA
21 slides
5K views
PPTX
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
by
DeNA
25 slides
3.1K views
PPTX
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
by
DeNA
58 slides
9.7K views
PPTX
MOV お客さま探索ナビの GCP ML開発フローについて
by
DeNA
32 slides
1.6K views
PPTX
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
by
DeNA
26 slides
1.6K views
PPTX
DeNA の AWS アカウント管理とセキュリティ監査自動化
by
DeNA
34 slides
50.4K views
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
by
DeNA
74 slides
5.9K views
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
by
DeNA
114 slides
7.1K views
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
by
DeNA
61 slides
991 views
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
by
DeNA
75 slides
30.9K views
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
by
DeNA
43 slides
1.1K views
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
by
DeNA
47 slides
4.1K views
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
by
DeNA
168 slides
10.2K views
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
by
DeNA
98 slides
953 views
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
by
DeNA
98 slides
2K views
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
by
DeNA
74 slides
15.5K views
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
by
DeNA
77 slides
2.1K views
DeNA の Slack 導入と活用の事例紹介
by
DeNA
49 slides
1.2K views
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
by
DeNA
29 slides
5.7K views
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
by
DeNA
63 slides
909 views
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
by
DeNA
21 slides
5K views
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
by
DeNA
25 slides
3.1K views
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
by
DeNA
58 slides
9.7K views
MOV お客さま探索ナビの GCP ML開発フローについて
by
DeNA
32 slides
1.6K views
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
by
DeNA
26 slides
1.6K views
DeNA の AWS アカウント管理とセキュリティ監査自動化
by
DeNA
34 slides
50.4K views
大規模ゲーム開発における build 高速化と安定化
1.
大規模ゲーム開発における build 高速化と安定化 ゲーム・エンターテインメント事業本部Japanリージョンゲーム事業部 田辺 哲
(Tanabe Satoru) DeNA TechCon 2018
2.
自己紹介 • 田辺 哲
(Satoru Tanabe) • プロフィール • 前職は SIer で金融系システム開発に従事 • 2011 年に DeNA に入社し 、ngCore 立ち上げプロジェクトへの参画を経て、 Mobage Platform などの開発に従事。 • 現在は Unity で内製 3Dアクションバトルの開発に携わり、アクションバト ルの開発からバックエンドシステムの最適化まで幅広く取り組んでいる 1
3.
アジェンダ • 大規模・複雑化するスマートフォンゲーム開発の課題 • Build
を高速化して課題を解決 (Unity・Jenkins) • サーバレスアーキテクチャが主流の中で、最適なデータマイグ レーションを • 大規模開発に適した git ワークフロー 2
4.
大規模・複雑化する スマートフォンゲーム開発の課題 3
5.
大規模・複雑化するスマートフォンゲーム開発の課題 • ライトからコアユーザーも遊べる複雑なゲームスキーム • グラフィックスも
2D から 3D へより高品質へ • 複数の Game イベントを週替わりでリリース 4 コンテンツ・ Asset 大容量化 Build 時間が 膨大 毎日QAを 回せない 品質が悪い ↓ お客様に満足して ゲームをPlay してもらえない
6.
Build 高速化は非常に価値がある 5
7.
Build を高速化して課題を解決 6 次のようなアプローチで高速化した 1. Unity
プロジェクトのリポジトリをキャッシュ 2. AssetBundle の差分 Build 3. 分散・並列 Build 4. その他 • スペックが高いマシンで build しているか • 対象ノードでウィルススキャンが実行されていないか 2、3 について Unity・Jenkins を中心に 実践を交えて紹介したい
8.
最大のボトルネックは Unity AssetBundle
Build 差分 build で高速化しよう 7
9.
Unity AssetBundle Build
高速化方法 8 1. 一度 build した AssetBundle ファイル(.unity3d)と、同時に 生成される Manifest ファイルを git で管理する • e.g) foo_asset.unity3d foo_asset.unity3d.manifest • Unity 側で、Manifest ファイルを見て高速化してくれるため 2. Asset は更新すべきファイルだけ、差分で build する • UnityEditor.BuildPipeline.BuildAssetBundles() を Call するとコストが掛かる。AssetBundle 対象となる フォルダ単位で実ファイルのハッシュ値を計算し、更新すべきファイルだけ差分で build すべき 3. しかし、フォルダの差分を検出するのは単純ではない • → フォルダに含まれる Asset が、別のフォルダの共有 Asset に依存しているから 4. 共有 Asset も含めフォルダの差分を検出するにはどうすればよ いか、がポイントになる
10.
EditorUtility.CollectDependencies() 使う事で、 共有 Asset
も含めフォルダの差分を検出できる (Unity 公式 API) Unity AssetBundle で差分 Build する方法 9 ※ サンプルコード https://goo.gl/iJLBkH Asset が依存する全ての Asset ファイル フォルダ内の全ての実ファイル ハッシュ値が計算出来る AssetBundle 対象フォルダ配下の各種 Asset
11.
Unity AssetBundle Build
高速化の効果 No 処理内容 概算所要 時間(秒) 1 Full build 145 2 unity3d / unity3d.manifest ファイルを git 管理して再利用 54 3 AssetBundle 対象フォルダ単位でハッシュ値を計算し差分 build ※ハッシュ値は git 管理 7 4 No3 を 4 プロセスで並列実行 3 10 検証用の Asset (約 1900 ファイル) を使い、60 ファイルの AssetBundle build (unity3d を生成) を生成した際の効果測定 • Asset 一式 は実キャラクタを利用し、Prefab / Texture / FBX / ScriptableObject / Material / Animation 等が 含まれる • 測定PC : Unity5.4.5 / Mac OSX / CPU:4GHz Intel Core i7 / メモリ 16GB / フラッシュストレージ 500GB • 前提として効果測定中 Asset に変更が無いものとする
12.
Jenkins を活用した分散・並列 Build 11
13.
Jenkins Master/Slave 全体構成 12 膨大な時間 が掛かるの で分散させる 時間が掛か る上、並列 実行すると 不整合が 開発A 開発B 開発C
開発D
14.
Jenkins - Platform
毎に分散 Build 13 • Build Flow Plugin の parallel ブロックを使う事でノード毎に分 散・並列実行できる • 実行ノードの制御は NodeLabel Parameter Plugin を利用 • 下記は Job1 / Job2 を分散・並列 build しつつ完了を待ち合わせる例 • また、Node毎に同じJOBは同時に1つだけ実行するようにしたい 場合は、Throttle Concurrent Builds Plugin が使える • ノード毎に並列実行したいが、 同一JOBは同時に一つだけ実行 するように制御
15.
Jenkins – 同一開発
branch で排他制御 ① 14 • Master を扱う処理は、同一開発 branch で安易に分散・並列 build すると不整合が起きる • 開発ブランチ単位で排他制御しつつ並列実行、高速化が必要 • Groovy でコードを書いて排他制御できる
16.
Jenkins – 同一 branch
で排他制御 ② 15 実行中のJOBのパラメー タを確認して wait する ※ サンプルコード https://goo.gl/Ykw1jW
17.
16 → データマイグレーションの最適化・徹底した自動化が必要 DeNA のゲーム開発は
Sakasho を使い サーバレスアーキテクチャが主流に
18.
4つのフェーズ でマイグレー ションを最適化、 自動化を徹底 17 手動で Merge、 コンフリクト解消 も大変 「マージ祭り」JOB導入 merge 作業を自動化、 人為的なコンフリクト 以外は自動的に解消 手動でデータ更新 不整合が起きる データ
Migration を徹底して自動化 (Gacha / Inventories / Achievement / Ranking/ LoginBonus....)
19.
18 1. パラメータを設定する だけで使い回せるよう 共通化 2. コケた
JOB から容易 に再実行(時にはス キップしたいJOB も ある) 3. cron で時間起動する マイグレーションを自動化する JOB インターフェース
20.
大規模開発に適した git ワークフロー 19
21.
大規模開発に適した git ワークフロー 1.
エンジニア以外も全員 git を使う 2. エンジニアを介さずに、pull request を merge 出来るまで ワークフローを熟考する • 危険なデータが merge されない仕組みを考え抜く • Texture / Animation / FBX / 各種定義ファイル… 全ての Asset は Import する際に、チェックして所定の場所に配置 • キャラクタ、Map、クエスト などもパラメータから自動生成 • Master は Jenkins JOB でスプレッドシートから、自動pull request 3. 事故が起きたら、エンジニアが責任を持って振り返る覚悟でやる 20
22.
まとめ • 大規模化するスマートフォンゲーム開発・運用も、絶えず 改善する事で安定化できる。 • 様々な改善策は毎日考え続けることで、ある日パッと良い 案が降ってくる。粘り強さが必要。 •
スマートフォンゲームはまだまだ大規模化する。お客様へ さらなる Delight を届けるために、我々は走り続けなけれ ばならない。 21