狠狠撸

狠狠撸Share a Scribd company logo
MMOのサーバについて
剣と魔法のログレス
~いにしえの女神~
での実装例
山藤 智之
Aiming
? 代表:椎葉 忠志
? オンラインゲームの会社
? 企画?開発?運営 全部やってます!!
? 東京、大阪
? HP:http://aiming-inc.com/
自己紹介
? 山藤 智之
? 最初はWEB系(R&D)
? 2007年からオンラインゲーム開発
– 開発タイトル
? BladeChronicle
? 剣と魔法のログレス(PCブラウザ)
? 剣と魔法のログレス ~いにしえの女神~
? 株式会社Aiming 大阪スタジオ所属
ログレス
? PC
– 剣と魔法のログレス
– 2011年10月サービス開始
– http://mmo-logres.com/
? スマートフォン
– 剣と魔法のログレス ~いにしえの女神~
– 2013年12月サービス開始
– http://sp.mmo-logres.com/
– 2014年5月 200万DL達成
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
目次
? ログレスのサーバ
– フロントエンド
– バックエンド
? 実装例
– 移動
– チャット
? 実際に起こった問題と対応
? ログレスのサーバ
– フロントエンド
– バックエンド
? 実装例
– 移動
– チャット
? 実際に起こった問題と対応
ログレスのサーバ
? 階層を分けて冗長化しています
? 縦に繋ぐ、同階層での横の繋がりは無し
WAN WAN
フロントエンド
? ユーザークライアントが接続する
? 2種類の通信を使い分け
– Socket / HTTP
ずっと接続してる
ゲーム入出力
必要に応じて接続
ゲーム出力
バックエンド
? ユーザークライアントは接続しない
? ゲームサーバとのSocket通信のみ
? DBも含まれる
ずっと接続している
ゲームサーバ間の情報共有
SocketとHTTPの使い分け
? Socket
– サーバからのプッシュが必要な箇所
– レスポンス速度を要求される処理に向いている
– 常時接続
– 差分更新
? HTTP
– サーバからのプッシュが不要な箇所
– レスポンス速度を要求しない物に向いている
– 必要都度、接続/切断
– 一括更新
Socket(常時接続?差分更新)
? 利点
– オペレーション毎の接続コストが発生しない
– 一回の送受信量を少なくできる
? 欠点
– バッテリー消費が多くなる
– 回線切れに弱い
? ソフトウェア側で対応しないといけない内容が増える
– スケールアウトが難しくなりがち
通信経路別の内容
場所 セッション 用途?内容
??????
????????
Socket
常時接続
ゲームへの入力
ゲームからの出力
通信内容:差分更新型
??????
WEB????
HTTP
都度接続
ゲームからの出力
通信内容:描画に必要な完全な内容
????????
????????????
Socket
常時接続
ゲームサーバ間の情報共有
ゲームサーバ全体への命令
通信内容:差分更新型
????/????????????
????????(????)
常時接続 主に更新系クエリ
INSERT, DELETE, UPDATE, たまに SELECT
WEB????
????????(?????)
常時接続 ほとんどが抽出クエリ
SELECT
? ログレスのサーバ
– フロントエンド
– バックエンド
? 実装例
– 移動
– チャット
? 実際に起こった問題と対応
移動
? ログレスでの移動処理
? キャラクターの座標はサーバでも管理
– 歩けない場所を歩かせないため
? MMOの世界で移動すると…
– 動くとどうなる?
? 見えなかった物が見える様になる
? 見えなかったユーザーも見える様になる
– 見えるとどうなる?
? 自分が取った行動を、見えてる人に送らないといけな
くなる
? 見えてる人達が取った行動を受信しないといけなくな
る
こういうこと
通信範囲
? そこで必要になるのが通信範囲という考
え方
通信範囲
この人とはデータ
のやり取りをする
この人達とはデータの
やり取りをしない
移動
? 移動はこの通信範囲の更新を繰り返す
移動した事で、この人達とデータをやり取りする様になる
この人達とデータをやり取りする必要がなくなった
移動のデータフロー
クライアントで移動開始
?移動情報の妥当性を検証
?移動前後の座標周辺に居
るキャラクターの検索
周辺に居るキャラクター
に移動した情報を通知
クライアントで移動開始
移動開始?到達点を送信
クライアントで移動開始
どうしてこんな作りなの?
? 移動の都度、サーバを介していると、移
動開始までの反応が遅くなる
– 他の人から見た移動は、ある程度遅れてもあ
まり気にならない
? クライアントだけで移動させてしまうと、
通信範囲の計算ができない
? クライアントだけで移動させると、マッ
プの当たり判定を完全に無視できてしま
う
チャット
? 文字ベースのコミュニケーション
こんな感じで、発言したキャラク
ターから吹き出しが出る
この部分にチャットログが残る
この間はSocket通信
こっちはHTTP通信
チャットのデータフロー
発言
DBに書く
発言
吹き出し表示
ログ取得
ログ読み込み
吹き出し表示
ログ表示
吹き出し表示
どうしてこんな作りなの?
? チャットの吹き出しは見える人だけ見え
ればOK
? 吹き出しは発言後なるべく速く画面に表
示したい
? チャットログは、自分がオフラインの間
に受信した物も見れて欲しい
– コミュニケーションが途切れるの良くない
? ログレスのサーバ
– フロントエンド
– バックエンド
? 実装例
– 移動
– チャット
? 実際に起こった問題と対応
? 1台のサーバにログインできるプレーヤー数
が限られる
– サーバのリソースには限りがある
? CPU
? メモリ
? ハードディスク
? ネットワークカード
? クライアントは裏で、サーバ間の接続を切り
替えながら動いている
? この切り替え時にサーバへの負荷が大きかっ
た
実際に起こった問題と対応
サーバ间の移动
サーバ间の移动シーケンス
1:移動開始の通知
2:受信用の器を用意
3:準備OK
4:接続しろ
4:データ転送
6:受信完了
6:切断
5:接続
7:完了
8:入場
8:移動前のキャラを消す
ビフォー
ここの負荷がとにかく大きい
アフター
ラウンドロビンで切り替えて使う
どうやって直したの?
他の部分には影響無し
直したのはこの部分
宣伝!!
? 剣と魔法のログレス ~いにしえの女神~
? iOS / Android 絶賛サービス中です!
– 2013/10/11 Android先行体験開始
– 2013/12/17 Android正式サービス開始
– 2014/2/09 60万DL達成
– 2014/3/21 100万DL達成
– 2014/4/22 150万DL達成
– 2014/5/22 200万DL達成
仲間募集!!
? Aimingでは一緒に魅力的なタイトルを作
れるエンジニアの皆様を募集中です!
? 会社見学(@東京、大阪)もやってます
のでお気軽にどうぞ!
? http://aiming-inc.com/
? 以上

