Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
中嶋 謙互(取締役CTO)
安田 京人(ミドルウェア事業部部長)
新しくなったモノビットエンジンを使って
10万人規模のサーバを構築するノウハウを公開!
モノビットエンジン勉強会
in
サイバーコネクトツー様
株式会社モノビット
第一部
モノビ...
スマホ/家庭用ゲームやVRコンテンツで、マルチプレイを簡単に実現できる、リアルタイム通信ミド
ルウェアです。主に3つの製品ラインナップで展開しています。2017年にVer2.0に進化しました!
1,Monobit Revolution Serv...
- 2 -
MRS(Monobit Revolution Server)のご紹介
■ MRS(Monobit Revolution Server)とは
これまでにない大規模オンラインゲーム開発が可能
低遅延が要求されるアクションゲームやVRなど
リアルタイム通信コンテンツの開発に最適
- 3 -
■ MRS(Monobit Revolution Server)の特徴
●低遅延・高効率でのリアルタイム通信制御
- 通信シーケンスや内部プロセス、利用者に提供するAPI等を刷新
- リアルタイム通信機能として、より速く、よりシンプルな設計を実...
■ MRS(Monobit Revolution Server)の特徴
●多種多様なプラットフォームに対応
●ゲームエンジン、開発言語を多数サポート
C/C++ JavaC#
Java
Script
家庭用ゲーム機やマルチプラットフォームも対応...
■ MRS(Monobit Revolution Server)の特徴
●堅牢な暗号化によりチート対策も万全
・ 送信レコード単位で、暗号処理の適用可否を設定可能
- 暗号処理はCPU負荷を掛けやすい
- 秘匿性が低い送信レコードには暗号処理さ...
■ MRS(Monobit Revolution Server)の特徴
- mackerel_agent をインストールするだけで問題なく監視可能
- システムメトリック
ロードアベレージ, CPU, メモリ, ディスクアクセス, ネットワーク...
■ MRS(Monobit Revolution Server)の特徴
●低遅延・高効率化のNiftyCloudでの実証実験
・ TCP による最高性能試験の結果、
毎秒約540,000レコードのECHO送受信を実現させることが可能
※ MRS...
・機能比較(MRS vs 従来品)
機能 新MRS 旧エンジン
対応プロトコル TCP/UDP/RUDP/WebSocket TCP
外部API設計 C言語風(シンプル化) C++風
遅延 マイクロ秒 ミリ秒
CPUスレッドあたりスループット
...
対応
プラットフォーム
■ MRS(Monobit Revolution Server)の展望
●MRSの今後の開発ロードマップとリリース予定
通信方式
実装方法
現行リリース 2017年8月 2017年9月 2017年10月 2017年冬
L...
MUN (Monobit Unity Networking)のご紹介
- 11 -
■ MUN(Monobit Unity Networking)とは
クライアントのみでも実装できる、Unity特化型の通信エンジン
マルチプレイを簡単に実装できるアセットです
- 12 -
●対応バージョン
Unity4.x : 4.3.4 以...
■ MUN(Monobit Unity Networking)の特徴
- サーバ接続/切断、オフラインモード
- ロビーやルームに対する入室/退室制御、ロビーとルームの状態取得
- プレイヤー情報の取得(サーバ内検索, プレイヤーパラメータの設...
■ MUN(Monobit Unity Networking)の特徴
●すべての通信ロジックを、クライアント側オンリーで実装可能
MUN リリース当初からの設計思想を実現
- 14 -
- 『サーバサイドの構築なしでリアルタイム通信を実現したい...
■ MUN(Monobit Unity Networking)の特徴
- MUNサーバ側は、TCP/UDPの通信ポート双方で待ち受けしている
- 同一認証のMUNクライアントであれば、TCPの接続クライアントと
UDPの接続クライアントを同一ル...
■ MUN(Monobit Unity Networking)の特徴
- クライアントサイドの改ざんに伴う、チートの横行を防ぐ術がほとんどない
すべてのソースコードがクライアントに含まれるため
- ホストの優位性が圧倒的に高い
ノンプレイヤーの...
機能 MUN2.0 MUN1.0
プロトコル TCP/UDP/RUDP TCP
サーバ開発 可能(C++/C#) 不可
自動スケール機能
新製品MRSクラスタ
リリース予定
なし
負荷試験自動化ツール ○ ☓
カスタム認証機能 ○ ☓
汎用ルー...
対応
プラットフォーム
■ MUN(Monobit Unity Networking)の展望
●MUNの今後の開発ロードマップとリリース予定
クライアント
プログラム
サーバ
プログラム
2017年8月 2017年9月 2017年10月 201...
VR VoiceChat with MUN のご紹介
- 19 -
■ VR VoiceChat with MUN とは
MUNをベースに動作する『ボイスチャットエンジン』
コンポーネントを追加するだけで簡単に実装が可能!
無音検知、マルチキャスト配信、遅延音声カット機能を搭載!
- 20 -
■ VR VoiceChat with MUN の特徴
VoiceChat with MUN の機能を実装するには、Unityのオブジェクトに
『MonobitVoice』のコンポーネントを追加します
●コンポーネントを追加するだけで簡単に実装...
■ VR VoiceChat with MUN の特徴
- キーボードのタイピング音や、周囲の環境騒音の同時伝送を防ぎます
- 『一定量以下のdb値の音声を送信しないようにする』 という
シンプルなソフトウェアノイズキャンセリングを実装していま...
■ VR VoiceChat with MUN の特徴
- 例えば 『FPSのチーム戦』 などにおいて、
『戦闘前のブリーフィング中にはチーム関係なく全員と会話させたい』
『戦闘中は自分のチームだけで会話させ、相手に音声を伝えたくない』
という...
■ VR VoiceChat with MUN の特徴
- 『相手の音声が数ミリ秒~数秒遅れて再生』 されるような
再生遅延の状態が著しく悪い状態のときに 『再生待ちレコード』 を削除し、
よりリアルタイムな音声を受信側で再生させる機能です
●...
■ VR VoiceChat with MUN の展望
- 25 -
●今後の開発ロードマップとリリース予定
ボイスチャット
専用サーバ
P2P対応
未定2017年秋 2017年冬
ノンサーバによる
ボイスチャットの実装
サーバミキシング機能の...
26
・お気軽にお問合せください
contact@monobit.co.jp
■ まとめ
<導入の利点>
1,LinuxでC#、C++ゲームサーバが運用出来る
2,C++で超高速サーバが開発可能
3,日本国内開発でサポートが充実
<導入方法>
...
Upcoming SlideShare
Loading in …5
×

【モノビットエンジン勉強会inサイバーコネクトツー】 第一部「モノビットエンジンVer2.0シリーズ概要」

140 views

Published on

2017年10月27日、モノビットエンジン勉強会inサイバーコネクトツーにて、安田京人が講演しました「モノビットエンジンVer2.0シリーズ概要」のスライドになります。ネットワークゲームを製作する際にご参考頂けますと幸いです。

▼講演概要
2017年に完全新作、超高性能に生まれ変わったモノビットエンジンの製品群を用いて、10万人規模の大規模同時接続を行うMO型、MOBA型、MMORPGなどのネットワークゲームについて、どのようにプログラムとサーバを構築し、安全に運用することが出来るようになったのか、実際にコーディング実例やサーバ構成図、運用管理画面を表示しつつ、ご説明いたしました。
また、「ネットワークゲームにおけるTCPとUDPの使い分け」と称して中嶋謙互がTCP/UDPの性能を実際の計測値をもとに徹底比較しつつ、解説しました。
なお、今回はCEDEC2017に公開したセッションに加えて、これまでに頂いたご質問とその回答などを交えてお届けいたしました!

Published in: Technology
  • Be the first to comment

【モノビットエンジン勉強会inサイバーコネクトツー】 第一部「モノビットエンジンVer2.0シリーズ概要」

  1. 1. 中嶋 謙互(取締役CTO) 安田 京人(ミドルウェア事業部部長) 新しくなったモノビットエンジンを使って 10万人規模のサーバを構築するノウハウを公開! モノビットエンジン勉強会 in サイバーコネクトツー様 株式会社モノビット 第一部 モノビットエンジンVer2.0シリーズ概要 (安田)
  2. 2. スマホ/家庭用ゲームやVRコンテンツで、マルチプレイを簡単に実現できる、リアルタイム通信ミド ルウェアです。主に3つの製品ラインナップで展開しています。2017年にVer2.0に進化しました! 1,Monobit Revolution Server (略称:MRS) MMORPGや、多人数MOアクションゲームにも対応出来 る処理速度とレスポンスを追求した、高速ゲームサーバ です。シンプルなAPIで超高速通信かつ大規模同時接 続を実現します。 ■モノビットエンジンVer2.0シリーズとは? 2,Monobit Unity Networking 2.0 (略称:MUN2.0) Unityに特化した通信ミドルウェアです。マッチング、ルー ム、通信リレーの機能が標準で用意されており、ネットワ ークの知識がなくてもマルチプレイを実装可能。RMSと連 携して、サーバにもC++/C#でコードが書けるように進化 しました。 3,VR Voice Chat 2.0 Unityで簡単にボイスチャットを実現することができるUnity プラグインです。2.0になってレスポンス速度上昇!
  3. 3. - 2 - MRS(Monobit Revolution Server)のご紹介
  4. 4. ■ MRS(Monobit Revolution Server)とは これまでにない大規模オンラインゲーム開発が可能 低遅延が要求されるアクションゲームやVRなど リアルタイム通信コンテンツの開発に最適 - 3 -
  5. 5. ■ MRS(Monobit Revolution Server)の特徴 ●低遅延・高効率でのリアルタイム通信制御 - 通信シーケンスや内部プロセス、利用者に提供するAPI等を刷新 - リアルタイム通信機能として、より速く、よりシンプルな設計を実現 従来リリースしていた「リアルタイム通信エンジン」をゼロから見直して作成 ●TCP, UDP, WebSocket の通信プロトコルの利用 - ネットワーク高速化とサーバ側CPU負荷軽減を実現 - 1CPUあたり最大20,000クライアントの同時接続を実現 TCP 接続は従来の「リアルタイム通信エンジン」を大幅に強化 UDP 接続プロトコルのサポート - リアルタイム性の求められるデータの送受信に最適なUDP/RUDPを使用可能 WebSocket 接続プロトコルのサポート(ver.1.1.0 以降) - PhantomJS(http://phantomjs.org/)を利用した自動テストが可能 高速処理によるインフラコストの大幅低減を実現 - 4 -
  6. 6. ■ MRS(Monobit Revolution Server)の特徴 ●多種多様なプラットフォームに対応 ●ゲームエンジン、開発言語を多数サポート C/C++ JavaC# Java Script 家庭用ゲーム機やマルチプラットフォームも対応 PHP, Ruby Windows/VisualStudioでサーバ開発が可能に! - 5 -
  7. 7. ■ MRS(Monobit Revolution Server)の特徴 ●堅牢な暗号化によりチート対策も万全 ・ 送信レコード単位で、暗号処理の適用可否を設定可能 - 暗号処理はCPU負荷を掛けやすい - 秘匿性が低い送信レコードには暗号処理させないなどの施策により 全体的なスループット向上が見込まれる ・ 暗号方式について - 暗号鍵方式には AES128 を採用 - 暗号鍵の交換方式には EDCH(楕円曲線ディフィー・ヘルマン) 鍵共有アルゴリズムを採用 ●拡張ライブラリによる機能の拡張が可能 ルームサーバの機能や、ゲームマッチング、チャットなどは 『MRS_ROOM』 や 『MUN』 などで実現可能 ルーム作成 マッチング チャット MRS_ROOM MUN 転送レコードごとの暗号化 - 6 -
  8. 8. ■ MRS(Monobit Revolution Server)の特徴 - mackerel_agent をインストールするだけで問題なく監視可能 - システムメトリック ロードアベレージ, CPU, メモリ, ディスクアクセス, ネットワーク帯域, ストレージ使用状況の監視 - カスタムメトリック 各サーバプロセスごとのモニタリング, 同時利用者数(CCU)の監視など ●直感型サーバ監視ツール 『Mackerel』 に対応 MRS の対応内容 Mackerelとは - サーバプロセスの監視状況をリアルタイムにグラフ化 - モニタリングはもちろん、ブラウザ対応UIやAPIが豊富 高機能な監視ツールにより運用をサポート - 7 -
  9. 9. ■ MRS(Monobit Revolution Server)の特徴 ●低遅延・高効率化のNiftyCloudでの実証実験 ・ TCP による最高性能試験の結果、 毎秒約540,000レコードのECHO送受信を実現させることが可能 ※ MRS_bench 計測結果(1秒間隔の計測ログ、暗号化なし) loop:試行数 s:総送信バイト数 r:総受信バイト数(総受信レコード数) c:接続数 d:切断数 e:エラー検知数 loop:1 s:0 r:0(0) c:0 d:0 e:0 loop:1302 s:940160 r:46678(32104) c:40 d:0 e:0 loop:2576 s:4679800 r:366276(143363) c:117 d:0 e:0 loop:3222 s:8596640 r:1443319(340764) c:193 d:0 e:0 loop:3627 s:12284680 r:3220253(495575) c:266 d:0 e:0 loop:3939 s:15922640 r:5375457(551009) c:300 d:0 e:0 loop:4240 s:19534640 r:7557718(543762) c:300 d:0 e:0 ・ UDP による最高性能試験の結果、 毎秒約350,000レコードのECHO送受信を実現させることが可能 ※ MRS_bench 計測結果(1秒間隔の計測ログ、暗号化なし) loop:試行数 s:総送信バイト数 r:総受信バイト数(総受信レコード数) c:接続数 d:切断数 e:エラー検知数 loop:1 s:0 r:0(0) c:0 d:0 e:0 loop:698 s:133020 r:132220(132220) c:20 d:0 e:400 loop:1624 s:770060 r:768440(346380) c:40 d:0 e:920 loop:2491 s:1463660 r:1461980(344720) c:40 d:0 e:920 loop:3373 s:2169260 r:2167640(353580) c:40 d:0 e:920 loop:4255 s:2874860 r:2873220(353560) c:40 d:0 e:920 - Server : Nifty-Cloud e-large8(¥37/h) x1 Intel Xeon 4Core CPU(E5-2697) 2.60GHz / 8GB RAM - Client : VMware 上の 仮想 Linux PC ※ MRS ver.1.0.0 リリース版での検証 ※ 計測ツールは弊社内製のベンチマークツール 『MRS_bench』 によるもの - 8 -
  10. 10. ・機能比較(MRS vs 従来品) 機能 新MRS 旧エンジン 対応プロトコル TCP/UDP/RUDP/WebSocket TCP 外部API設計 C言語風(シンプル化) C++風 遅延 マイクロ秒 ミリ秒 CPUスレッドあたりスループット 300同時接続時 毎秒54万レコード 300同時接続時 毎秒数万レコード クライアント開発言語 C++,C# C++,C# サーバ開発言語 C++,C# C++ サーバOS Linux,Windows,MacOSX Linux 9 ■ MRS(Monobit Revolution Server)の特徴
  11. 11. 対応 プラットフォーム ■ MRS(Monobit Revolution Server)の展望 ●MRSの今後の開発ロードマップとリリース予定 通信方式 実装方法 現行リリース 2017年8月 2017年9月 2017年10月 2017年冬 Linux Windows MacOSX Android iOS Unity Client/Server 通信方式 TCP/UDP/RUDP プロトコル WebSocket CのAPIを利用 通信結果を コールバック処理 他言語はバイン ディングで対応 Cocos2d-x Unity+WebGL UnrealEngine 4 P2P通信方式 コールバック処理 のRPC化 RPCスタブコードの ジェネレータを リリース - 10 -
  12. 12. MUN (Monobit Unity Networking)のご紹介 - 11 -
  13. 13. ■ MUN(Monobit Unity Networking)とは クライアントのみでも実装できる、Unity特化型の通信エンジン マルチプレイを簡単に実装できるアセットです - 12 - ●対応バージョン Unity4.x : 4.3.4 以降の Pro 版に対応 Unity5.x : Personal / Pro 両対応 Unity2017.x : 対応中
  14. 14. ■ MUN(Monobit Unity Networking)の特徴 - サーバ接続/切断、オフラインモード - ロビーやルームに対する入室/退室制御、ロビーとルームの状態取得 - プレイヤー情報の取得(サーバ内検索, プレイヤーパラメータの設定と取得) - RPCによる、任意のクライアントに対する情報送信および受信 - シーン内オブジェクトの位置・姿勢・アニメーション等の同期 - 各種条件に応じた、マッチメイキング制御 - ノンプログラミング通信制御 etc... ※すべて単一のコンポーネントやAPIで実装可能 MUN で実装できる機能の一部 - 13 - ※各種家庭用ゲーム機はNDA締結により利用可能になります ●多彩な機能が多様なプラットフォームで利用可能 利用可能なプラットフォーム
  15. 15. ■ MUN(Monobit Unity Networking)の特徴 ●すべての通信ロジックを、クライアント側オンリーで実装可能 MUN リリース当初からの設計思想を実現 - 14 - - 『サーバサイドの構築なしでリアルタイム通信を実現したい』 というご要望に対応 - 通信ロジックも含め、 オンラインゲームのすべての制御をクライアント側でコーディング可能! ※MUNサーバはbroadcastでリレー配信する役割を果たします - クライアントコードをそのままサーバに移植して、簡単にチート対策! - MUN標準機能のサーバのソースコードを公開中。VisualStudioでカスタマイズ可能。 ●必要に応じて、サーバにコードを書くことも可能! MUN2.0より、MRSと連携してC++/C#言語でサーバ開発が可能になりました! サーバとクライアントでコードを自在に配置可能
  16. 16. ■ MUN(Monobit Unity Networking)の特徴 - MUNサーバ側は、TCP/UDPの通信ポート双方で待ち受けしている - 同一認証のMUNクライアントであれば、TCPの接続クライアントと UDPの接続クライアントを同一ルームに接続させることも可能 ●TCP, UDPの通信プロトコルの利用 MRSに基づき、TCP/UDPの通信プロトコルをサポート MUNにおける UDP/RUDP接続プロトコルについて - 15 - - MUNの内部処理で行われる送受信(ロビー/ルームの入退室など)の 通信をUDPで行なう場合、すべて RUDP で伝送される - RPC(リモートプロシージャコール)、およびオブジェクト同期通信のみ UDP/RUDP の個別設定が可能 速度を重視するか信頼性を重視するか、 場面によって最適な通信プロトコルを選択可能
  17. 17. ■ MUN(Monobit Unity Networking)の特徴 - クライアントサイドの改ざんに伴う、チートの横行を防ぐ術がほとんどない すべてのソースコードがクライアントに含まれるため - ホストの優位性が圧倒的に高い ノンプレイヤーの通信データについて、ホストは即時実行するが 他クライアントはホストからの通信を待たねばならないため - ゲーム進行が、ホストの性能に依存する ●オンプレミス版MUNサーバを用いたサーバサイド実装にも対応 - 16 - クライアント側オンリーでの実装における『問題点』 サーバサイド実装にすることの『メリット』 - サーバサイドに実装することにより、クライアント改ざんの隙を与えない ほとんどの処理はサーバ依存にし、クライアントはビューアとして機能させる - すべてのクライアントに対し、『平等なサービス』を提供できる ホストも他のクライアントで実行タイミングを完全に一致させることができる
  18. 18. 機能 MUN2.0 MUN1.0 プロトコル TCP/UDP/RUDP TCP サーバ開発 可能(C++/C#) 不可 自動スケール機能 新製品MRSクラスタ リリース予定 なし 負荷試験自動化ツール ○ ☓ カスタム認証機能 ○ ☓ 汎用ルームサーバー ○ ○ マッチメイキング ○ ○ プレイヤー検索 ○ ○ ルーム作成・入退室制御 ○ ○ ルーム名・人数取得 ○ ○ RPC同期通信 ○ ○ 再接続処理 ○ ○ 17 ■ MUN(Monobit Unity Networking)の特徴 ●従来製品との機能比較(MUN2.0 vs MUN)
  19. 19. 対応 プラットフォーム ■ MUN(Monobit Unity Networking)の展望 ●MUNの今後の開発ロードマップとリリース予定 クライアント プログラム サーバ プログラム 2017年8月 2017年9月 2017年10月 2017年秋 2017年冬 送受信制限機能 の実装 シーケンス 最適化 内部データベース 再構築 差分データ 送信制御 Unity+WebGL NET CORE対応 - 18 - 大量RPC送受信時 の処理負荷軽減
  20. 20. VR VoiceChat with MUN のご紹介 - 19 -
  21. 21. ■ VR VoiceChat with MUN とは MUNをベースに動作する『ボイスチャットエンジン』 コンポーネントを追加するだけで簡単に実装が可能! 無音検知、マルチキャスト配信、遅延音声カット機能を搭載! - 20 -
  22. 22. ■ VR VoiceChat with MUN の特徴 VoiceChat with MUN の機能を実装するには、Unityのオブジェクトに 『MonobitVoice』のコンポーネントを追加します ●コンポーネントを追加するだけで簡単に実装が可能 - 21 - 上記コンポーネントを追加した状態で、MUNによる通信同期を行なう シーンファイル上で動かすだけで、ボイスチャットが簡単に実現できます 簡単な手順でボイスチャットを実装可能
  23. 23. ■ VR VoiceChat with MUN の特徴 - キーボードのタイピング音や、周囲の環境騒音の同時伝送を防ぎます - 『一定量以下のdb値の音声を送信しないようにする』 という シンプルなソフトウェアノイズキャンセリングを実装しています - 無音検知機能によりデータ転送量を減らします 無音検知閾値を調整することで無音検知機能を無効化することも可能です ●無音検知機能(ノイズキャンセラ)を搭載 会話時の雑音などのノイズを除去し、クリーンな音声だけを送信 ハウリングを防止 - 特にスマートフォン端末など、スピーカー出力部とマイク入力部が 近い位置にあるデバイスで有効です - 22 -
  24. 24. ■ VR VoiceChat with MUN の特徴 - 例えば 『FPSのチーム戦』 などにおいて、 『戦闘前のブリーフィング中にはチーム関係なく全員と会話させたい』 『戦闘中は自分のチームだけで会話させ、相手に音声を伝えたくない』 という、条件付きのボイスチャット配信設定を行なう機能です ●マルチキャスト配信機能を搭載 ルーム内の特定プレイヤーに対して、自身の音声の送信可否を設定可能 - 23 - マルチキャスト配信機能のメリット - ゲームデザインに応じたボイスチャットの拡張性を高めます - 『特定プレイヤーとの会話』 によって、音声ストリーム情報による トラフィックの総量を抑えることができます ※マルチキャスト配信機能の設定にはAPIを使用する必要があります 全員に声が届く 仲間にだけ 声が届く 聞こえない
  25. 25. ■ VR VoiceChat with MUN の特徴 - 『相手の音声が数ミリ秒~数秒遅れて再生』 されるような 再生遅延の状態が著しく悪い状態のときに 『再生待ちレコード』 を削除し、 よりリアルタイムな音声を受信側で再生させる機能です ●遅延音声のカット機能を搭載 受信側の再生遅延が著しい場合に、再生の早回しを行なう機能 『ぶつ切り感』 をほとんど感じない音声遅延カット - 『音声のぶつ切り』 がイメージとして浮かぶかもしれませんが、 音声として聞き取れる僅かな時間をカットするだけなので、 ぶつ切り感をほとんど感じることはありません - 数ミリ秒単位で音声再生を補完することにより、送信側の音声をより瞬時に 受信側で再生できる 『リアルタイムさ』 を実感できます - コンポーネントの設定から 『遅延音声のカット機能』 を無効にすることもできます - 24 - 生の音声データを取り出して、ボイスチェンジャーも実装可能です
  26. 26. ■ VR VoiceChat with MUN の展望 - 25 - ●今後の開発ロードマップとリリース予定 ボイスチャット 専用サーバ P2P対応 未定2017年秋 2017年冬 ノンサーバによる ボイスチャットの実装 サーバミキシング機能の実装独立サーバでの運用
  27. 27. 26 ・お気軽にお問合せください contact@monobit.co.jp ■ まとめ <導入の利点> 1,LinuxでC#、C++ゲームサーバが運用出来る 2,C++で超高速サーバが開発可能 3,日本国内開発でサポートが充実 <導入方法> 1,まだUnityアセットストアには置いていませんので、 モノビットエンジンのHPからプラグインをダウンロードして 使ってみて下さい。 2,既存のUnityNetworking互換APIを使って開発している タイトルについても、別APIからの置き換えは1日で完了します。 現在開発中のタイトルについても、ぜひ採用を検討してみて下さい。

×