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
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
Search
gree_tech
PRO
November 11, 2021
Technology
0
530
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
GREE Tech Conference 2021 で発表された資料です。
https://techcon.gree.jp/2021/session/Session-7
gree_tech
PRO
November 11, 2021
Tweet
Share
More Decks by gree_tech
See All by gree_tech
REALITY株式会社における開発生産性向上の取り組み: 失敗と成功から学んだこと
gree_tech
PRO
2
130
『ヘブンバーンズレッド』におけるフィールドギミックの裏側
gree_tech
PRO
2
90
セキュリティインシデント対応の体制・運用の試行錯誤 / greetechcon2024-session-a1
gree_tech
PRO
1
95
『アナザーエデン 時空を超える猫』国内海外同時運営実現への道のり ~別々で開発されたアプリを安定して同時リリースするまでの取り組み~
gree_tech
PRO
1
78
『アサルトリリィ Last Bullet』におけるクラウドストリーミング技術を用いたブラウザゲーム化の紹介
gree_tech
PRO
1
88
UnityによるPCアプリの新しい選択肢。「PC版 Google Play Games」への対応について
gree_tech
PRO
1
110
実機ビルドのエラーによる検証ブロッカーを0に!『ヘブンバーンズレッド』のスモークテスト自動化の取り組み
gree_tech
PRO
1
110
"ゲームQA業界の技術向上を目指す! 会社を超えた研究会の取り組み"
gree_tech
PRO
1
140
Jamstack でリニューアルするグリーグループのメディア
gree_tech
PRO
2
300
Other Decks in Technology
See All in Technology
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
230
【若手エンジニア応援LT会】ソフトウェアを学んできた私がインフラエンジニアを目指した理由
kazushi_ohata
0
150
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
120
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
370
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
4
1.3k
VideoMamba: State Space Model for Efficient Video Understanding
chou500
0
190
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
300
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
4
530
Amazon CloudWatch Network Monitor のススメ
yuki_ink
1
200
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
tohutohu
3
360
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
940
フルカイテン株式会社 採用資料
fullkaiten
0
40k
Featured
See All Featured
Side Projects
sachag
452
42k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
Gamification - CAS2011
davidbonilla
80
5k
Building Applications with DynamoDB
mza
90
6.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
Agile that works and the tools we love
rasmusluckow
327
21k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Music & Morning Musume
bryan
46
6.2k
Transcript
株式会社WFS リードエンジニア 梅木 隼 株式会社WFS 森 雅希 アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
• 氏名 • 梅木 隼 • 経歴 • 2014年から Wright
Flyer Studios にて ネイティブゲームの開発運営を担当。 • アナザーエデンでは、クライアント開発、 ビルドパイプライン開発などに従事。 (過去エンジニアマネージャー、 メインプログラマーなども担当) 自己紹介(1/2) 2
• 氏名 • 森 雅希 • 経歴 • 2019年にグリー株式会社に新卒入社しアナ ザーエデンチームに配属。
• クライアントエンジニアとしてクライアン ト開発から運用効率化まで幅広く担当。 現在はビルドパイプラインを担当。 自己紹介(2/2) 3
1.Wright Flyer Studios における マルチプラットフォーム展開の取り組み 2.アナザーエデンPC版開発における技術的課題 セッション内容 4
概要 2014年2月21日グリーのスマートフォン向けアプリ開発を担う新スタジオと して株式会社Wright Flyer Studios(現 株式会社WFS)を設立。2020年7月 よりグリーのゲーム事業内にあるWright Flyer Studios事業をWFSに移管。 事業
コンテンツ事業, デジタルソリューション事業, プラットフォーム事業 ビジョン 新しい驚きを、世界中の人へ。 Wright Flyer Studios の紹介 5
アナザーエデンの紹介 6 ゲームジャンル シングルプレイ専用RPG リリース 2017/04/12正式公開 配信エリア 日本, アジア(※), 北米,
欧州 配信言語 日本語, 英語, 韓国語, 中国語(繁体字, 簡体字) 配信端末 iOS, Android, Windows/Steam(海外), Windows/自社配信(国内・開発中) ※中国国内向けはX.D. Network Inc.より配信
None
アナザーエデンPC版リリースの経緯 8 市場背景 • モバイル向けゲーム • グラフィックのリッチ化 • 開発の大規模化・開発費の高騰 •
PCゲーム配信PFの盛り上がり 新たなユーザー獲得チャネルの開拓 • 国内市場からグローバル市場へ • モバイル以外のプラットフォームへ
アナザーエデンのこれまでの歩み アナザーエデンPC版リリースの経緯 9 2017年4月 2021年3月 2021年4Q 2019年1月 国内モバイル版サービス開始 (iOS/Android) 海外PC版サービス開始
(Windows/Steam) 海外モバイル版サービス開始 (iOS/Android, アジア※/北米/欧州) ※中国国内除く 国内PC版 サービス開始予定 (Windows/自社配信)
1.Wright Flyer Studios における マルチプラットフォーム展開の取り組み 2.アナザーエデンPC版における技術的課題 • アーキテクチャ・技術スタック • 技術的課題と解決手法
セッション内容 10
• ゲームエンジン • Cocos2d-x + 独自拡張 • C++ • OpenGL
• スクリプト • Lua アーキテクチャ・技術スタック/クライアント 11 • アニメーション • Spine • エフェクト • LWF(Lightweight SWF) ※GREE開発/オープンソースのアニメーションエンジン • ムービー • CRI Sofdec
アーキテクチャ・技術スタック/サーバー 12 • 開発言語 • PHP • インフラ環境 • AWS
• EC2 • S3 • Dynamo DB • 管理サイトフロントエンド • React
アーキテクチャ・技術スタック/その他 13 ビルドパイプライン/CI • Jenkins • 開発言語 • Python •
Golang その他 • セットアップ自動化 • Ansible • 定形業務自動化 • Google Apps Script
PC版開発における技術的課題 14 1.ゲームエンジン・UI関連 2.セキュリティ関連 • アセット保護 • アンチチート対応 3.クラッシュレポート収集 4.自社配信
(国内PC版・開発中)
1.Wright Flyer Studios における マルチプラットフォーム展開の取り組み 2.アナザーエデンPC版開発における技術的課題 • アーキテクチャ・技術スタック • 技術的課題と解決手法
セッション内容 15
ゲームエンジン/Cocos2d-x 16 • Cocos2d-x 対応OS • iOS, Android, Win32, …
• OpenGL & GLFW • キーボード対応 • ウィンドウ管理 • フルスクリーン対応 • 必要なコードを最新バージョンからバックポート
UI関連 17 • キーボード・マウスでの操作に対応 • モバイル版でソフトウェアキーボード前提となっている箇所 の対応 iOS Windows
セキュリティ対策/アセット保護 18 • アセット暗号化 • 画像アセット • Luaスクリプト • サウンドアセット
• フォント • etc...
セキュリティ対策/アセット保護 19 • ファイル復号処理の負荷・遅延の対応が必要 • PCはHDDなどディスクアクセスが遅い場合も • 元々、非同期読み込みに対応していた箇所は問題なし • 問題のある箇所を特定し個別にチューニング
• 商用のアンチチート・クラッキング防止に対応した セキュリティ製品を導入 • 実行ファイルへの静的解析の阻止 • 実行ファイルの難読化・暗号化により改ざんを防止 • メモリ解析など動的解析の阻止 •
デバッガ接続の阻止 • 不正なメモリアクセスの阻止 セキュリティ対策/アンチチートシステム
• カーネルモードドライバにより堅牢性を強固に セキュリティ対策/アンチチートシステム Application Middleware User Mode Kernel Mode Driver
Kernel Mode Hardware OS Kernel
• 正式な配布元であることを証明 • ファイルの改ざんを検出 • ウイルス対策ソフトによる マルウェア誤検出の防止 • アンチチートシステムによる 実行ファイル難読化の弊害
セキュリティ対策/コード署名 22
クラッシュ→再起動 クラッシュログ集積サーバー • アプリケーションのクラッシュログ収集・分析 • 品質改善のためには必須 クラッシュレポート収集 23 アプリ実行時 クラッシュダンプ
エラーコード スタックトレース etc
• モバイル版は App Center (元HockeyApp) を使用 • PC版は Win32アプリ非対応 →
別途対応が必要 クラッシュレポート収集 24
• Sentry • エラーログ集積サービス • 多くのプラットフォームに対応 • パフォーマンス情報の分析なども可能 • アプリビルド時にシンボル情報を
Sentry へ送信 • クラッシュ時のメモリダンプ、サーバーへの送信処理 • Google Breakpad (Minidump) + 独自実装 クラッシュレポート収集 25
共通基盤Gamelibによる決済システム 26 • ネイティブゲーム向け共通基盤 Gamelib SDK • Game Platformチームにて開発 •
主な機能 • ユーザー認証 / 課金 / SNS連携 / モデレーション etc... • 対応OS • iOS / Android / Windows • 対応ゲームエンジン • Cocos2d-x / Unity / Unreal Engine
共通基盤Gamelibによる決済システム 27 • 対応PF(課金) • App Store (Apple) / Google
Play / Amazon Store • DMM GAMES / Steam ポケラボ DMM GAMES 対応プロダクト
• 自社配信 • 国内PC版(開発中)にて対応 • インストーラー • 公式サイトよりダウンロード • ランチャー
• 自動アップデート機能 自社配信 28
• Inno Setup を使用 • 各コンポーネントのインストール • ランチャー(後述) • ランタイムライブラリ
• アンチチートカーネルドライバ • exe ファイルとしてパッケージ化 • S3へアップロード • 公式サイトから配布 自社配信/インストーラー 29
• ランチャーの役割 • 初回のゲーム本体インストール • 自動アップデート • ゲーム本体 • ランチャー自身
• ゲーム本体とは別アプリ • .NET5 + WPF を使用 自社配信/ランチャー 30
自社配信/ランチャー 31 ランチャー起動 アップデート 要否 ランチャー/ゲーム本体 アップデート ゲーム本体起動 必要 不要
• 自動アップデート • ユーザーにはできる限りランチャーの存在を意識させない
• PC版としての課題への対応 • 既存プラットフォームに頼っている箇所は意外と多い • 一つ一つの対応は細かいものだが、技術の積み上げが重要 • 今回の知見を活かして、今後も グローバル対応/マルチプラットフォーム対応を推進 PC版対応の技術的課題/おわりに
32
33
34
35
36