Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
アプデと後方互換性の話
Search
tyanmahou
November 01, 2020
Programming
180
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
アプデと後方互換性の話
Online Game-Tech LT 2020
tyanmahou
November 01, 2020
Other Decks in Programming
See All in Programming
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
290
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
180
Next.js: The final boss of Web Performance
guaca
0
250
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
0
920
Domain-Driven Transformation
hschwentner
2
2.3k
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
260
Agents on Rails - Rails at Scale 2026
irinanazarova
0
560
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
610
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
1k
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
41
2.8k
Docker and Python
trallard
47
4.2k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
460
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
Color Theory Basics | Prateek | Gurzu
gurzu
1
490
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
Ethics towards AI in product and experience design
skipperchong
2
430
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
940
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
320
For a Future-Friendly Web
brad_frost
184
10k
The browser strikes back
jonoalderson
0
1.8k
Transcript
アプデと後方互換性の話 Online Game-Tech LT 2020 @tyanmahou
自己紹介 名前:マホウ Twitter:@tyanmahou 好きな言語:C++20 ゲーム業界歴:3年目 ➢家庭用ゲーム 半年 ➢モバイルソーシャル 2年 Online
Game-Tech LT 2020 1
今回話すこと ゲームをアップデートしていくうえで考える 後方互換性の話 世に出ているゲームでは当たり前の話 具体例にふれつつ、何を考える必要があるか見ていく Online Game-Tech LT 2020 2
今回のゴール 後方互換性とは何か知る 後方互換性を意識できるようになること Online Game-Tech LT 2020 3
後方互換性とは 新しい製品が、既存の製品も扱える性質 下位互換性 ともいう ➡新しいバージョンがでても古いバージョンも動く ➢PHP8でPHP7のコードは正常に動かない ✖ ➢PS5でPS4のゲームはだいたい遊べる 〇(△) Online
Game-Tech LT 2020 4
後方互換性とは アップデートをしていくゲームでは 後方互換性のことを必ず考える必要がある ➢運営型ソーシャルゲーム ➢DLCがある家庭用ゲーム ➢個人製作のゲームをアップデート ➢etc. Online Game-Tech LT
2020 5
後方互換性を意識しないと どうなってしまうのか? Online Game-Tech LT 2020 6
後方互換性を意識しないと Online Game-Tech LT 2020 7 通信 ver1.0 ver2.0 ・未アプデ
・新キャラの データなし ・最新版 ・新キャラの データあり バージョンの違う2つのアプリで通信対戦したら…
後方互換性を意識しないと Online Game-Tech LT 2020 8 通信 ver1.0 ver2.0 ・未アプデ
・新キャラの データなし ・最新版 ・新キャラの データあり 最悪クラッシュしてしまうかも…
不具合になるような例 別バージョンのアプリ間での通信 ➢PvP、協力などのマルチプレイでマッチングなど 複数バージョンのアプリで同じデータを使用 ➢データベースのテーブル構造の変化など ➢セーブデータ引き継ぎなど 複数バージョンのアプリで同じサーバーAPIを使用 ➢エンドポイントの変化 ➢レスポンスの変化 Online
Game-Tech LT 2020 9
バージョン共存に注意する 複数バージョンの共存への対策として 何をしたらいいの? ➢複数のバージョンが共存しないようにする • 古いバージョンがいなければ問題ない ➢後方互換性を保つ • 新しいデータ/APIを古いアプリが使用しても問題ないように Online
Game-Tech LT 2020 10
バージョン共存を防ぐ 1 マルチプレイのマッチング対象を アプリバージョンによって候補から外す Online Game-Tech LT 2020 11 ver1.0
ver2.0 ✖
バージョン共存を防ぐ 2 メンテ + 強制アップデート メンテ開けに古いアプリでログインしようとすると 最新版あるからアプデしろと弾かれる Online Game-Tech LT
2020 12 メンテ開始 アプリ更新 強制アップデート登録 メンテ解除 v1 v2
バージョン共存を防ぐ 2 メンテ + 強制アップデート ➢多くのソシャゲで使われてる対処 ➢ログインさせないのでゲーム上で複数バージョンが共存しない ➢メンテが必要なことがデメリット • アプリ更新がくるまでメンテは開けられないので長引く可能性も
• 特に、ソシャゲの運営ではKPI(数字)を大切にしているので ログインできない時間を少なくしたい Online Game-Tech LT 2020 13
後方互換性を保つ 1 • 注意:アプリ更新はプラットフォーム側のハンドリング 強制アプデとタイミングを合わせられない Online Game-Tech LT 2020 14
サーバーAPIアプデ アプリ更新 強制アップデート登録 v1 v2 v1 v2 複数バージョンが共存
後方互換性を保つ 1 APIレスポンスに気を付ける Online Game-Tech LT 2020 15 { “login_bonus”:
[], } サーバーAPI v1 /api/login ver1.0 “login_bonus” を受け取る v1ではデイリーログボ しかなかったけど… v2で新機能! マンスリーログボを 実装お願いします!
後方互換性を保つ 1 APIレスポンスに気を付ける Online Game-Tech LT 2020 16 { “login_bonus”:
[], } サーバーAPI v1 /api/login { “daily_bonus”: [], “monthly_bonus”: [], } サーバーAPI v2 /api/login APIアップデート キーのリネームが起きた ver1.0 ver2.0 “daily_bonus” を受け取る “login_bonus”が消えてる
後方互換性を保つ 1 APIレスポンスに気を付ける Online Game-Tech LT 2020 17 { “login_bonus”:
[], } サーバーAPI v1 /api/login { “login_bonus”: [], // 後方互換性のため残す “daily_bonus”: [], “monthly_bonus”: [], } サーバーAPI v2 /api/login ver1.0 ver2.0 “daily_bonus” を受け取る “login_bonus”が残ってるので 正常に動作 APIアップデート キーのリネームが起きた
後方互換性を保つ 2 APIエンドポイントを分ける Online Game-Tech LT 2020 18 { “login_bonus”:
[], } サーバーAPI v1 v1/api/login { “daily_bonus”: [], “monthly_bonus”: [], } サーバーAPI v2 v2/api/login ver1.0 ver2.0 “daily_bonus” を受け取る APIアップデート “login_bonus” を受け取る
後方互換性を保つ 2 APIエンドポイントを分ける ➢古いバージョンのユーザーが新機能を使用できない 運営的に問題ないか注意は必要 Online Game-Tech LT 2020 19
ver1.0 マンスリーログボ もらえてないんだけど?? 詫び石はよ(怒)
いつ考えればいいか 後方互換性の考慮はローンチ前からすべき ➢アプデの時に考えていてはもう手遅れになるかも ➢世に出した過去のコードは変えられない Online Game-Tech LT 2020 20
まとめ アプデするなら後方互換性を必ず考える 後方互換性の考慮はローンチ前からすべき 複数バージョン共存に注意する ➢複数バージョンが共存しないようにする ➢後方互換性を保つ Online Game-Tech LT 2020
21
ご清聴ありがとうございました Online Game-Tech LT 2020 22