Enviar búsqueda
Cargar
「オルタンシア・サーガ」開発の裏側
•
3 recomendaciones
•
4,502 vistas
geechs inc. / geechs株式会社
Seguir
f4samuraiが開発する「オルタンシア・サーガ-蒼の騎士団-」について、方式設計における幅広いノウハウの紹介。
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 36
Recomendados
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Amazon Web Services Japan
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
もしSIerのエンジニアがSRE本を読んだら
もしSIerのエンジニアがSRE本を読んだら
Tomoki Ando
Ganglia のUIにGrafanaを追加する話
Ganglia のUIにGrafanaを追加する話
KLab Inc. / Tech
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
Yusuke Suzuki
AWS Black Belt Online Seminar 2017 Deployment on AWS
AWS Black Belt Online Seminar 2017 Deployment on AWS
Amazon Web Services Japan
ランサムウェア対策 ”最後の砦” データ保護からみる感染対策セミナー
ランサムウェア対策 ”最後の砦” データ保護からみる感染対策セミナー
株式会社クライム
Recomendados
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Amazon Web Services Japan
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
もしSIerのエンジニアがSRE本を読んだら
もしSIerのエンジニアがSRE本を読んだら
Tomoki Ando
Ganglia のUIにGrafanaを追加する話
Ganglia のUIにGrafanaを追加する話
KLab Inc. / Tech
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
Yusuke Suzuki
AWS Black Belt Online Seminar 2017 Deployment on AWS
AWS Black Belt Online Seminar 2017 Deployment on AWS
Amazon Web Services Japan
ランサムウェア対策 ”最後の砦” データ保護からみる感染対策セミナー
ランサムウェア対策 ”最後の砦” データ保護からみる感染対策セミナー
株式会社クライム
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
Shingo Fukui
事業のグロースを支えるDataOpsの現場 #DataOps #DevSumi #デブサミ
事業のグロースを支えるDataOpsの現場 #DataOps #DevSumi #デブサミ
@yuzutas0 Yokoyama
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
Recruit Technologies
データ活用を俊敏に進めるためのDataOps実践方法とその高度化のためのナレッジグラフ活用の取り組み(NTTデータ テクノロジーカンファレンス 2020 ...
データ活用を俊敏に進めるためのDataOps実践方法とその高度化のためのナレッジグラフ活用の取り組み(NTTデータ テクノロジーカンファレンス 2020 ...
NTT DATA Technology & Innovation
Snowflake Architecture and Performance
Snowflake Architecture and Performance
Mineaki Motohashi
AWS設計ガイドラインで取り組むクラウドシフト
AWS設計ガイドラインで取り組むクラウドシフト
Trainocate Japan, Ltd.
Aws auto scalingによるwebapサーバbatchサーバの構成例
Aws auto scalingによるwebapサーバbatchサーバの構成例
Takeshi Mikami
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
NTT DATA Technology & Innovation
Kinesis Firehoseを使ってみた
Kinesis Firehoseを使ってみた
dcubeio
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
Amazon Web Services Japan
Amazon Redshift 概要 (20分版)
Amazon Redshift 概要 (20分版)
Amazon Web Services Japan
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito
Amazon Web Services Japan
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
Amazon Web Services
はじめよう DynamoDB ハンズオン
はじめよう DynamoDB ハンズオン
Amazon Web Services Japan
データモデリング・テクニック
データモデリング・テクニック
Hidekatsu Izuno
SageMakerでもAUTOMATIC1111したい
SageMakerでもAUTOMATIC1111したい
真吾 吉田
Microsoft Graph APIを活用した社内アプリケーション開発
Microsoft Graph APIを活用した社内アプリケーション開発
Yuki Hattori
データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門
Satoru Ishikawa
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
Amazon Web Services Japan
IDaaS を正しく活用するための認証基盤設計
IDaaS を正しく活用するための認証基盤設計
Trainocate Japan, Ltd.
Japan Dreamin2019 Salesforce Developer Group Rookies
Japan Dreamin2019 Salesforce Developer Group Rookies
Ikou Sanuki
Sfdgr 13 20181120_v1.0
Sfdgr 13 20181120_v1.0
SFDG ROOKIES
Más contenido relacionado
La actualidad más candente
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
Shingo Fukui
事業のグロースを支えるDataOpsの現場 #DataOps #DevSumi #デブサミ
事業のグロースを支えるDataOpsの現場 #DataOps #DevSumi #デブサミ
@yuzutas0 Yokoyama
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
Recruit Technologies
データ活用を俊敏に進めるためのDataOps実践方法とその高度化のためのナレッジグラフ活用の取り組み(NTTデータ テクノロジーカンファレンス 2020 ...
データ活用を俊敏に進めるためのDataOps実践方法とその高度化のためのナレッジグラフ活用の取り組み(NTTデータ テクノロジーカンファレンス 2020 ...
NTT DATA Technology & Innovation
Snowflake Architecture and Performance
Snowflake Architecture and Performance
Mineaki Motohashi
AWS設計ガイドラインで取り組むクラウドシフト
AWS設計ガイドラインで取り組むクラウドシフト
Trainocate Japan, Ltd.
Aws auto scalingによるwebapサーバbatchサーバの構成例
Aws auto scalingによるwebapサーバbatchサーバの構成例
Takeshi Mikami
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
NTT DATA Technology & Innovation
Kinesis Firehoseを使ってみた
Kinesis Firehoseを使ってみた
dcubeio
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
Amazon Web Services Japan
Amazon Redshift 概要 (20分版)
Amazon Redshift 概要 (20分版)
Amazon Web Services Japan
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito
Amazon Web Services Japan
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
Amazon Web Services
はじめよう DynamoDB ハンズオン
はじめよう DynamoDB ハンズオン
Amazon Web Services Japan
データモデリング・テクニック
データモデリング・テクニック
Hidekatsu Izuno
SageMakerでもAUTOMATIC1111したい
SageMakerでもAUTOMATIC1111したい
真吾 吉田
Microsoft Graph APIを活用した社内アプリケーション開発
Microsoft Graph APIを活用した社内アプリケーション開発
Yuki Hattori
データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門
Satoru Ishikawa
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
Amazon Web Services Japan
IDaaS を正しく活用するための認証基盤設計
IDaaS を正しく活用するための認証基盤設計
Trainocate Japan, Ltd.
La actualidad más candente
(20)
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
事業のグロースを支えるDataOpsの現場 #DataOps #DevSumi #デブサミ
事業のグロースを支えるDataOpsの現場 #DataOps #DevSumi #デブサミ
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
データ活用を俊敏に進めるためのDataOps実践方法とその高度化のためのナレッジグラフ活用の取り組み(NTTデータ テクノロジーカンファレンス 2020 ...
データ活用を俊敏に進めるためのDataOps実践方法とその高度化のためのナレッジグラフ活用の取り組み(NTTデータ テクノロジーカンファレンス 2020 ...
Snowflake Architecture and Performance
Snowflake Architecture and Performance
AWS設計ガイドラインで取り組むクラウドシフト
AWS設計ガイドラインで取り組むクラウドシフト
Aws auto scalingによるwebapサーバbatchサーバの構成例
Aws auto scalingによるwebapサーバbatchサーバの構成例
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
Kinesis Firehoseを使ってみた
Kinesis Firehoseを使ってみた
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
Amazon Redshift 概要 (20分版)
Amazon Redshift 概要 (20分版)
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
はじめよう DynamoDB ハンズオン
はじめよう DynamoDB ハンズオン
データモデリング・テクニック
データモデリング・テクニック
SageMakerでもAUTOMATIC1111したい
SageMakerでもAUTOMATIC1111したい
Microsoft Graph APIを活用した社内アプリケーション開発
Microsoft Graph APIを活用した社内アプリケーション開発
データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
IDaaS を正しく活用するための認証基盤設計
IDaaS を正しく活用するための認証基盤設計
Similar a 「オルタンシア・サーガ」開発の裏側
Japan Dreamin2019 Salesforce Developer Group Rookies
Japan Dreamin2019 Salesforce Developer Group Rookies
Ikou Sanuki
Sfdgr 13 20181120_v1.0
Sfdgr 13 20181120_v1.0
SFDG ROOKIES
ゼロからのエンジニアが開発マネージャーになるまで
ゼロからのエンジニアが開発マネージャーになるまで
Yusuke Shirakawa
スタートアップがスマホアプリゲームをAzureのサービスで運用した話
スタートアップがスマホアプリゲームをAzureのサービスで運用した話
Kiyoaki Tsurutani
全世界6,500万DL突破!ヒットゲームを作り上げたチームの道のり
全世界6,500万DL突破!ヒットゲームを作り上げたチームの道のり
Masakazu Matsushita
参謀本部事業計画書
参謀本部事業計画書
貴義 齊藤
Sfdgr 14 20181220_v2.1
Sfdgr 14 20181220_v2.1
ssusere4be3c
150704 イノベーションエッグ第4回 umekita_force活動報告
150704 イノベーションエッグ第4回 umekita_force活動報告
Naoya Shiraishi
f4samurai会社説明資料.pdf
f4samurai会社説明資料.pdf
ssuser035e96
Swtt2018 work shop_20181205
Swtt2018 work shop_20181205
SFDG ROOKIES
Sendai ruby-02
Sendai ruby-02
Yasuko Ohba
人類にとって 個性的な商品や魅力的なクリエイターと出会うならSUZURI! グッズを売るならSUZURI一択! という未来を目指して
人類にとって 個性的な商品や魅力的なクリエイターと出会うならSUZURI! グッズを売るならSUZURI一択! という未来を目指して
Hiroshi Ataka
価値提案から始める
価値提案から始める
Takeshi Kakeda
サービス×現場
サービス×現場
真一 牛島
Similar a 「オルタンシア・サーガ」開発の裏側
(14)
Japan Dreamin2019 Salesforce Developer Group Rookies
Japan Dreamin2019 Salesforce Developer Group Rookies
Sfdgr 13 20181120_v1.0
Sfdgr 13 20181120_v1.0
ゼロからのエンジニアが開発マネージャーになるまで
ゼロからのエンジニアが開発マネージャーになるまで
スタートアップがスマホアプリゲームをAzureのサービスで運用した話
スタートアップがスマホアプリゲームをAzureのサービスで運用した話
全世界6,500万DL突破!ヒットゲームを作り上げたチームの道のり
全世界6,500万DL突破!ヒットゲームを作り上げたチームの道のり
参謀本部事業計画書
参謀本部事業計画書
Sfdgr 14 20181220_v2.1
Sfdgr 14 20181220_v2.1
150704 イノベーションエッグ第4回 umekita_force活動報告
150704 イノベーションエッグ第4回 umekita_force活動報告
f4samurai会社説明資料.pdf
f4samurai会社説明資料.pdf
Swtt2018 work shop_20181205
Swtt2018 work shop_20181205
Sendai ruby-02
Sendai ruby-02
人類にとって 個性的な商品や魅力的なクリエイターと出会うならSUZURI! グッズを売るならSUZURI一択! という未来を目指して
人類にとって 個性的な商品や魅力的なクリエイターと出会うならSUZURI! グッズを売るならSUZURI一択! という未来を目指して
価値提案から始める
価値提案から始める
サービス×現場
サービス×現場
「オルタンシア・サーガ」開発の裏側
1.
「オルタンシア・サーガ」 開発の裏側 2016/2/17 株式会社f4samurai 松野 洋希
2.
f4samuraiってこんな会社 • 2010年1月に設立 • モバイル向けゲーム・アプリケーションの開発・運営 •
2012年 株式会社セガゲームス社と業務提携 • 企画・開発・運用は弊社 • 宣伝プロモーションはセガゲームス社 2
3.
f4samurai TOP SALES 3 72013.7.29 2014.7.11 3
62015.12.10
4.
f4samurai オフィスの変遷 0 5 10 15 20 25 30 35 40 45 50 第1期(2010/12) 第2期(2011/12) 第3期(2012/12)
第4期※(2013/3) 第5期(2014/3) 第6期(2015/3) 第7期(2016/3予) 社員数 4
5.
オルタンシア・サーガ –蒼の騎士団- • 2015年4月リリース •
300万ダウンロード • 特長 • クエストの新しいゲーム性 • ギルド vs. ギルド • 50万文字を超えるストーリー • 2015年 Googleベストゲーム 5
6.
オルタンシア・サーガ 開発体制 • プランナー 6名 •
サーバエンジニア 5名 • クライアントエンジニア 4名 • フロントエンジニア 4名 • デザイナー 4名 • シナリオライター 3名 ・イラスト、サウンド、テストなどは一部外部に依頼 6
7.
オルタンシア・サーガ リリースまでのスケジュール ▲2013/12 プロジェクト開始 ▲2014/4 プロトタイプ完成 ▲2014/8
αバージョン完成 ▲2014/9 βバージョン完成 2014/11当初リリース予定→作り直し ▲ 2015/1リリース予定→作り直し ▲ 2015/4リリース ▲ 7
8.
オルタンシア・サーガ 技術要素 cocos2d-x Java/ Objective-C CentOS Java/Apache Tomcat/Jetty mem- cached Wicket Spring Framework iBATIS クライアント サーバ 8 Apache httpd MySQL
9.
技術選定のポイント • 技術的に派手なこと、新しいことはやっていない • 枯れている、メンバーのスキルセットにあった技術を選定 •
基本に忠実に作る • 5つの「新」によるリスク • 新業界 • 新顧客 • 新技術 • 新PM • 新パートナー 9
10.
基本に忠実に作る • 「方式設計」 • システムを構築する上で考慮するポイントを 事前に整理 10
11.
方式設計 • システム要件 • 性能目標
(DAU、スループット、レスポンスタイム) • 使用するプロトコル • システム拡張方式 • 想定外の負荷が発生したときにどのようにシステムを拡張するか • スケールアップ、スケールアウト • 負荷分散方式 • データ保持方式 • どのような形式でデータを持つか • どこにデータを持つか(分割するか) 11
12.
方式設計(2) • アプリケーション処理方式 • 認証 •
トランザクション • 流量制御 • チート対策 • キャッシュ方式 • セキュリティ方式 12
13.
方式設計(3) • 運用方式 • 通常運用
(リリース、メンテナンス、バックアップ、ログ保持、 問い合わせ調査、KPI) • 障害時運用 (縮退運転、リカバリ) • 監視方式 • 死活監視、リソース監視 • 障害通知 • 性能監視 • 開発方式、テスト方式 • できるだけ短いサイクルで開発者が確認できるような仕組み • テスト環境と本番環境の使い分け 13
14.
方式設計(4) • ネットワーク設計 • ハードウェア選定 •
ソフトウェア選定 • パラメタ設計 14
15.
オルタンシア・サーガ サーバ構成図 Web (iOS) DB Web (iOS)Web (iOS) WebApp WebApp WebApp LB Web (iOS) DB Web (iOS)Web (And) WebApp WebApp WebApp LB Socket Socket・・・ Cache Cache DNS Batch DNS 15 Admin
16.
オルタンシア・サーガ 方式設計 (1) • システム要件 •
ゲームの仕様上、HTTPとWebSocketを併用 • システム拡張方式 • Web, WebApp, Socket, Cacheはスケールアウト可能 • DBはスレーブのみスケールアウト可能 • マスタDBはスケールアップ or データ分散 • 負荷分散方式 • 入り口はロードバランサ • Web → WebApp は mod_proxy のロードバランス機能 • WebSocket はホスト名による負荷分散 16
17.
WebSocketサーバの分散 • ギルド vs.
ギルドのバトル中、 対戦しているギルド(チーム)同士は 同じSocketサーバに接続したい • サーバのホスト名を分けて、負荷を分散する • Socketサーバ障害発生時の動作を考慮する 17
18.
WebSocketサーバの分散(2) Client WebApp Socket1 DB BattleID ServerID 10001
1 10002 2 … … ServerName=socket2 Socket2 ws://socket2.jp/… http://web.jp/… 18 Batch 監視
19.
WebSocketサーバの分散 (障害発生時) Client WebApp Socket1 DB BattleID ServerID 10001
1 10002 1 … … ServerName=socket1 Socket2 ws://socket1.jp/… http://web.jp/… 19 Batch 監視
20.
オルタンシア・サーガ 方式設計(2) • データ保持方式 • 大事なデータはサーバ側で持つ •
マスタデータは垂直分散 • 認証方式 • トークン方式を採用し、同一ユーザ複数端末からの アクセスを制御 20
21.
複数端末を使ったチート • 同一ユーザが複数端末を用意して、 同時にアクセスすることでゲームを有利に進める 21 Client-A WebApp DB Client-B sync
22.
トークンによる制御 • アプリ起動時にトークンを発行 22 Client-A WebApp DB Client-B UserID
Token User1 tokenAAA tokenAAA
23.
トークンによる制御 (2) • 別端末でアプリを起動した時にトークンを上書き 23 Client-A WebApp
DB Client-B UserID Token User1 tokenBBB tokenAAA tokenBBB
24.
トークンによる制御 (3) • 端末から送信されたトークンと、サーバで保持している トークンが違うので認証エラー 24 Client-A WebApp
DB Client-B UserID Token User1 tokenBBB tokenAAA tokenBBB
25.
オルタンシア・サーガ 方式設計(3) • キャッシュ方式 • マスタデータはWebAppサーバ上に保持 •
ユーザデータ(の一部)はCacheサーバ上に保持 • フロントは backbone.js を使って必要なアセットの先読み 25
26.
マスタデータキャッシュ • マスタデータはほぼ更新されないので WebAppサーバでキャッシュしたい • iBATISのキャッシュは、高負荷時にスループットが 低下するバグがある •
WebAppサーバ起動時にマスタデータをDBから取得して、 WebAppサーバ上にキャッシュする仕組みを実装 26
27.
backbone.js • JavascriptでMVCを実現するフレームワーク • 必要なアセットを最初に読み込むことで、 ページ遷移をするときのもたつき感を減らす •
1イベントごと、など機能単位での採用 (イベント外のページに出ると再読込が必要) 27
28.
オルタンシア・サーガ 方式設計(4) • 通常時のログ運用・問い合わせ調査 • SmartBeatというプロダクトを使用 28
29.
SmartBeat • iOS/Androidでクラッシュが発生した場合に、 クラッシュ時のログ・端末情報などを収集する • アプリのバージョンアップ時は頻繁にチェック •
ユーザIDによる検索も可能 29
30.
オルタンシア・サーガ 方式設計(5) • 障害時の動き • Web,
WebApp, Cache, SlaveDB サーバは落ちても対策しない (落ちてもシステム全体は耐えられるよう多めにサーバを用意) • Batch/AdminはWebAppと同じ構成なので、 落ちたら他サーバを転用する • Socket サーバは前述の通り • MasterDBはMHAによる監視 30
31.
MHA for MySQL •
Master High Availability Manager and tools for MySQL • MySQLサーバの監視 • 障害発生時にはスレーブをマスタに自動昇格させる 31
32.
MHA(2) DB Master MHA 監視 db01-master DB Slave1 WebApp DB Slave2 db01-slave Name IP db01-master
192.168.10.1 db01-slave 192.168.10.2 db01-slave 192.168.10.3 32 MHA db01-slave
33.
MHA(マスタサーバ障害) DB Master MHA 監視 db01-master DB Master WebApp DB Slave db01-slave Name IP db01-master 192.168.10.2 db01-slave
192.168.10.2 db01-slave 192.168.10.3 33 MHA
34.
まとめ • 「方式設計」という観点から「オルタンシア・サーガ」の 裏側をご紹介 • 新しい技術ではなく枯れた技術の組み合わせで ゲームシステムを実現 34
35.
f4samuraiの今後 • 新規タイトルを2本開発中 • 1本はアニメ原作のIPタイトル •
1本は3Dグラフィクスを使ったオリジナルタイトル • 今まで以上のテクニカルスキルが必要なので、 引き続きチャレンジャーとして頑張ります 35
36.
ありがとうございました