More Related Content

What's hot (20)

PPTX
Microsoft Azure WebAppsで ECサイトを構築してみた話 ~EC-CUBE3で試してみました~
典子 松本
?
PDF
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
YutoNishine
?
PDF
闯补惫补によるケ?ーム开発ハ?ッケーシ?化への取り组みと开発ノウハウ
Genki Yamada
?
PPTX
Web制作的に便利な機能満載!Microsoft Azureを使ってみよう
典子 松本
?
PPTX
ガチリアルな修罗チーム开発
Atsushi Kojima
?
PPTX
简単?お手軽!ノンプログラミングで便利叠翱罢を作ってみた话
典子 松本
?
PDF
础肠迟颈惫别搁别肠辞谤诲::贰苍耻尘のススメ
豊明 尾古
?
PDF
誰でも今日から実践できるUnity x PlayFab(Demoパート)
YutoNishine
?
PPTX
案件規模で使い分けよう!Microsoft Azure×WordPressの話
典子 松本
?
PPTX
Web制作に便利な機能いろいろ!Microsoft Azureの概要
典子 松本
?
PDF
s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio
Shuji Watanabe
?
PDF
20150121 jaws ug関西女子会
Shinya Yamada
?
PDF
奥辞谤诲笔谤别蝉蝉の使えるプラグイン2013
Takashi Uemura
?
KEY
iOS6時代のTwitter / Facebook連携
Masahiro Murakami
?
PDF
【Unite Tokyo 2019】Unity + PlayFab ではじめる新しいゲーム運用 ~LiveOpsの始め方~
UnityTechnologiesJapan002
?
KEY
搁补颈濒蝉によるワイルドなソフトウェア开発
Drecom Co., Ltd.
?
PDF
インフラエンシ?ニアってなんて?したっけ(仮)
Akihiro Kuwano
?
PPTX
大规模トラフィックにどのように备えて负荷対策を実施しているのか?
Yusuke Shirakawa
?
PDF
こすもすえび&补尘辫;しばやんの「础锄耻谤别アンカンファレンス~础锄耻谤别については俺たちに闻け(ばええやろ)」
Keiji Kamebuchi
?
PPTX
お得に手軽に?試してみよう!サーバーレスアーキテクチャ ~Azure Functions / Logic Apps~
典子 松本
?
Microsoft Azure WebAppsで ECサイトを構築してみた話 ~EC-CUBE3で試してみました~
典子 松本
?
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
YutoNishine
?
闯补惫补によるケ?ーム开発ハ?ッケーシ?化への取り组みと开発ノウハウ
Genki Yamada
?
Web制作的に便利な機能満載!Microsoft Azureを使ってみよう
典子 松本
?
ガチリアルな修罗チーム开発
Atsushi Kojima
?
简単?お手軽!ノンプログラミングで便利叠翱罢を作ってみた话
典子 松本
?
础肠迟颈惫别搁别肠辞谤诲::贰苍耻尘のススメ
豊明 尾古
?
誰でも今日から実践できるUnity x PlayFab(Demoパート)
YutoNishine
?
案件規模で使い分けよう!Microsoft Azure×WordPressの話
典子 松本
?
Web制作に便利な機能いろいろ!Microsoft Azureの概要
典子 松本
?
s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio
Shuji Watanabe
?
20150121 jaws ug関西女子会
Shinya Yamada
?
奥辞谤诲笔谤别蝉蝉の使えるプラグイン2013
Takashi Uemura
?
iOS6時代のTwitter / Facebook連携
Masahiro Murakami
?
【Unite Tokyo 2019】Unity + PlayFab ではじめる新しいゲーム運用 ~LiveOpsの始め方~
UnityTechnologiesJapan002
?
搁补颈濒蝉によるワイルドなソフトウェア开発
Drecom Co., Ltd.
?
インフラエンシ?ニアってなんて?したっけ(仮)
Akihiro Kuwano
?
大规模トラフィックにどのように备えて负荷対策を実施しているのか?
Yusuke Shirakawa
?
こすもすえび&补尘辫;しばやんの「础锄耻谤别アンカンファレンス~础锄耻谤别については俺たちに闻け(ばええやろ)」
Keiji Kamebuchi
?
お得に手軽に?試してみよう!サーバーレスアーキテクチャ ~Azure Functions / Logic Apps~
典子 松本
?

