Submit Search
Upload
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
•
Download as PPTX, PDF
•
17 likes
•
7,220 views
Satoshi Yamafuji
Follow
2014.7.19 に開催された第二回ゲームサーバ勉強会で使用したスライド http://peatix.com/event/42642
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 33
Download now
Recommended
剣と魔法のログレスーMmoの継続的な改善と運用
剣と魔法のログレスーMmoの継続的な改善と運用
Satoshi Yamafuji
ログレスの戦闘から見るデータ同期について
ログレスの戦闘から見るデータ同期について
Satoshi Yamafuji
スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話
スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話
Akihiro Sugeno
スマホアプリにおけるマルチプレイアクションゲーム開発の実例紹介
スマホアプリにおけるマルチプレイアクションゲーム開発の実例紹介
aktsk
スマホ版ログレスにポストエフェクトシステムを導入した話
スマホ版ログレスにポストエフェクトシステムを導入した話
章暢 藤井
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン(株式会社インフィニットルー...
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン(株式会社インフィニットルー...
Game Tools & Middleware Forum
サイバーエージェントのゲーム事業のインフラからみたゲーム開発スタイルの変遷
サイバーエージェントのゲーム事業のインフラからみたゲーム開発スタイルの変遷
Suguru Shirai
Azure Appservice WebAppsでWordPressサイトを構築すると運用が劇的にラクになる話
Azure Appservice WebAppsでWordPressサイトを構築すると運用が劇的にラクになる話
典子 松本
Recommended
剣と魔法のログレスーMmoの継続的な改善と運用
剣と魔法のログレスーMmoの継続的な改善と運用
Satoshi Yamafuji
ログレスの戦闘から見るデータ同期について
ログレスの戦闘から見るデータ同期について
Satoshi Yamafuji
スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話
スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話
Akihiro Sugeno
スマホアプリにおけるマルチプレイアクションゲーム開発の実例紹介
スマホアプリにおけるマルチプレイアクションゲーム開発の実例紹介
aktsk
スマホ版ログレスにポストエフェクトシステムを導入した話
スマホ版ログレスにポストエフェクトシステムを導入した話
章暢 藤井
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン(株式会社インフィニットルー...
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン(株式会社インフィニットルー...
Game Tools & Middleware Forum
サイバーエージェントのゲーム事業のインフラからみたゲーム開発スタイルの変遷
サイバーエージェントのゲーム事業のインフラからみたゲーム開発スタイルの変遷
Suguru Shirai
Azure Appservice WebAppsでWordPressサイトを構築すると運用が劇的にラクになる話
Azure Appservice WebAppsでWordPressサイトを構築すると運用が劇的にラクになる話
典子 松本
Microsoft Azure WebAppsでECサイトを構築してみた話 ~EC-CUBE3で試してみました~
Microsoft Azure WebAppsでECサイトを構築してみた話 ~EC-CUBE3で試してみました~
典子 松本
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
YutoNishine
Javaによるゲーム開発パッケージ化への取り組みと開発ノウハウ
Javaによるゲーム開発パッケージ化への取り組みと開発ノウハウ
Genki Yamada
Web制作的に便利な機能満載!Microsoft Azureを使ってみよう
Web制作的に便利な機能満載!Microsoft Azureを使ってみよう
典子 松本
ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発
Atsushi Kojima
簡単・お手軽!ノンプログラミングで便利BOTを作ってみた話
簡単・お手軽!ノンプログラミングで便利BOTを作ってみた話
典子 松本
ActiveRecord::Enumのススメ
ActiveRecord::Enumのススメ
豊明 尾古
誰でも今日から実践できるUnity x PlayFab(Demoパート)
誰でも今日から実践できるUnity x PlayFab(Demoパート)
YutoNishine
案件規模で使い分けよう!Microsoft Azure×WordPressの話
案件規模で使い分けよう!Microsoft Azure×WordPressの話
典子 松本
Web制作に便利な機能いろいろ!Microsoft Azureの概要
Web制作に便利な機能いろいろ!Microsoft Azureの概要
典子 松本
s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio
s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio
Shuji Watanabe
20150121 jaws ug関西女子会
20150121 jaws ug関西女子会
Shinya Yamada
WordPressの使えるプラグイン2013
WordPressの使えるプラグイン2013
Takashi Uemura
iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携
Masahiro Murakami
【Unite Tokyo 2019】Unity + PlayFab ではじめる新しいゲーム運用 ~LiveOpsの始め方~
【Unite Tokyo 2019】Unity + PlayFab ではじめる新しいゲーム運用 ~LiveOpsの始め方~
UnityTechnologiesJapan002
Railsによるワイルドなソフトウェア開発
Railsによるワイルドなソフトウェア開発
Drecom Co., Ltd.
インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)
Akihiro Kuwano
大規模トラフィックにどのように備えて負荷対策を実施しているのか?
大規模トラフィックにどのように備えて負荷対策を実施しているのか?
Yusuke Shirakawa
こすもすえび&しばやんの「Azureアンカンファレンス~Azureについては俺たちに聞け(ばええやろ)」
こすもすえび&しばやんの「Azureアンカンファレンス~Azureについては俺たちに聞け(ばええやろ)」
Keiji Kamebuchi
お得に手軽に♪試してみよう!サーバーレスアーキテクチャ ~Azure Functions / Logic Apps~
お得に手軽に♪試してみよう!サーバーレスアーキテクチャ ~Azure Functions / Logic Apps~
典子 松本
Imprementation of realtime_networkgame
Imprementation of realtime_networkgame
Satoshi Yamafuji
分割と整合性と戦う
分割と整合性と戦う
Yugo Shimizu
More Related Content
What's hot
Microsoft Azure WebAppsでECサイトを構築してみた話 ~EC-CUBE3で試してみました~
Microsoft Azure WebAppsでECサイトを構築してみた話 ~EC-CUBE3で試してみました~
典子 松本
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
YutoNishine
Javaによるゲーム開発パッケージ化への取り組みと開発ノウハウ
Javaによるゲーム開発パッケージ化への取り組みと開発ノウハウ
Genki Yamada
Web制作的に便利な機能満載!Microsoft Azureを使ってみよう
Web制作的に便利な機能満載!Microsoft Azureを使ってみよう
典子 松本
ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発
Atsushi Kojima
簡単・お手軽!ノンプログラミングで便利BOTを作ってみた話
簡単・お手軽!ノンプログラミングで便利BOTを作ってみた話
典子 松本
ActiveRecord::Enumのススメ
ActiveRecord::Enumのススメ
豊明 尾古
誰でも今日から実践できるUnity x PlayFab(Demoパート)
誰でも今日から実践できるUnity x PlayFab(Demoパート)
YutoNishine
案件規模で使い分けよう!Microsoft Azure×WordPressの話
案件規模で使い分けよう!Microsoft Azure×WordPressの話
典子 松本
Web制作に便利な機能いろいろ!Microsoft Azureの概要
Web制作に便利な機能いろいろ!Microsoft Azureの概要
典子 松本
s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio
s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio
Shuji Watanabe
20150121 jaws ug関西女子会
20150121 jaws ug関西女子会
Shinya Yamada
WordPressの使えるプラグイン2013
WordPressの使えるプラグイン2013
Takashi Uemura
iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携
Masahiro Murakami
【Unite Tokyo 2019】Unity + PlayFab ではじめる新しいゲーム運用 ~LiveOpsの始め方~
【Unite Tokyo 2019】Unity + PlayFab ではじめる新しいゲーム運用 ~LiveOpsの始め方~
UnityTechnologiesJapan002
Railsによるワイルドなソフトウェア開発
Railsによるワイルドなソフトウェア開発
Drecom Co., Ltd.
インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)
Akihiro Kuwano
大規模トラフィックにどのように備えて負荷対策を実施しているのか?
大規模トラフィックにどのように備えて負荷対策を実施しているのか?
Yusuke Shirakawa
こすもすえび&しばやんの「Azureアンカンファレンス~Azureについては俺たちに聞け(ばええやろ)」
こすもすえび&しばやんの「Azureアンカンファレンス~Azureについては俺たちに聞け(ばええやろ)」
Keiji Kamebuchi
お得に手軽に♪試してみよう!サーバーレスアーキテクチャ ~Azure Functions / Logic Apps~
お得に手軽に♪試してみよう!サーバーレスアーキテクチャ ~Azure Functions / Logic Apps~
典子 松本
What's hot
(20)
Microsoft Azure WebAppsでECサイトを構築してみた話 ~EC-CUBE3で試してみました~
Microsoft Azure WebAppsでECサイトを構築してみた話 ~EC-CUBE3で試してみました~
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
Javaによるゲーム開発パッケージ化への取り組みと開発ノウハウ
Javaによるゲーム開発パッケージ化への取り組みと開発ノウハウ
Web制作的に便利な機能満載!Microsoft Azureを使ってみよう
Web制作的に便利な機能満載!Microsoft Azureを使ってみよう
ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発
簡単・お手軽!ノンプログラミングで便利BOTを作ってみた話
簡単・お手軽!ノンプログラミングで便利BOTを作ってみた話
ActiveRecord::Enumのススメ
ActiveRecord::Enumのススメ
誰でも今日から実践できるUnity x PlayFab(Demoパート)
誰でも今日から実践できるUnity x PlayFab(Demoパート)
案件規模で使い分けよう!Microsoft Azure×WordPressの話
案件規模で使い分けよう!Microsoft Azure×WordPressの話
Web制作に便利な機能いろいろ!Microsoft Azureの概要
Web制作に便利な機能いろいろ!Microsoft Azureの概要
s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio
s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio
20150121 jaws ug関西女子会
20150121 jaws ug関西女子会
WordPressの使えるプラグイン2013
WordPressの使えるプラグイン2013
iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携
【Unite Tokyo 2019】Unity + PlayFab ではじめる新しいゲーム運用 ~LiveOpsの始め方~
【Unite Tokyo 2019】Unity + PlayFab ではじめる新しいゲーム運用 ~LiveOpsの始め方~
Railsによるワイルドなソフトウェア開発
Railsによるワイルドなソフトウェア開発
インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)
大規模トラフィックにどのように備えて負荷対策を実施しているのか?
大規模トラフィックにどのように備えて負荷対策を実施しているのか?
こすもすえび&しばやんの「Azureアンカンファレンス~Azureについては俺たちに聞け(ばええやろ)」
こすもすえび&しばやんの「Azureアンカンファレンス~Azureについては俺たちに聞け(ばええやろ)」
お得に手軽に♪試してみよう!サーバーレスアーキテクチャ ~Azure Functions / Logic Apps~
お得に手軽に♪試してみよう!サーバーレスアーキテクチャ ~Azure Functions / Logic Apps~
Viewers also liked
Imprementation of realtime_networkgame
Imprementation of realtime_networkgame
Satoshi Yamafuji
分割と整合性と戦う
分割と整合性と戦う
Yugo Shimizu
負荷がたかいいんだから~♪(仮)
負荷がたかいいんだから~♪(仮)
Yohei Hamada
サーバーのおしごと
サーバーのおしごと
Yugo Shimizu
Fluentd and Embulk Game Server 4
Fluentd and Embulk Game Server 4
N Masahiro
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Youichiro Miyake
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
Yugo Shimizu
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
johgus johgus
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方
光晶 上原
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
Manabu Koga
ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方
Daisaku Mochizuki
Viewers also liked
(12)
Imprementation of realtime_networkgame
Imprementation of realtime_networkgame
分割と整合性と戦う
分割と整合性と戦う
負荷がたかいいんだから~♪(仮)
負荷がたかいいんだから~♪(仮)
サーバーのおしごと
サーバーのおしごと
Fluentd and Embulk Game Server 4
Fluentd and Embulk Game Server 4
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方
Similar to MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
オンラインゲームのRails複数db戦略
オンラインゲームのRails複数db戦略
Yasutomo Uemori
がんばれガンプ ソルバルウを倒せ
がんばれガンプ ソルバルウを倒せ
Tomohiro Suzuki
スマートフォンゲーム開発におけるマルチデバイス対応の必要性 2013-05-08
スマートフォンゲーム開発におけるマルチデバイス対応の必要性 2013-05-08
俊仁 小林
20141120 クラウドが破壊するもの、生み出すもの
20141120 クラウドが破壊するもの、生み出すもの
Seiji Akatsuka
ソーシャルゲーム開発における運用とそのツール
ソーシャルゲーム開発における運用とそのツール
Yoshiaki Sugimoto
クラウドのご紹介
クラウドのご紹介
Junpei Nakada
[青森]小さな会社のゲームチェンジ 公開資料
[青森]小さな会社のゲームチェンジ 公開資料
Hiromichi Koga
ソースコードレビューのススメ
ソースコードレビューのススメ
KLab Inc. / Tech
Cocos sharpでゲーム開発してみました
Cocos sharpでゲーム開発してみました
Tomohiro Suzuki
UnrealEngine の VR 事情
UnrealEngine の VR 事情
Masaaki Suga
【CEDEC2015】リアルタイム通信アクションゲーム60分クッキング!〜1時間でゼロから本格的MOゲームを完成させるライブコーディングデモ〜
【CEDEC2015】リアルタイム通信アクションゲーム60分クッキング!〜1時間でゼロから本格的MOゲームを完成させるライブコーディングデモ〜
モノビット エンジン
非ゲーム業界のデザイナーが CEDECに参加してきた
非ゲーム業界のデザイナーが CEDECに参加してきた
Meyco U
ロボット好き集まれ!こいつ、動くぞ。星と翼のパラドクス開発事例
ロボット好き集まれ!こいつ、動くぞ。星と翼のパラドクス開発事例
エピック・ゲームズ・ジャパン Epic Games Japan
20140315_tanakaseigo_creator_meetup
20140315_tanakaseigo_creator_meetup
Seigo Tanaka
「JPOHC」のロゴ制作の話
「JPOHC」のロゴ制作の話
典子 松本
【QRコードアーティストの自立戦略 ~ UX/UIデザインワークショップ】
【QRコードアーティストの自立戦略 ~ UX/UIデザインワークショップ】
Meyco U
rails-developers-meetup-day4
rails-developers-meetup-day4
Drecom Co., Ltd.
Inside CyberAgent's Game Development
Inside CyberAgent's Game Development
Suguru Shirai
大規模JavaScript開発
大規模JavaScript開発
Yoshiki Shibukawa
Rails api way in aiming
Rails api way in aiming
Yasutomo Uemori
Similar to MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
(20)
オンラインゲームのRails複数db戦略
オンラインゲームのRails複数db戦略
がんばれガンプ ソルバルウを倒せ
がんばれガンプ ソルバルウを倒せ
スマートフォンゲーム開発におけるマルチデバイス対応の必要性 2013-05-08
スマートフォンゲーム開発におけるマルチデバイス対応の必要性 2013-05-08
20141120 クラウドが破壊するもの、生み出すもの
20141120 クラウドが破壊するもの、生み出すもの
ソーシャルゲーム開発における運用とそのツール
ソーシャルゲーム開発における運用とそのツール
クラウドのご紹介
クラウドのご紹介
[青森]小さな会社のゲームチェンジ 公開資料
[青森]小さな会社のゲームチェンジ 公開資料
ソースコードレビューのススメ
ソースコードレビューのススメ
Cocos sharpでゲーム開発してみました
Cocos sharpでゲーム開発してみました
UnrealEngine の VR 事情
UnrealEngine の VR 事情
【CEDEC2015】リアルタイム通信アクションゲーム60分クッキング!〜1時間でゼロから本格的MOゲームを完成させるライブコーディングデモ〜
【CEDEC2015】リアルタイム通信アクションゲーム60分クッキング!〜1時間でゼロから本格的MOゲームを完成させるライブコーディングデモ〜
非ゲーム業界のデザイナーが CEDECに参加してきた
非ゲーム業界のデザイナーが CEDECに参加してきた
ロボット好き集まれ!こいつ、動くぞ。星と翼のパラドクス開発事例
ロボット好き集まれ!こいつ、動くぞ。星と翼のパラドクス開発事例
20140315_tanakaseigo_creator_meetup
20140315_tanakaseigo_creator_meetup
「JPOHC」のロゴ制作の話
「JPOHC」のロゴ制作の話
【QRコードアーティストの自立戦略 ~ UX/UIデザインワークショップ】
【QRコードアーティストの自立戦略 ~ UX/UIデザインワークショップ】
rails-developers-meetup-day4
rails-developers-meetup-day4
Inside CyberAgent's Game Development
Inside CyberAgent's Game Development
大規模JavaScript開発
大規模JavaScript開発
Rails api way in aiming
Rails api way in aiming
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
1.
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例 山藤 智之
2.
Aiming • 代表:椎葉 忠志 •
オンラインゲームの会社 • 企画・開発・運営 全部やってます!! • 東京、大阪 • HP:http://aiming-inc.com/
3.
自己紹介 • 山藤 智之 •
最初はWEB系(R&D) • 2007年からオンラインゲーム開発 – 開発タイトル • BladeChronicle • 剣と魔法のログレス(PCブラウザ) • 剣と魔法のログレス ~いにしえの女神~ • 株式会社Aiming 大阪スタジオ所属
4.
ログレス • PC – 剣と魔法のログレス –
2011年10月サービス開始 – http://mmo-logres.com/ • スマートフォン – 剣と魔法のログレス ~いにしえの女神~ – 2013年12月サービス開始 – http://sp.mmo-logres.com/ – 2014年5月 200万DL達成
5.
6.
目次 • ログレスのサーバ – フロントエンド –
バックエンド • 実装例 – 移動 – チャット • 実際に起こった問題と対応
7.
• ログレスのサーバ – フロントエンド –
バックエンド • 実装例 – 移動 – チャット • 実際に起こった問題と対応
8.
ログレスのサーバ • 階層を分けて冗長化しています • 縦に繋ぐ、同階層での横の繋がりは無し WAN
WAN
9.
フロントエンド • ユーザークライアントが接続する • 2種類の通信を使い分け –
Socket / HTTP ずっと接続してる ゲーム入出力 必要に応じて接続 ゲーム出力
10.
バックエンド • ユーザークライアントは接続しない • ゲームサーバとのSocket通信のみ •
DBも含まれる ずっと接続している ゲームサーバ間の情報共有
11.
SocketとHTTPの使い分け • Socket – サーバからのプッシュが必要な箇所 –
レスポンス速度を要求される処理に向いている – 常時接続 – 差分更新 • HTTP – サーバからのプッシュが不要な箇所 – レスポンス速度を要求しない物に向いている – 必要都度、接続/切断 – 一括更新
12.
Socket(常時接続・差分更新) • 利点 – オペレーション毎の接続コストが発生しない –
一回の送受信量を少なくできる • 欠点 – バッテリー消費が多くなる – 回線切れに弱い • ソフトウェア側で対応しないといけない内容が増える – スケールアウトが難しくなりがち
13.
通信経路別の内容 場所 セッション 用途・内容 クライアント ゲームサーバ Socket 常時接続 ゲームへの入力 ゲームからの出力 通信内容:差分更新型 クライアント WEBサーバ HTTP 都度接続 ゲームからの出力 通信内容:描画に必要な完全な内容 ゲームサーバ バックエンドサーバ Socket 常時接続 ゲームサーバ間の情報共有 ゲームサーバ全体への命令 通信内容:差分更新型 ゲーム/バックエンドサーバ データベース(マスター) 常時接続
主に更新系クエリ INSERT, DELETE, UPDATE, たまに SELECT WEBサーバ データベース(スレーブ) 常時接続 ほとんどが抽出クエリ SELECT
14.
• ログレスのサーバ – フロントエンド –
バックエンド • 実装例 – 移動 – チャット • 実際に起こった問題と対応
15.
移動 • ログレスでの移動処理 • キャラクターの座標はサーバでも管理 –
歩けない場所を歩かせないため • MMOの世界で移動すると… – 動くとどうなる? • 見えなかった物が見える様になる • 見えなかったユーザーも見える様になる – 見えるとどうなる? • 自分が取った行動を、見えてる人に送らないといけな くなる • 見えてる人達が取った行動を受信しないといけなくな る
16.
こういうこと
17.
通信範囲 • そこで必要になるのが通信範囲という考 え方 通信範囲 この人とはデータ のやり取りをする この人達とはデータの やり取りをしない
18.
移動 • 移動はこの通信範囲の更新を繰り返す 移動した事で、この人達とデータをやり取りする様になる この人達とデータをやり取りする必要がなくなった
19.
移動のデータフロー クライアントで移動開始 ・移動情報の妥当性を検証 ・移動前後の座標周辺に居 るキャラクターの検索 周辺に居るキャラクター に移動した情報を通知 クライアントで移動開始 移動開始・到達点を送信 クライアントで移動開始
20.
どうしてこんな作りなの? • 移動の都度、サーバを介していると、移 動開始までの反応が遅くなる – 他の人から見た移動は、ある程度遅れてもあ まり気にならない •
クライアントだけで移動させてしまうと、 通信範囲の計算ができない • クライアントだけで移動させると、マッ プの当たり判定を完全に無視できてしま う
21.
チャット • 文字ベースのコミュニケーション こんな感じで、発言したキャラク ターから吹き出しが出る この部分にチャットログが残る この間はSocket通信 こっちはHTTP通信
22.
チャットのデータフロー 発言 DBに書く 発言 吹き出し表示 ログ取得 ログ読み込み 吹き出し表示 ログ表示 吹き出し表示
23.
どうしてこんな作りなの? • チャットの吹き出しは見える人だけ見え ればOK • 吹き出しは発言後なるべく速く画面に表 示したい •
チャットログは、自分がオフラインの間 に受信した物も見れて欲しい – コミュニケーションが途切れるの良くない
24.
• ログレスのサーバ – フロントエンド –
バックエンド • 実装例 – 移動 – チャット • 実際に起こった問題と対応
25.
• 1台のサーバにログインできるプレーヤー数 が限られる – サーバのリソースには限りがある •
CPU • メモリ • ハードディスク • ネットワークカード • クライアントは裏で、サーバ間の接続を切り 替えながら動いている • この切り替え時にサーバへの負荷が大きかっ た 実際に起こった問題と対応
26.
サーバ間の移動
27.
サーバ間の移動シーケンス 1:移動開始の通知 2:受信用の器を用意 3:準備OK 4:接続しろ 4:データ転送 6:受信完了 6:切断 5:接続 7:完了 8:入場 8:移動前のキャラを消す
28.
ビフォー ここの負荷がとにかく大きい
29.
アフター ラウンドロビンで切り替えて使う
30.
どうやって直したの? 他の部分には影響無し 直したのはこの部分
31.
宣伝!! • 剣と魔法のログレス ~いにしえの女神~ •
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達成
32.
仲間募集!! • Aimingでは一緒に魅力的なタイトルを作 れるエンジニアの皆様を募集中です! • 会社見学(@東京、大阪)もやってます のでお気軽にどうぞ! •
http://aiming-inc.com/
33.
• 以上
Download now