Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
dena_study
PDF, PPTX
7,550 views
Game BaaS Implemented in Ruby
2015年2月9日第四回DeNAゲーム開発勉強会資料 ※当日頂いたQ&Aを追加しました(2015/2/10)
Engineering
◦
Read more
32
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 48
2
/ 48
3
/ 48
4
/ 48
5
/ 48
6
/ 48
7
/ 48
8
/ 48
9
/ 48
10
/ 48
11
/ 48
12
/ 48
13
/ 48
14
/ 48
15
/ 48
16
/ 48
17
/ 48
18
/ 48
19
/ 48
20
/ 48
21
/ 48
22
/ 48
23
/ 48
24
/ 48
25
/ 48
26
/ 48
27
/ 48
28
/ 48
29
/ 48
30
/ 48
31
/ 48
32
/ 48
33
/ 48
34
/ 48
35
/ 48
36
/ 48
37
/ 48
38
/ 48
39
/ 48
40
/ 48
41
/ 48
42
/ 48
43
/ 48
44
/ 48
45
/ 48
46
/ 48
47
/ 48
48
/ 48
More Related Content
PDF
DeNAのゲーム開発を支える Game Backend as a Service
by
Makoto Haruyama
PPTX
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
by
DeNA
PDF
マイクロサービスっぽい感じの話
by
Makoto Haruyama
PDF
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
by
Makoto Haruyama
PPTX
DeNA private cloudのその後 #denatechcon
by
DeNA
PDF
DeNAのゲーム開発を支える技術 (クライアントサイド編)
by
denatech2016
PDF
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
by
dena_study
PPTX
AndApp開発における全て #denatechcon
by
DeNA
DeNAのゲーム開発を支える Game Backend as a Service
by
Makoto Haruyama
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
by
DeNA
マイクロサービスっぽい感じの話
by
Makoto Haruyama
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
by
Makoto Haruyama
DeNA private cloudのその後 #denatechcon
by
DeNA
DeNAのゲーム開発を支える技術 (クライアントサイド編)
by
denatech2016
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
by
dena_study
AndApp開発における全て #denatechcon
by
DeNA
What's hot
PDF
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
by
Sho Yoshida
PPT
FINAL FANTASY Record Keeper の作り方
by
dena_study
PPTX
DeNAの最新のマスタデータ管理システム Oyakata の全容
by
sairoutine
PPTX
Rails on GKEで運用するWebアプリケーションの紹介
by
Makoto Haruyama
PDF
Rancher による社内向けテナントサービス基盤
by
Keita Shimada
PPTX
DeNAのプログラミング教育の取り組み #denatechcon
by
DeNA
PDF
Rancherを活用して開発効率を上げる
by
Michitaka Terada
PPTX
RPKIやってみませんか?
by
gree_tech
PDF
REALITY低遅延モード配信を支えるリアルタイムサーバとデータパイプライン
by
gree_tech
PDF
全世界135か国に配信したレーシングゲーム『ACR DRIFT』の制作秘話と技術基盤の構築について
by
CROOZ, inc.
PDF
20170111 macnica networks-nohara_rancher_usecase
by
Minehiko Nohara
PPTX
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
by
Kazuho Oku
PDF
Unityアバターアプリ開発パッケージのご提案
by
gdays
PPTX
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
by
sairoutine
PDF
これからはじめるインフラエンジニア
by
外道 父
PPTX
Aiming のクラウド採用基準
by
Takahiro Hozumi
PDF
OSC 東京 2012春
by
Hiroshi Bunya
PDF
サーバーサイド技術者不足に効くChef
by
Maho Takara
PDF
20180123 rancher meetupyokohama_minehiko_nohara
by
Minehiko Nohara
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
by
Sho Yoshida
FINAL FANTASY Record Keeper の作り方
by
dena_study
DeNAの最新のマスタデータ管理システム Oyakata の全容
by
sairoutine
Rails on GKEで運用するWebアプリケーションの紹介
by
Makoto Haruyama
Rancher による社内向けテナントサービス基盤
by
Keita Shimada
DeNAのプログラミング教育の取り組み #denatechcon
by
DeNA
Rancherを活用して開発効率を上げる
by
Michitaka Terada
RPKIやってみませんか?
by
gree_tech
REALITY低遅延モード配信を支えるリアルタイムサーバとデータパイプライン
by
gree_tech
全世界135か国に配信したレーシングゲーム『ACR DRIFT』の制作秘話と技術基盤の構築について
by
CROOZ, inc.
20170111 macnica networks-nohara_rancher_usecase
by
Minehiko Nohara
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
by
Kazuho Oku
Unityアバターアプリ開発パッケージのご提案
by
gdays
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
by
sairoutine
これからはじめるインフラエンジニア
by
外道 父
Aiming のクラウド採用基準
by
Takahiro Hozumi
OSC 東京 2012春
by
Hiroshi Bunya
サーバーサイド技術者不足に効くChef
by
Maho Takara
20180123 rancher meetupyokohama_minehiko_nohara
by
Minehiko Nohara
Viewers also liked
PDF
DeNA流cocos2d xとの付き合い方
by
dena_study
PPTX
FINAL FANTASY Record Keeperのマスターデータを支える技術
by
dena_study
PDF
FFRKを支えるWebアプリケーションフレームワークの技術
by
dena_study
PPTX
Unityで本格戦国シュミレーションRPG 開発
by
dena_study
PDF
FINAL FANTASY Record Keeper 演出データについて
by
dena_study
PPT
制作を支えたツール達 (パズル戦隊デナレンジャー)
by
dena_study
PDF
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
by
dena_study
PDF
ガールアックス:リアルタイム通信処理の効率的な実装
by
dena_study
DeNA流cocos2d xとの付き合い方
by
dena_study
FINAL FANTASY Record Keeperのマスターデータを支える技術
by
dena_study
FFRKを支えるWebアプリケーションフレームワークの技術
by
dena_study
Unityで本格戦国シュミレーションRPG 開発
by
dena_study
FINAL FANTASY Record Keeper 演出データについて
by
dena_study
制作を支えたツール達 (パズル戦隊デナレンジャー)
by
dena_study
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
by
dena_study
ガールアックス:リアルタイム通信処理の効率的な実装
by
dena_study
Similar to Game BaaS Implemented in Ruby
PDF
AWS Black Belt Online Seminar AWS上でのスピードと高可用性を両立したゲームインフラの構築と事例
by
Amazon Web Services Japan
PPTX
ゲーム特化の BaaS! Unity + PlayFab 入門!
by
YutoNishine
PDF
ゲーム会社でのRuby : rails活用事例
by
Yasutomo Uemori
PDF
BaaSでゲームサーバを作る話
by
Tomokazu Tochi
PDF
BaaSでゲームサーバを作る話
by
Tomo Tochi
PDF
[GCC18] 世界中のプレイヤーを3つの「S」で支える Google Cloud Platform (GCP) 〜スピード・スケール・スタビリティ〜
by
Samir Hammoudi
PDF
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
by
Satoshi Yamafuji
PDF
大規模JavaScript開発
by
Yoshiki Shibukawa
PDF
30分で分かった気になるソーシャルゲーム入門
by
陽一 滝川
AWS Black Belt Online Seminar AWS上でのスピードと高可用性を両立したゲームインフラの構築と事例
by
Amazon Web Services Japan
ゲーム特化の BaaS! Unity + PlayFab 入門!
by
YutoNishine
ゲーム会社でのRuby : rails活用事例
by
Yasutomo Uemori
BaaSでゲームサーバを作る話
by
Tomokazu Tochi
BaaSでゲームサーバを作る話
by
Tomo Tochi
[GCC18] 世界中のプレイヤーを3つの「S」で支える Google Cloud Platform (GCP) 〜スピード・スケール・スタビリティ〜
by
Samir Hammoudi
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
by
Satoshi Yamafuji
大規模JavaScript開発
by
Yoshiki Shibukawa
30分で分かった気になるソーシャルゲーム入門
by
陽一 滝川
Recently uploaded
PDF
サーバーサイド Kotlin を社内で普及させてみた - Server-Side Kotlin Night 2025
by
Hirotaka Kawata
PPTX
【ASW22-01】STAMP:STPAロスシナリオの発想・整理支援ツールの開発 ~astah* System Safetyによる構造化・階層化機能の実装...
by
csgy24013
PDF
Kubernetes Release Team Release Signal Role について ~Kubernetes Meetup Tokyo #72~
by
Keisuke Ishigami
PDF
0.0001秒の攻防!?快適な運転を支えるリアルタイム制御と組み込みエンジニアの実践知【DENSO Tech Night 第四夜】
by
dots.
PPTX
「グローバルワン全員経営」の実践を通じて進化し続けるファーストリテイリングのアーキテクチャ
by
Fast Retailing Co., Ltd.
PDF
Nanami Doikawa_寄り道の誘発を目的とした旅行写真からのスポット印象語彙の推定に関する基礎検討_EC2025
by
Matsushita Laboratory
PDF
Rin Ukai_即興旅行の誘発を目的とした口コミ情報に基づく雰囲気キーワード_EC2025.pdf
by
Matsushita Laboratory
サーバーサイド Kotlin を社内で普及させてみた - Server-Side Kotlin Night 2025
by
Hirotaka Kawata
【ASW22-01】STAMP:STPAロスシナリオの発想・整理支援ツールの開発 ~astah* System Safetyによる構造化・階層化機能の実装...
by
csgy24013
Kubernetes Release Team Release Signal Role について ~Kubernetes Meetup Tokyo #72~
by
Keisuke Ishigami
0.0001秒の攻防!?快適な運転を支えるリアルタイム制御と組み込みエンジニアの実践知【DENSO Tech Night 第四夜】
by
dots.
「グローバルワン全員経営」の実践を通じて進化し続けるファーストリテイリングのアーキテクチャ
by
Fast Retailing Co., Ltd.
Nanami Doikawa_寄り道の誘発を目的とした旅行写真からのスポット印象語彙の推定に関する基礎検討_EC2025
by
Matsushita Laboratory
Rin Ukai_即興旅行の誘発を目的とした口コミ情報に基づく雰囲気キーワード_EC2025.pdf
by
Matsushita Laboratory
Game BaaS Implemented in Ruby
1.
Game BaaS Implemented in
Ruby @tohae
2.
自己紹介 • @tohae (とはえ) •
サーバサイドエンジニア(Ruby, Perl, PHP) • ソーシャルゲームのサーバサイドを横断的に 開発、ヘルプ
3.
今日話すこと DeNAでのアプリ開発の歴史 最近のアプリ開発の構成 サーバサイドの仕組み
4.
DeNAでのゲーム開発の歴史
5.
アプリ以前(2009年∼) • HTML • Javascript •
Perl(MobaSiF) 参考:【YAPC::Asia 2008】モバゲータウンのフレームワーク 「MobaSiF」公開: http://codezine.jp/article/detail/2528
6.
アプリ時代その1(2012∼) • Kickmotor • Perl(MobaSiF
or GunyaSiF) 参考: Kickmotor http://next.rikunabi.com/tech/docs/ct_s03600.jsp?p=002421 参考: GunyaSiF http://next.rikunabi.com/tech/docs/ct_s03600.jsp?p=002398
7.
アプリ時代その2(2014∼) • Unity or
LiftEngine • Game BaaS 今日はこのGame BaaSの話をします! (開発中の画像予定)
8.
Game BaaS is
何?
9.
ソーシャルゲーム向けの Backend as a
Service。
10.
Backend as a
Service? スマートフォン向けのWebアプリケーションが必要とするサーバ側の様々な機能をイン ターネットを通じてサービスとして提供するクラウドサービスの一種。 提供される機能 はサービスにより様々だが、利用者情報の登録・管理や認証、データの保管、プッシュ 通知、課金・決済、ソーシャルメディアとの連携などが実装されていることが多い。アプ リケーション開発者はこれらの機能のAPIを呼び出すよう設定することで、自らのアプリ ケーションの一部として取り込むことができる。 ! http://e-words.jp/w/BaaS.html + ソーシャルゲーム向けの機能
11.
= Game Backend
as a Service
12.
ソーシャルゲーム向けの機能
13.
• セーブデータの保存/読み込み • ガチャ •
ログインボーナス • フレンド • ランキング • ショップ • 補填 • 友達招待 • チャット • アセット配信 • マスターデータ配信 • お知らせ • アチーブメント • カスタマーサポート • チート対策 • イベント配信 • 事前登録 • Push通知
14.
• セーブデータの保存/読み込み • ガチャ •
ログインボーナス • フレンド • ランキング • ショップ • 補填 • 友達招待 • チャット • アセット配信 • マスターデータ配信 • お知らせ • アチーブメント • カスタマーサポート • チート対策 • イベント配信 • 事前登録 • Push通知 他にもいろいろ たくさんある
15.
Game BaaSの目的 • たくさんのソシャゲ向けの機能を再開発する のは無駄 •
汎用化してどんなソシャゲにも使える機能を サービスとして提供しよう
16.
提供しているもの • Client SDK •
C#, C++, Objective-C, Java • 管理画面 • 商品、アセットなどゲームで必要な物を登録 • カスタマーサポート向けの運用機能
17.
ここがすごいよ Game BaaS
18.
サーバの開発、運用が不要 アラートに怯える日々とおさらば。 インフラのことは考える必要なし。 リリース直後のアクセス急増も安心。
19.
ユーザーサポートが統一化 いわゆる管理画面を作らなくていい。 ゲームごとに違う管理画面に悩まされない。
20.
!!!とても便利!!!
21.
サーバサイドの仕組み (ここからが本編?です)
22.
サーバ構成イメージ
23.
各種サーバについて • Proxy Server •
EventMachine • API Server • Sinatra • Management Tool • Rails • DB • MySQL • Q4M • Redis
24.
Proxy Server • EventMachine •
マルチプロセス化 • 認証 • 各種APIサーバへの振り分け • 各種APIでの共通処理 • 垢BAN • バージョンチェック
25.
EventMachineのマルチプロ セス化 EventMachineはマルチコアを使い切れない。 そのためUnicornのように、EventMachineのマス タープロセスからEventMachineのワーカープロセス を作るようにしている。 Graceful Restartにも対応。
26.
API Server • Sinatra
+ Sequel + Unicorn • 機能毎にAPI Serverを分割 • REST風API • APIサーバ間で共通の処理はgem化 • APIサーバ間ではほぼ通信していない
27.
APIサーバ間で通信しない セーブデータ保存APIと購入APIを用意していたが、ゲーム開発者からするとセーブデー タの保存と購入処理を1トランザクションで安全にやりたいという要望があった。 そのためにそれらを同時に行えるAPIを用意しているが、その内部処理で購入APIから セーブデータ保存APIをHTTPで呼び出さず、セーブデータ保存APIのロジックを共有 (gem化)してSQLを発行している。 これはHTTPでの呼び出しのパフォーマンスの懸念もあるが、それよりもHTTPで失敗し た場合のロールバックの煩雑さを回避するため。
28.
Management Tool • いわゆる管理画面を作成 •
Rails + Unicorn • 複数DB対応はActiveRecord::Baseを継承した クラス • 最近はSwitchPointで書き換え中
29.
DB • MySQL 5.6.x •
機能毎にDBを複数 • Gameの設定、Player関連データ、ログ、ランキングなどなど • 全ゲームのデータが同居 • スキーマレス • セーブデータなどはゲームごとにスキーマが異なるので、 JSONをテーブルに圧縮してぶっこんでる
30.
Sharding • プレイヤーごと(一部ゲームごと)に水平分割 • プレイヤー作成時にDBを決定 •
DBは重み管理テーブルによって決める shard id weight 1 20 2 20 3 60 player id shard id 1 1 2 1 3 3 shard重み管理テーブル DB接続先管理テーブル
31.
Sharding(2) • DBの接続先管理はアプリでがんばる • リクエストごとにDB接続先を決定
32.
その他DB案件 http://www.slideshare.net/sonots/mobage-ruby-db
33.
なぜRubyを選んだのか?
34.
Perlが書けなかったから!!! (個人的な理由です)
35.
その他、後付の理由 • テストが書きやすい • 管理画面を作成するにはRailsが便利 •
便利gem多いので開発速度速い
36.
しかしすんなりRubyが採用される わけもなく、いろんな質問をされ ました…。
37.
DeNAのインフラ要件を満た すライブラリは? ログ、デプロイ、監視、DNSの名前解決、Master- Slave, Sharding, コネクションなどなど…。 これらは既存のgemを使ったり、新しくgemを 作ったりして解決。
38.
パフォーマンスは大丈夫なの? 計測した感じではそこまで悪くなかった。 またAPIサーバを機能毎に小さく分割しているので、パ フォーマンスが悪いAPIサーバだけを増やせば良い。 最悪の場合はそこだけ別の言語で作りなおせるように 小さく分割している。
39.
LL(Perl)からLL(Ruby)なのは なぜ?GolangとかScalaは? チャレンジしたかったけど、経験者がいなかっ たし、スケジュール的に厳しかった。 将来書き換えられると良いな…。
40.
他にもいろいろありましたが、 最後は泣いてお願いしました
41.
まとめ
42.
まとめ • サーバサイドはBaaSを作って、ゲームはそれ を使って開発効率を上げている • 最近はサーバサイドにRubyを使っている •
DeNAではBaaSの開発に興味のあるRubyエン ジニアを募集しています。
43.
ご清聴 ありがとうございました
44.
Q & A
45.
Q: 1サーバが死ぬと、全ゲー ムが死ぬんですか? A: 死にます…。
46.
Q: APIのバージョニングはど うしてますか? A: URLにAPIのバージョニングを含め、古い バージョンもメンテナンスをしています。 SDKのバージョンアップでURLを変更してい ます。
47.
Q: AWSでやってるんですか? A: オンプレです。
48.
Q: ResqueやSidekiqは使っ てる? A: Q4Mから取得するデーモンを自前で作成 しています。
Download