Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
大規模UnityゲームタイトルでのObservabilityへの取り組み事例
Search
WonderPlanet Inc.
June 13, 2023
Programming
0
250
大規模UnityゲームタイトルでのObservabilityへの取り組み事例
WonderPlanet Inc.
June 13, 2023
Tweet
Share
More Decks by WonderPlanet Inc.
See All by WonderPlanet Inc.
CEDEC2022_グローバルモバイルゲームのためのパフォーマンス最適化にチームで向き合う方法/cedec-2022-performance-optimization
wonderplanet
0
190
プロダクションコードの設計とテスト駆動開発入門
wonderplanet
0
1.1k
Other Decks in Programming
See All in Programming
いまから追い上げる、Jetpack Compose トレーニング
nyafunta9858
0
250
Rubyとクリエイティブコーディングの輪の広がり / The Growing Circle of Ruby and Creative Coding
chobishiba
1
260
Jakarta EE meets AI
ivargrimstad
1
360
Hono・Prisma・AWSでGeoなAPI開発
nokonoko1203
5
670
The Shape of a Service Object
inem
0
490
[DroidKaigi 2024] Android ViewからJetpack Composeへ 〜Jetpack Compose移行のすゝめ〜 / From Android View to Jetpack Compose: A Guide to Migration
syarihu
1
260
rails_girls_is_my_gate_to_join_the_ruby_commuinty
maimux2x
0
190
Prolog入門
qnighy
4
990
オートマトン学習しろ / Do automata learning
makenowjust
3
120
GoのIteratorに詳しくなってしまう
inatonix
1
200
Modular Monolith Go Server with GraphQL Federation + gRPC
110y
1
580
React + TextAliveでカッコいいLyric Applicatioinを作ろう!!
tosuri13
0
400
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
691
190k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
32k
What's new in Ruby 2.0
geeforr
340
31k
Building an army of robots
kneath
302
42k
VelocityConf: Rendering Performance Case Studies
addyosmani
322
23k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
41
6.5k
Build your cross-platform service in a week with App Engine
jlugia
228
18k
Making the Leap to Tech Lead
cromwellryan
128
8.8k
Practical Orchestrator
shlominoach
185
10k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
225
22k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
38
9.2k
Building Flexible Design Systems
yeseniaperezcruz
325
37k
Transcript
大規模Unityゲームタイトルでの Observabilityへの取り組み事例 NRUG メディア&エンターテイメント支部Vol.1LT#1 ワンダープラネット株式会社 CTO 吉谷幹人
© WonderPlanet Inc. 2 自己紹介 吉谷幹人(ヨシヤミキト) ワンダープラネット株式会社 CTO @mikito0521 テックリードとして複数プロジェクトのシステムアーキテクチャや、
技術課題マネジメント、組織運営を主導。その後、全社横断組織 EDMO(エドモ)のエンジニアリング担当かつCTOとして、社内の技 術課題管理や基盤整備、社内標準化などに従事。 主な著書 • Unity2021 3D/2Dゲーム開発実践入門 • Unityゲーム プログラミング・バイブル(共著)
© WonderPlanet Inc. 私たちの使命は、世界中の一人でも多くの人々の日常に、家族や友達と「楽しい ね!」と笑いあえるひとときを届けることです。 国・言語・文化・年齢・性別などあらゆる壁を越えて誰もが楽しめるプロダクト・ サービスを創り、コミュニケーションを通じた「笑顔」を世界の隅々まで広げてい きます。 ワンダープラネットのミッション 3
© WonderPlanet Inc. 4 主要タイトル 企画・開発・運営、海外展開まで、一気通貫で手がける 2022年7月リリース 長期運営タイトル
5 モバイルゲーム開発事情とツラミ
© WonderPlanet Inc. 6 半端ないリクエスト数 • 数千〜万単位の秒間リクエスト数 • リリース、イベントピーク •
どこまで来るか予測しにくい サービス ローンチ
© WonderPlanet Inc. 7 面白さの追求 • 合理性からはみ出るロジック • 特定のコラボイベントだけの処理、機構 •
エモい表現 • 仕様通りの実装完了は完了じゃない • +楽しいが必要、答えがない • 運用での機能追加〜長期運営 • 1〜2週間おきのアップデート • 計画外の追加コンテンツの急遽配信 • データの蓄積・肥大化
© WonderPlanet Inc. 8 世界中のモバイル端末で動作させる • ゲームは実行負荷がべらぼうに高い... • 60FSPアクション性高いバトル画面 •
もりもりの演出、画面エフェクトのレンダリング • 数百MB〜数GBのアセット • さまざまな端末での動作保証 • Android端末数5000+ • 世界中のネットワーク環境
© WonderPlanet Inc. 9 昨今のゲーム開発 とにかく読めない、見えない、 不確実なこと が多い、多すぎる... それでも、ビジネス要求には答えていく必要がある •
パフォーマンスの最適化・コスト最適化 • 障害・エラーの抑制、機敏な対応・復旧
© WonderPlanet Inc. 10 インフラからモバイルアプリまで観測可能に インフラ・ネットワーク 監視 サーバーアプリ 監視 モバイルアプリ
監視 顧客体験 監視 オブザーバビリティ データをリアルタイムに 取得し続け、常にシステム全容 把握と問題の予防・ 改善ができる状態
11 ワンプラでの活用と取りくみ
© WonderPlanet Inc. 12 APM (Application Performance Monitoring)の活用 • 負荷試験中のチューニング/ボトルネックのドリルダウン
• 非効率クエリ • アプリロジックの重い処理(繰り返し処理とか) • キャッシュ利用方法 • 運用中の問題への対応 • Transaction重い順
© WonderPlanet Inc. 13 ダッシュボード&アラート • 目的に応じてダッシュボードを作成 • 機能を超えて、時間範囲が連動するのも◯ •
アラートを設定し、Slackに通知
© WonderPlanet Inc. 自社開発 14 モバイルモニタリング向けUnityラッパーを開発 • Android、iOSのSDK • 端末・OS情報、通信時間、クラッシュなど基本情報が取れる
• Unity自作ラッパーを開発 • Unityプロジェクトコードと連携して独自メトリクスも観測できるように New Relic Android SDK New Relic iOS SDK Unityラッパー 標準メトリクスの取得 独自メトリクスの取得
© WonderPlanet Inc. 15 New Relic Mobile SDK Unityラッパー/Observability Kit
© WonderPlanet Inc. 16 モバイルクライアントサイドの計測指標の設計
© WonderPlanet Inc. 17 モバイルモニタリングダッシュボード(一部)
© WonderPlanet Inc. 18 モバイルモニタリングの効果や所感 • Unityライブラリの開発はそこまで難しくはなかった • NativeのSDK導入だけでも結構計測ができる •
指標やダッシュボードを作るのが結構むずい • 以下のようなところは検知できた • 急に増えたクラッシュ=>対応 • 異常にレスポンスが悪いAPI=>対応 • 本格的な活用はこれからというところ
© WonderPlanet Inc. 19 開発→運用 • 開発中盤からモバイルモニタリングSDKの導入を行う • 問題を生み出さない開発 •
問題に気づく運用 • 問題への機敏な対応 • ユーザー体験を測るSLI/SLOを選定中 • チームで追っていくフロー・文化を確立したい
© WonderPlanet Inc. 20 まとめ • ゲーム開発は不確実性の塊、Observability向上がカギと見る • 予測が難しい中での最適化 •
複雑なドメインコード、膨大な端末、通信環境 • 機敏なビジネス的動きへの対応 • サービスを統合して観測 • APMでのボトルネックのドリルダウン&アクション • Unityのプラグインを作ってモバイルも計測 • SLI/SLOを策定中=>チームで追う文化へ