アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
by
gree_tech
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
株式会社WFS リードエンジニア 梅木 隼 株式会社WFS 森 雅希 アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
Slide 2
Slide 2 text
• 氏名 • 梅木 隼 • 経歴 • 2014年から Wright Flyer Studios にて ネイティブゲームの開発運営を担当。 • アナザーエデンでは、クライアント開発、 ビルドパイプライン開発などに従事。 (過去エンジニアマネージャー、 メインプログラマーなども担当) 自己紹介(1/2) 2
Slide 3
Slide 3 text
• 氏名 • 森 雅希 • 経歴 • 2019年にグリー株式会社に新卒入社しアナ ザーエデンチームに配属。 • クライアントエンジニアとしてクライアン ト開発から運用効率化まで幅広く担当。 現在はビルドパイプラインを担当。 自己紹介(2/2) 3
Slide 4
Slide 4 text
1.Wright Flyer Studios における マルチプラットフォーム展開の取り組み 2.アナザーエデンPC版開発における技術的課題 セッション内容 4
Slide 5
Slide 5 text
概要 2014年2月21日グリーのスマートフォン向けアプリ開発を担う新スタジオと して株式会社Wright Flyer Studios(現 株式会社WFS)を設立。2020年7月 よりグリーのゲーム事業内にあるWright Flyer Studios事業をWFSに移管。 事業 コンテンツ事業, デジタルソリューション事業, プラットフォーム事業 ビジョン 新しい驚きを、世界中の人へ。 Wright Flyer Studios の紹介 5
Slide 6
Slide 6 text
アナザーエデンの紹介 6 ゲームジャンル シングルプレイ専用RPG リリース 2017/04/12正式公開 配信エリア 日本, アジア(※), 北米, 欧州 配信言語 日本語, 英語, 韓国語, 中国語(繁体字, 簡体字) 配信端末 iOS, Android, Windows/Steam(海外), Windows/自社配信(国内・開発中) ※中国国内向けはX.D. Network Inc.より配信
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
アナザーエデンPC版リリースの経緯 8 市場背景 • モバイル向けゲーム • グラフィックのリッチ化 • 開発の大規模化・開発費の高騰 • PCゲーム配信PFの盛り上がり 新たなユーザー獲得チャネルの開拓 • 国内市場からグローバル市場へ • モバイル以外のプラットフォームへ
Slide 9
Slide 9 text
アナザーエデンのこれまでの歩み アナザーエデンPC版リリースの経緯 9 2017年4月 2021年3月 2021年4Q 2019年1月 国内モバイル版サービス開始 (iOS/Android) 海外PC版サービス開始 (Windows/Steam) 海外モバイル版サービス開始 (iOS/Android, アジア※/北米/欧州) ※中国国内除く 国内PC版 サービス開始予定 (Windows/自社配信)
Slide 10
Slide 10 text
1.Wright Flyer Studios における マルチプラットフォーム展開の取り組み 2.アナザーエデンPC版における技術的課題 • アーキテクチャ・技術スタック • 技術的課題と解決手法 セッション内容 10
Slide 11
Slide 11 text
• ゲームエンジン • Cocos2d-x + 独自拡張 • C++ • OpenGL • スクリプト • Lua アーキテクチャ・技術スタック/クライアント 11 • アニメーション • Spine • エフェクト • LWF(Lightweight SWF) ※GREE開発/オープンソースのアニメーションエンジン • ムービー • CRI Sofdec
Slide 12
Slide 12 text
アーキテクチャ・技術スタック/サーバー 12 • 開発言語 • PHP • インフラ環境 • AWS • EC2 • S3 • Dynamo DB • 管理サイトフロントエンド • React
Slide 13
Slide 13 text
アーキテクチャ・技術スタック/その他 13 ビルドパイプライン/CI ● Jenkins ● 開発言語 • Python • Golang その他 ● セットアップ自動化 • Ansible ● 定形業務自動化 • Google Apps Script
Slide 14
Slide 14 text
PC版開発における技術的課題 14 1.ゲームエンジン・UI関連 2.セキュリティ関連 • アセット保護 • アンチチート対応 3.クラッシュレポート収集 4.自社配信 (国内PC版・開発中)
Slide 15
Slide 15 text
1.Wright Flyer Studios における マルチプラットフォーム展開の取り組み 2.アナザーエデンPC版開発における技術的課題 • アーキテクチャ・技術スタック • 技術的課題と解決手法 セッション内容 15
Slide 16
Slide 16 text
ゲームエンジン/Cocos2d-x 16 • Cocos2d-x 対応OS • iOS, Android, Win32, … • OpenGL & GLFW • キーボード対応 • ウィンドウ管理 • フルスクリーン対応 • 必要なコードを最新バージョンからバックポート
Slide 17
Slide 17 text
UI関連 17 • キーボード・マウスでの操作に対応 • モバイル版でソフトウェアキーボード前提となっている箇所 の対応 iOS Windows
Slide 18
Slide 18 text
セキュリティ対策/アセット保護 18 • アセット暗号化 • 画像アセット • Luaスクリプト • サウンドアセット • フォント • etc...
Slide 19
Slide 19 text
セキュリティ対策/アセット保護 19 • ファイル復号処理の負荷・遅延の対応が必要 • PCはHDDなどディスクアクセスが遅い場合も • 元々、非同期読み込みに対応していた箇所は問題なし • 問題のある箇所を特定し個別にチューニング
Slide 20
Slide 20 text
• 商用のアンチチート・クラッキング防止に対応した セキュリティ製品を導入 • 実行ファイルへの静的解析の阻止 • 実行ファイルの難読化・暗号化により改ざんを防止 • メモリ解析など動的解析の阻止 • デバッガ接続の阻止 • 不正なメモリアクセスの阻止 セキュリティ対策/アンチチートシステム
Slide 21
Slide 21 text
• カーネルモードドライバにより堅牢性を強固に セキュリティ対策/アンチチートシステム Application Middleware User Mode Kernel Mode Driver Kernel Mode Hardware OS Kernel
Slide 22
Slide 22 text
• 正式な配布元であることを証明 • ファイルの改ざんを検出 • ウイルス対策ソフトによる マルウェア誤検出の防止 • アンチチートシステムによる 実行ファイル難読化の弊害 セキュリティ対策/コード署名 22
Slide 23
Slide 23 text
クラッシュ→再起動 クラッシュログ集積サーバー • アプリケーションのクラッシュログ収集・分析 • 品質改善のためには必須 クラッシュレポート収集 23 アプリ実行時 クラッシュダンプ エラーコード スタックトレース etc
Slide 24
Slide 24 text
• モバイル版は App Center (元HockeyApp) を使用 • PC版は Win32アプリ非対応 → 別途対応が必要 クラッシュレポート収集 24
Slide 25
Slide 25 text
• Sentry • エラーログ集積サービス • 多くのプラットフォームに対応 • パフォーマンス情報の分析なども可能 • アプリビルド時にシンボル情報を Sentry へ送信 • クラッシュ時のメモリダンプ、サーバーへの送信処理 • Google Breakpad (Minidump) + 独自実装 クラッシュレポート収集 25
Slide 26
Slide 26 text
共通基盤Gamelibによる決済システム 26 • ネイティブゲーム向け共通基盤 Gamelib SDK • Game Platformチームにて開発 • 主な機能 • ユーザー認証 / 課金 / SNS連携 / モデレーション etc... • 対応OS • iOS / Android / Windows • 対応ゲームエンジン • Cocos2d-x / Unity / Unreal Engine
Slide 27
Slide 27 text
共通基盤Gamelibによる決済システム 27 • 対応PF(課金) • App Store (Apple) / Google Play / Amazon Store • DMM GAMES / Steam ポケラボ DMM GAMES 対応プロダクト
Slide 28
Slide 28 text
• 自社配信 • 国内PC版(開発中)にて対応 • インストーラー • 公式サイトよりダウンロード • ランチャー • 自動アップデート機能 自社配信 28
Slide 29
Slide 29 text
• Inno Setup を使用 • 各コンポーネントのインストール • ランチャー(後述) • ランタイムライブラリ • アンチチートカーネルドライバ • exe ファイルとしてパッケージ化 • S3へアップロード • 公式サイトから配布 自社配信/インストーラー 29
Slide 30
Slide 30 text
• ランチャーの役割 • 初回のゲーム本体インストール • 自動アップデート • ゲーム本体 • ランチャー自身 • ゲーム本体とは別アプリ • .NET5 + WPF を使用 自社配信/ランチャー 30
Slide 31
Slide 31 text
自社配信/ランチャー 31 ランチャー起動 アップデート 要否 ランチャー/ゲーム本体 アップデート ゲーム本体起動 必要 不要 • 自動アップデート • ユーザーにはできる限りランチャーの存在を意識させない
Slide 32
Slide 32 text
• PC版としての課題への対応 • 既存プラットフォームに頼っている箇所は意外と多い • 一つ一つの対応は細かいものだが、技術の積み上げが重要 • 今回の知見を活かして、今後も グローバル対応/マルチプラットフォーム対応を推進 PC版対応の技術的課題/おわりに 32
Slide 33
Slide 33 text
33
Slide 34
Slide 34 text
34
Slide 35
Slide 35 text
35
Slide 36
Slide 36 text
36