Viewers also liked (12)

PPTX
Imprementation of realtime_networkgame
Satoshi Yamafuji
?
PDF
分割と整合性と戦う
Yugo Shimizu
?
PDF
负荷がたかいいんだから~?(仮)
Yohei Hamada
?
PDF
サーバーのおしごと
Yugo Shimizu
?
PDF
Fluentd and Embulk Game Server 4
N Masahiro
?
PDF
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Youichiro Miyake
?
PPTX
リアルタイムサーバー ?Erlang/OTPで作るPubSubサーバー?
Yugo Shimizu
?
PDF
负荷対策しておもったことまとめ词闯惭别迟别谤で厂辞肠办别迟.滨翱もいけるでよ词
johgus johgus
?
PPTX
贰尘产耻濒办と顿颈驳诲补驳とデータ分析基盘と
Toru Takahashi
?
PDF
自宅て?出来る!ケ?ームサーハ?の作り方
光晶 上原
?
PDF
サーハ?ー未経験者か?ソーシャルケ?ームを通して知ったサーハ?ーの事
Manabu Koga
?
PDF
ケ?ームサーハ?开発现场の考え方
Daisaku Mochizuki
?
Imprementation of realtime_networkgame
Satoshi Yamafuji
?
分割と整合性と戦う
Yugo Shimizu
?
负荷がたかいいんだから~?(仮)
Yohei Hamada
?
サーバーのおしごと
Yugo Shimizu
?
Fluentd and Embulk Game Server 4
N Masahiro
?
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Youichiro Miyake
?
リアルタイムサーバー ?Erlang/OTPで作るPubSubサーバー?
Yugo Shimizu
?
负荷対策しておもったことまとめ词闯惭别迟别谤で厂辞肠办别迟.滨翱もいけるでよ词
johgus johgus
?
贰尘产耻濒办と顿颈驳诲补驳とデータ分析基盘と
Toru Takahashi
?
自宅て?出来る!ケ?ームサーハ?の作り方
光晶 上原
?
サーハ?ー未経験者か?ソーシャルケ?ームを通して知ったサーハ?ーの事
Manabu Koga
?
ケ?ームサーハ?开発现场の考え方
Daisaku Mochizuki
?
Ad

MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例