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
『アナザーエデン 時空を超える猫』国内海外同時運営実現への道のり ~別々で開発されたアプリを安...
Search
gree_tech
PRO
October 25, 2024
Video
Technology
1.1k
1
Share
『アナザーエデン 時空を超える猫』国内海外同時運営実現への道のり ~別々で開発されたアプリを安定して同時リリースするまでの取り組み~
GREE Tech Conference 2024で発表された資料です。
https://techcon.gree.jp/2024/session/TrackB-2
gree_tech
PRO
October 25, 2024
Video
More Decks by gree_tech
See All by gree_tech
変わるもの、変わらないもの :OSSアーキテクチャで実現する持続可能なシステム
gree_tech
PRO
0
4.2k
マネジメントに役立つ Google Cloud
gree_tech
PRO
0
51
今この時代に技術とどう向き合うべきか
gree_tech
PRO
3
2.6k
生成AIを開発組織にインストールするために: REALITYにおけるガバナンス・技術・文化へのアプローチ
gree_tech
PRO
0
360
安く・手軽に・現場発 既存資産を生かすSlack×AI検索Botの作り方
gree_tech
PRO
0
360
生成AIを安心して活用するために──「情報セキュリティガイドライン」策定とポイント
gree_tech
PRO
1
2.1k
あうもんと学ぶGenAIOps
gree_tech
PRO
0
480
MVP開発における生成AIの活用と導入事例
gree_tech
PRO
0
500
機械学習・生成AIが拓く事業価値創出の最前線
gree_tech
PRO
0
370
Other Decks in Technology
See All in Technology
Agents CLI と Gemini Enterprise Agent Platform で マルチエージェント開発が楽しくなる!
kaz1437
0
220
独断と偏見で試してみる、 シングル or マルチエージェント どっちがいいの?
shichijoyuhi
1
230
The 7 pitfalls of AI
ufried
0
170
データ定義の混乱と戦う 〜 管理会計と財務会計 〜
wonohe
0
170
【技術書典20】OpenFOAM(自宅で深める流体解析)流れと熱移動(2)
kamakiri1225
0
360
AIはハッカーを減らすのか、増やすのか?──現役ホワイトハッカーから見るAI時代のリアル【MEGU-Meet】
cscengineer
PRO
0
260
知ってた?JavaScriptの"正しさ"を検証するテストが5万以上もあること(Test262)
riyaamemiya
0
130
プラットフォームエンジニアリングの実践 - AWS コンテナサービスで構築する社内プラットフォーム / AWS Containers Platform Meetup #1
literalice
1
230
サービスの信頼性を高めるため、形骸化した「プロダクションミーティング」を立て直すまでの取り組み
stefafafan
0
210
「誰一人取り残されない」 AIエージェント時代のプロダクト設計思想 Product Management Summit 2026
mizushimac
1
2.7k
GitHub Copilot CLI と VS Code Agent Mode の使い分け
tomokusaba
0
130
変化の激しい時代をゴキゲンに生き抜くために 〜ストレスマネジメントのススメ〜
kakehashi
PRO
3
690
Featured
See All Featured
The SEO identity crisis: Don't let AI make you average
varn
0
460
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.5k
Practical Orchestrator
shlominoach
191
11k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
110
Paper Plane
katiecoart
PRO
1
49k
YesSQL, Process and Tooling at Scale
rocio
174
15k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
180
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
130
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.4k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
70
39k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
270
Transcript
『アナザーエデン 時空を超える猫』 国内海外同時運営実現への道のり ~別々で開発されたアプリを安定して 同時リリースするまでの取り組み~ 株式会社WFS クライアントエンジニア 三嶽 寛人
三嶽 寛人 • グリー株式会社に2020年4月新卒入社。 • 株式会社WFSにて『アナザーエデン 時空を超える 猫』のクライアントエンジニアとしてクライアント 開発やビルドパイプライン基盤の改善などに従事 し、直近1年はメインプログラマーとしてエンジニ
ア組織を技術的に主導。現在は新規タイトルの開発 を担当。 株式会社WFS クライアントエンジニア 2
セッション内容 1. 『アナザーエデン 時空を超える猫』の運営体制について a. アナザーエデンの紹介 b. アナザーエデン国内海外同時運営前の体制 c. アナザーエデン国内海外同時運営実現のための課題
2. 『アナザーエデン 時空を超える猫』国内海外同時運営のための課題解決 3
セッション内容 1. 『アナザーエデン 時空を超える猫』の運営体制について a. アナザーエデンの紹介 b. アナザーエデン国内海外同時運営前の体制 c. アナザーエデン国内海外同時運営実現のための課題
2. 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題の解決 4
アナザーエデンの紹介 • シングルプレイ専用RPG • 2017/04/12 正式公開 • iOS / Android
/ Windows でプレイ可能 • 日本 / アジア(※)/ 北米 / 欧州 エリアで 配信 ※ 中国国内向けはX.D. Network Inc. より配信 5 『アナザーエデン 時空を超える猫』の運営体制について
アナザーエデンの開発環境 • CI/CD ツール ◦ Jenkins を利用 • バージョン管理 ◦
Github を利用 • ミドルウェア ◦ ゲームエンジンは cocos2d-x を採用 ◦ 各種ライブラリは以下の通り ▪ アニメーション:Spine ▪ エフェクト:LWF(グリー内製ライブラリ) ▪ ムービー:CRI Sofdec ▪ スクリプト:Lua 6 『アナザーエデン 時空を超える猫』の運営体制について
アナザーエデンのこれまでの歩み 7 2017年4月 2021年3月 2019年1月 国内モバイル版サービス開始 (iOS/Android) 海外PC版サービス開始 国内PC版 サービス開始
2021年12月 海外モバイル版サービス開始 (iOS/Android, アジア/北米/欧州) 『アナザーエデン 時空を超える猫』の運営体制について 2024年1月 国内海外同コンテンツ 同時リリース開始
アナザーエデン国内海外同時運営前の体制 • スケジュールに合わせて最新のコンテンツを実装してリリース 8 • 「ANOTHER EDEN」として、国内版「アナザーエデン」とは別アプリとしてリリース • 国内で実装したコンテンツを封鎖しつつ定期的に取り込む •
数バージョン前のコンテンツを開放し、各言語毎に翻訳したコンテンツをリリース ◦ 海外限定のキャンペーン等、独自のコンテンツも実装して同時リリース 国内版 海外版 『アナザーエデン 時空を超える猫』の運営体制について
アナザーエデン国内海外同時運営前の体制 9 コンテンツA リリース コンテンツB リリース コンテンツC リリース コンテンツA+α リリース
コンテンツB+α リリース A封鎖 B封鎖 C封鎖 ー 海外へ変更内容取り込み ー リリースタイミングのずれ 国内版 海外版 『アナザーエデン 時空を超える猫』の運営体制について
10 アナザーエデン国内海外同時運営前の体制での課題 1. 仕組みが複雑化 2. 作業時間の増大 国内 -> 海外への 取り込み
と リリースタイミングが異なる 今の国内版はバージョンAだから 海外版はバージョンAを 取り込みつつバージョンBまでをリリースして、そのため にコンテンツCは封鎖する必要あるから、、、 色々な情報を同時に管理 する必要があって大 変、、、 海外版必須作業 追加作業 • 国内版取り込み • 翻訳作業 • 海外版独自実装 • ….. • 特定コンテンツ封鎖開放 • 国内版と別日に海外版リリース作業 + 『アナザーエデン 時空を超える猫』の運営体制について
アナザーエデン国内海外運営を統合し理想体制へ 11 コンテンツA リリース コンテンツB リリース コンテンツC リリース 国内版 海外版
コンテンツA+α リリース コンテンツB+α リリース コンテンツC+α リリース リリースタイミングを合わせて不要なコストを減らす 『アナザーエデン 時空を超える猫』の運営体制について
12 アナザーエデン国内海外同時運営を目指すために • 翻訳作業時間の短縮化(翻訳作業フロー改善) ◦ 国内版開発完了と同時に翻訳作業も完了しておく必要がある • 開発環境ビルドの効率化(開発環境ビルドパイプライン改善) ◦ 国内版海外版それぞれの作業バッファの確保を行う必要がある
• リリース作業の効率化(リリース作業フロー改善) ◦ 同日に国内海外リリース作業を行えるようにする必要がある 『アナザーエデン 時空を超える猫』の運営体制について
セッション内容 1. 『アナザーエデン 時空を超える猫』の運営体制について a. アナザーエデンの紹介 b. アナザーエデン国内海外同時運営前の体制 c. アナザーエデン国内海外同時運営実現のための課題
2. 『アナザーエデン 時空を超える猫』国内海外同時運営のための課題解決 a. 翻訳作業フロー b. 開発環境ビルドパイプライン c. リリース作業フロー 13
翻訳作業フロー 14
翻訳作業フロー(改善前) 15 入稿 アセットデータ ゲーム用 アセットデータ バージョン単位の 未翻訳データ リリース間近の 未翻訳データ
翻訳済みデータ gitアップロード用 翻訳データ memoQ クラウドサーバ Box Drive 作業者PC 翻訳済みデータを Box Drive へアップロード アップロード アセットビルド 未翻訳のテキストを抽出 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題 ・翻訳データの verify ・Github へ自動アップロード バージョン単位の 翻訳データ 翻訳済みデータ 同期 バージョン単位の翻訳データ + gitアップロード用翻訳データ 作業完了後にmemoQサーバへ同期
翻訳作業フロー(改善前) 16 入稿 アセットデータ ゲーム用 アセットデータ バージョン単位の 未翻訳データ リリース間近の 未翻訳データ
翻訳済みデータ gitアップロード用 翻訳データ memoQ クラウドサーバ Box Drive 作業者PC 翻訳済みデータを Box Drive へアップロード アップロード アセットビルド 未翻訳のテキストを抽出 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題 ・翻訳データの verify ・Github へ自動アップロード バージョン単位の 翻訳データ 翻訳済みデータ バージョン単位の翻訳データ + gitアップロード用翻訳データ 作業完了後にmemoQサーバへ同期 同期
翻訳作業フロー(改善前) 17 入稿 アセットデータ ゲーム用 アセットデータ バージョン単位の 未翻訳データ リリース間近の 未翻訳データ
翻訳済みデータ gitアップロード用 翻訳データ memoQ クラウドサーバ Box Drive 作業者PC 翻訳済みデータを Box Drive へアップロード アップロード アセットビルド 未翻訳のテキストを抽出 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題 ・翻訳データの verify ・Github へ自動アップロード バージョン単位の 翻訳データ 翻訳済みデータ バージョン単位の翻訳データ + gitアップロード用翻訳データ 作業完了後にmemoQサーバへ同期 同期
翻訳作業フロー(改善前) 18 入稿 アセットデータ ゲーム用 アセットデータ バージョン単位の 未翻訳データ リリース間近の 未翻訳データ
翻訳済みデータ gitアップロード用 翻訳データ memoQ クラウドサーバ Box Drive 作業者PC 翻訳済みデータを Box Drive へアップロード アップロード アセットビルド 未翻訳のテキストを抽出 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題 ・翻訳データの verify ・Github へ自動アップロード バージョン単位の 翻訳データ 翻訳済みデータ バージョン単位の翻訳データ + gitアップロード用翻訳データ 作業完了後にmemoQサーバへ同期 同期
翻訳作業フロー(改善前) 19 入稿 アセットデータ ゲーム用 アセットデータ バージョン単位の 未翻訳データ リリース間近の 未翻訳データ
翻訳済みデータ gitアップロード用 翻訳データ memoQ クラウドサーバ Box Drive 作業者PC 翻訳済みデータを Box Drive へアップロード アップロード アセットビルド 未翻訳のテキストを抽出 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題 ・翻訳データの verify ・Github へ自動アップロード バージョン単位の 翻訳データ 翻訳済みデータ バージョン単位の翻訳データ + gitアップロード用翻訳データ 作業完了後にmemoQサーバへ同期 同期
翻訳作業フロー(改善前) 20 入稿 アセットデータ ゲーム用 アセットデータ バージョン単位の 未翻訳データ リリース間近の 未翻訳データ
翻訳済みデータ gitアップロード用 翻訳データ memoQ クラウドサーバ Box Drive 作業者PC 翻訳済みデータを Box Drive へアップロード アップロード アセットビルド 未翻訳のテキストを抽出 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題 ・翻訳データの verify ・Github へ自動アップロード バージョン単位の 翻訳データ 翻訳済みデータ バージョン単位の翻訳データ + gitアップロード用翻訳データ 作業完了後にmemoQサーバへ同期 • 手作業が多く、各作業共に数時間かかっているため、 ミスも発生しやすかった • 未翻訳テキスト検出の精度が悪く、手戻りが毎回発生 同期
21 入稿 アセットデータ ゲーム用 アセットデータ バージョン単位の 未翻訳データ リリース間近の 未翻訳データ 翻訳済みデータ
gitアップロード用 翻訳データ memoQ クラウドサーバ Box Drive 作業者PC 翻訳済みデータを Box Drive へアップロード アップロード アセットビルド 未翻訳のテキストを抽出 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題 バージョン単位の 翻訳データ 翻訳済みデータ バージョン単位の翻訳データ + gitアップロード用翻訳データ 作業完了後にmemoQサーバへ同期 翻訳作業フロー(改善後) 自動化 Github へ自動アップロード (翻訳データの verifyステップを削除) 自動化 自動抽出の精度向上 • 手動作業の一部を自動化し、不要処理は削除 • 未翻訳抽出の精度を向上し、手戻りを最小限に抑制 • 改善したフロー内で最大90%の工数削減に成功 同期
手動作業フローの自動化 22 入稿 アセットデータ ゲーム用 アセットデータ バージョン単位の 未翻訳データ リリース間近の 未翻訳データ
翻訳済みデータ gitアップロード用 翻訳データ memoQ クラウドサーバ Box Drive 作業者PC 翻訳済みデータを Box Drive へアップロード アップロード アセットビルド 未翻訳のテキストを抽出 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題 ・翻訳データの verify ・Github へ自動アップロード バージョン単位の 翻訳データ 翻訳済みデータ バージョン単位の翻訳データ + gitアップロード用翻訳データ 作業完了後にmemoQサーバへ同期 同期
リリース間近の 未翻訳データ 23 手動作業フローの自動化 リリース直近の未翻訳データのmemoQクラウドサーバアップロード自動化 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題 memoQ クラウドサーバ •
Box Driveにアップロードされているデータ と memoQクラウドサーバにアップ ロードされているデータのマージ作業の一連作業を自動化 • memoQをGUI自動操作し、翻訳済みデータをエクスポートして未翻訳データと マージ 翻訳済みデータ リリース直近の未翻訳データ + 翻訳済みデータ memoQ クラウドサーバ
手動作業フローの自動化 リリース直近の未翻訳データのmemoQクラウドサーバアップロード自動化 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題 • 自動化部分でGUIマクロを採用 ◦ memoQのサーバ通信API ▪ 社内ですぐに利用できない状態で、短い限られた期間での対応困難
▪ 自動化に伴う、処理結果が変わらないことの検証コスト大 リリース間近の 未翻訳データ memoQ クラウドサーバ 翻訳済みデータ リリース直近の未翻訳データ + 翻訳済みデータ memoQ クラウドサーバ
25 自動未翻訳検出の精度向上 話者は異なるが、同じセリフの箇所を別セリフとみなして未翻訳自動検出 ありがとう! ありがとう! 未翻訳データ(例) • 「ありがとう!」 • 「ありがとう!」
『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題
開発環境ビルドパイプライン 26
開発環境のビルドパイプライン(改善前) 27 クライアント ソースコード 入稿 アセットデータ サーバ ソースコード ゲーム用 アセットデータ
アセットビルド Amazon S3 Amazon DynamoDB ゲームサーバ アセットデプロイ サーバアセット セットアップ クライアントアプリ パッケージ(ipa/aab/…) Schema定義から 一部サーバコードを自動生成 サーバデプロイ ストア等からインストール CDNを介して アセットDL 通信 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題 クライアント アプリビルド
開発環境のビルドパイプライン(改善前) 28 クライアント ソースコード 入稿 アセットデータ サーバ ソースコード ゲーム用 アセットデータ
アセットビルド Amazon S3 Amazon DynamoDB ゲームサーバ アセットデプロイ サーバアセット セットアップ クライアントアプリ パッケージ(ipa/aab/…) Schema定義から 一部サーバコードを自動生成 サーバデプロイ ストア等からインストール CDNを介して アセットDL 通信 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題 クライアント アプリビルド
開発環境のビルドパイプライン(改善前) 29 クライアント ソースコード 入稿 アセットデータ サーバ ソースコード ゲーム用 アセットデータ
アセットビルド Amazon S3 Amazon DynamoDB ゲームサーバ アセットデプロイ サーバアセット セットアップ クライアントアプリ パッケージ(ipa/aab/…) Schema定義から 一部サーバコードを自動生成 サーバデプロイ ストア等からインストール CDNを介して アセットDL 通信 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題 クライアント アプリビルド
開発環境のビルドパイプライン(改善前) 30 クライアント ソースコード 入稿 アセットデータ サーバ ソースコード ゲーム用 アセットデータ
アセットビルド Amazon S3 Amazon DynamoDB ゲームサーバ アセットデプロイ サーバアセット セットアップ クライアントアプリ パッケージ(ipa/aab/…) Schema定義から 一部サーバコードを自動生成 サーバデプロイ ストア等からインストール CDNを介して アセットDL 通信 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題 クライアント アプリビルド
開発環境のビルドパイプライン(改善前) 31 クライアント ソースコード 入稿 アセットデータ サーバ ソースコード ゲーム用 アセットデータ
アセットビルド Amazon S3 Amazon DynamoDB ゲームサーバ アセットデプロイ サーバアセット セットアップ クライアントアプリ パッケージ(ipa/aab/…) Schema定義から 一部サーバコードを自動生成 サーバデプロイ ストア等からインストール CDNを介して アセットDL 通信 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題 クライアント アプリビルド 毎ビルド最大数時間かかっており、 ボトルネックになっている
開発環境のビルドパイプライン(改善後) 32 クライアント ソースコード 入稿 アセットデータ サーバ ソースコード ゲーム用 アセットデータ
アセットビルド Amazon S3 Amazon DynamoDB ゲームサーバ アセットデプロイ サーバアセット セットアップ クライアントアプリ パッケージ(ipa/aab/…) クライアント アプリビルド Schema定義から 一部サーバコードを自動生成 サーバデプロイ ストア等からインストール CDNを介して アセットDL 通信 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題 50%削減 20%削減 50%削減
開発環境のビルドパイプライン改善 33 • 「定期的に各マシンのGitローカルリポジトリ内で自動fetch」を採用 ◦ パーシャルクローン / シャロークローン ▪ 履歴を参照する処理等に不向きだったりビルドスクリプトが
複雑になる。 ◦ Git Scalar ▪ 設定管理コストや、git操作の結果が変わらないことの検証 コストが大きかった。 1 . ビルド処理の最適化 • リポジトリの最新化等、特定処理に時間がかかっていた。 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題
開発環境のビルドパイプライン改善 34 • macOSのビルドマシンは全て Intel -> Apple Silicon 搭載のマシンに変更 •
マシン変更に伴って動かなくなってしまったツールやスクリプトは自作して対応 2 . ビルドマシンをよりハイスペックなモデルに変更 • 各ビルド物理マシンがかなり前のモデルのまま • ビルドスクリプトの最適化にも限界が見えていた 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題
リリース作業フロー 35
リリース作業(改善前) ・・・ ・・・ 国内版作業者 海外版作業者 • 国内と海外で全く同じ作業がいくつも存在していた。 • 各リージョン毎 かつ
各リリースバージョン毎 に作業者をローテーションで立て、 それぞれ別日にリリース作業を行っていた。 36 作業1 作業3 作業4 作業5 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題 作業1 作業2 作業3 作業5 数日後 作業内容被っている
37 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題 リリース作業(改善後) ・・・ • デプロイジョブを待つだけ等、手動作業が必要でないものは国内海外で同時並行作 業としてまとめることができた。 • バージョン単位のみで担当者をローテーション組みすることができ、国内海外で同
日にリリース作業ができるようになった。 • 同日作業可能になり、作業日数がほぼ半分になったため、リリース作業以外の開発 作業バッファを当てることも可能になった。 作業1 作業2 国内手動作業3 作業5 作業4 国内 & 海外 作業者 海外手動作業3
リリース作業改善 38 1 . 国内と海外でほとんど同じ作業のJenkinsジョブを1つに統合 国内のデプロイジョブ 海外のデプロイジョブ それぞれ別々で実行 国内のデプロイジョブ 海外のデプロイジョブ
• まとめて一回で実行 • ボタンを押す回数が減り、ミス誘発率減 wrapperジョブ 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題 検討した項目 • 一から国内海外同時実行用のスクリプトを組む ◦ 影響範囲が大きい
リリース作業改善 39 2 . Jenkins Post build task を利用したデプロイ完了時の自動通知 ジョブ終わったよ!
作業者 お、ジョブ終わったから 次の作業進もうかな Job 『アナザーエデン 時空を超える猫』国内海外同時運営の技術的課題 • 常にJenkins Consoleを監視する必要が なくなり、作業効率UP 検討した項目 • Google Apps Script を用いたジョブ監視 ◦ Jenkinsとの連携時の複雑さ や 管理コストが Jenkins Post build task より大きい
まとめ • ビルドパイプラインやワークフローを見直し、ボトルネックを改善する ことで、従来よりも効率よく開発運用する体制が実現できた • 今回の知見を活かし、『アナザーエデン 時空を超える猫』の運営をより スマートなものにし、10年を超えて続くIPへ 40 これからも新しい挑戦をし続けていきます!
ご清聴ありがとうございました 41
None