株式会社セガゲームス
セクションマネージャー/シニアプログラマ 兼 サーバー開発支援課 課長
日合 亨
モノビットエンジン株式会社
代表取締役社長 安田 京人
800万ダウンロードを達成した
共闘ことばRPG 『コトダマン』での
モノビットエンジン採用実例と最新情報
■第一部
モノビットエンジンVer2.0シリーズ概要と最新情報
登壇者:モノビットエンジン 安田 25分
■第二部
共闘ことばRPG「コトダマン」を支える技術
登壇者:セガゲームス 日合 35分
アジェンダ
モノビットエンジン社について
2018年7月2日、モノビット社より通信エンジン事業を
事業分割する形で設立いたしました。
モノビットエンジン株式会社は、モノビットで培ったミドルウェア開発のノウ
ハウや実績を活かして、オンラインゲームからVRライブまで、様々複数人対応
コンテンツのコンサルティングから設計、開発、運用までを請負うミドルウェ
ア開発・販売事業を行ってまいります。
【会社概要】
商号:モノビットエンジン株式会社
所在地 神戸本社:神戸市中央区京町78番地 三宮京町ビル 3階 A号室
東京支社:東京都新宿区新宿 1-9-2 ナリコマHD新宿ビル 4F
設立 2018年7月2日
代表取締役社長 安田 京人
取締役 本城 嘉太郎、中嶋 謙互
自己紹介①
1980年横浜生まれ。
システムエンジニアを経て、コンシューマゲーム開発にプログラマーとして6年間従事
。
携帯ゲーム機から据え置き機まで、アクションを中心に格闘ゲームやスポーツゲーム等
様々なタイトル開発に関わる。その後、ネットワークゲーム時代の到来を予見し、その
分野で展開を試みる株式会社モノビットへ入社。モノビットではプログラマー責任者兼
ミドルウェア事業部長として、リアルタイム通信の研究開発に従事し、統合サーバパッ
ケージ「モノビットエンジン」の開発ディレクションとエヴァンジェリストとしても活
動。
2018年7月「モノビットエンジン株式会社」代表取締役に就任。CEDEC、GTMF、Unite、
GCC等講演多数。
モノビットエンジン株式会社
代表取締役社長
安田 京人
自己紹介②
1979年富山県生まれ。
システムエンジニアとしてWebアプリケーションの開発やアーキテクチャ設計に従事し、
その後、元来の目標であったゲーム開発への参画を実現すべく、セガネットワークス(現セガ
ゲームス)に入社。
システムエンジニア時代の知見を活かし、セガゲームスでのモバイルゲーム開発における
サーバー分野全般のフレームワーク開発やサポートに注力し、品質の向上に努めている。
株式会社セガゲームス
ゲーム&デジタルサービス統括本部 開発統括部 ソフト開発部 第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に特化した通信ミドルウェアです。マッチング、ルーム、通信リレーの機能が標準で
用意されており、ネットワークの知識がなくてもマルチプレイを実装可能。MRSと連携して
、サーバにもC++/C#でコードが書けるように進化しました。
3,VR Voice Chat 2.0
Unityで簡単にボイスチャットを実現することができるUnityプラグインです
。2.0になってレスポンス速度上昇!
産業からエンタメなど幅広く利用されています。
本日の
メインテーマは
こちら!
エンジン採用実績①
エンジン採用実績②
MRS(Monobit Revolution Server)のご紹介
■ MRS(Monobit Revolution Server)とは
低遅延が要求されるアクションゲームやVRなど
リアルタイム通信コンテンツの開発に最適
これまでにない大規模なMMORPGなどの
オンラインゲーム開発が可能
■ MRS(Monobit Revolution Server)の特徴
●低遅延・高効率でのリアルタイム通信制御
- 通信シーケンスや内部プロセス、利用者に提供するAPI等を刷新
- リアルタイム通信機能として、より速く、よりシンプルな設計を実現
従来リリースしていた「リアルタイム通信エンジン」をゼロから見直して作成
●TCP, UDP, WebSocket の通信プロトコルの利用
- ネットワーク高速化とサーバ側CPU負荷軽減を実現
- 1サーバインスタンスあたり20,000クライアント以上の同時接続を実現
TCP 接続は従来の「リアルタイム通信エンジン」を大幅に強化
UDP 接続プロトコルのサポート
- リアルタイム性の求められるデータの送受信に最適なUDP/RUDPを使用可能
WebSocket 接続プロトコルのサポート(ver.1.1.0 以降)
- PhantomJS(http://phantomjs.org/)を利用した自動テストが可能
高速処理によるインフラコストの大幅低減を実現
■ MRS(Monobit Revolution Server)の特徴
●多種多様なプラットフォームに対応
●ゲームエンジン、開発言語を多数サポート
C/C++ JavaC# JavaScript
マルチプラットフォームも対応
PHP,Ruby
Windows/VisualStudioでサーバ開発が可能に!
■ MRS(Monobit Revolution Server)の特徴
●堅牢な暗号化によりチート対策も万全
・ 送信レコード単位で、暗号処理の適用可否を設定可能
- 暗号処理はCPU負荷を掛けやすい
- 秘匿性が低い送信レコードには暗号処理させないなどの施策により
全体的なスループット向上が見込まれる
・ 暗号方式について
- 暗号鍵方式には AES128 を採用
- 暗号鍵の交換方式には EDCH(楕円曲線ディフィー・ヘルマン)
鍵共有アルゴリズムを採用
●拡張ライブラリによる機能の拡張が可能
ルームサーバの機能や、ゲームマッチング、チャットなどは
『MRS_ROOM』 や 『MUN』 などで実現可能
ルーム作成 マッチング チャット
MRS_ROOM MUN
転送レコードごとの暗号化
■ MRS(Monobit Revolution Server)の特徴
- mackerel_agent をインストールするだけで問題なく監視可能
- システムメトリック : ロードアベレージ, CPU, メモリ, ディスクアクセス, ネットワーク帯域, ストレージ使用状況の監視
- カスタムメトリック : 各サーバプロセスごとのモニタリング, 同時利用者数(CCU)の監視など
●直感型サーバ監視ツール 『Mackerel』 に対応
MRS の対応内容
Mackerelとは
- サーバプロセスの監視状況をリアルタイムにグラフ化
- モニタリングはもちろん、ブラウザ対応UIやAPIが豊富
高機能な監視ツールにより運用をサポート
■ 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』 によるもの
■ MRS(Monobit Revolution Server)の特徴
●同時接続数のAWSでの実証実験
SVプロセス数 CLプロセス数
送信間隔
(ms)
1コネクション辺りの
送信バイト数
SV・CPU使用率(%) CL・CPU使用率(%)
受信パケット数
(msg/sec)
送信パケット数
(msg/sec)
合計パケット数
(msg/sec)
1 2 1000 20 12% 17%,17% 2万 4万 6万
1 2 500 20 26.30% 23%,23% 5.2万 7万 12.2万
1 2 250 20 43.30% 34%,34% 8.1万 15.5万 23.6万
1 2 125 20 97% 61%,61% 29万 29万 58万
2 2 125 20 56%,45% 69%,69% 16万 30万 46万
2 4 125 20 57%,45% 42%,42%,42%,42% 16万 32万 48万
4 4 100 20 40%,40%,40%,40% 53%,53%,53%,53% 20万 40万 60万
4 4 50 20 70%,70%,70%,70% 93%,93%,93%,93% 40万 50万 90万
4 4 50 100 80%,80%,80%,80% 96%,96%,96%,96% 40万 50万 90万
- Server :
Amazon EC2 c5 xlarge (4vcpu, 8GBmem)
- Client :
VMware 上の 仮想 Linux PC
※ MRS ver.1.4.1 リリース版での検証
※ 計測ツールは弊社内製のベンチマークツール 『MRS_bench』 によるもの
1サーバインスタンスあたり2万同時接続以上を達成する圧倒的処理性能
!
■ MRS(Monobit Revolution Server)の特徴
より詳細なベンチマークのデータは、
「リアルタイムゲームサーバーのベンチマークのとり方」
というスライドで紹介しています。
https://www.slideshare.net/yhonjo/ss-87611264
対応
プラットフォ
ーム
■ MRS(Monobit Revolution Server)の展望
通信方式
実装方法
現行リリース 2018年8月 2018年9月 2018年10月 2018年冬以降
Linux
Windows
MacOSX
Android
iOS
Unity
Client/Server
通信方式
TCP/UDP/RUDP
プロトコル
WebSocket
CのAPIを利用
通信結果を
コールバック処理
他言語はバイン
ディングで対応
HTTP
サーバサンプル
Switch
UnrealEngine 4
P2P通信方式
コールバック
処理のRPC化
RPCスタブコードの
ジェネレータを
リリース
ゲームジャンルに
特化した実践的サンプル
MUN (Monobit Unity Networking)のご紹介
■ MUN(Monobit Unity Networking)とは
クライアントのみでも実装できる、Unity特化型の通信エンジン
マルチプレイを簡単に実装できるアセットです
Unity5.x、Unity2017.x Unity2018対応
※ver2.5.0にてUnity2018に正式対応!
■ MUN(Monobit Unity Networking)の特徴
- サーバ接続/切断、オフラインモード
- ロビーやルームに対する入室/退室制御、ロビーとルームの状態取得
- プレイヤー情報の取得(サーバ内検索, プレイヤーパラメータの設定と取得)
- RPCによる、任意のクライアントに対する情報送信および受信
- シーン内オブジェクトの位置・姿勢・アニメーション等の同期
- 各種条件に応じた、マッチメイキング制御
- ノンプログラミング通信制御 etc...
※すべて単一のコンポーネントやAPIで実装可能
MUN で実装できる機能の一部
※各種家庭用ゲーム機はNDA締結により利用可能になります
●多彩な機能が多様なプラットフォームで利用可能
利用可能なプラットフォーム
■ MUN(Monobit Unity Networking)の特徴
●すべての通信ロジックを、クライアント側オンリーで実装可能
MUN リリース当初からの設計思想を実現
- 『サーバサイドの構築なしでリアルタイム通信を実現したい』というご要望に対
応
- 通信ロジックも含め、オンラインゲームのすべての制御をクライアント側でコーディング可能
!
※MUNサーバはbroadcastでリレー配信する役割を果たします
- クライアントコードをそのままサーバに移植して、簡単にチート対策!
- MUN標準機能のサーバのソースコードを公開中。VisualStudioでカスタマイズ可能。
●必要に応じて、サーバにコードを書くことも可能!
MUN2.0より、MRSと連携してC++/C#言語でサーバ開発が可能になりました!
サーバとクライアントでコードを自在に配置可能
■ MUN(Monobit Unity Networking)の特徴
- MUNサーバ側は、TCP/UDPの通信ポート双方で待ち受けしている
- 同一認証のMUNクライアントであれば、TCPの接続クライアントとUDPの接続クライアント
を
同一ルームに接続させることも可能
●TCP, UDPの通信プロトコルの利用
MRSに基づき、TCP/UDPの通信プロトコルをサポート
MUNにおける UDP/RUDP接続プロトコルについて
- MUNの内部処理で行われる送受信(ロビー/ルームの入退室など)の通信をUDPで行なう場合、
すべて RUDP で伝送される
- RPC(リモートプロシージャコール)、およびオブジェクト同期通信のみUDP/RUDP の個別設定が可
能
速度を重視するか信頼性を重視するか、
場面によって最適な通信プロトコルを選択可能
■ MUN(Monobit Unity Networking)の特徴
- クライアントサイドの改ざんに伴う、チートの横行を防ぐ術がほとんどない
すべてのソースコードがクライアントに含まれるため
- ホストの優位性が圧倒的に高い
ノンプレイヤーの通信データについて、ホストは即時実行するが
他クライアントはホストからの通信を待たねばならないため
- ゲーム進行が、ホストの性能に依存する
●オンプレミス版MUNサーバを用いたサーバサイド実装にも対応
クライアント側オンリーでの実装における『問題点』
サーバサイド実装にすることの『メリット』
- サーバサイドに実装することにより、クライアント改ざんの隙を与えない
ほとんどの処理はサーバ依存にし、クライアントはビューアとして機能させる
- すべてのクライアントに対し、『平等なサービス』を提供できる
ホストも他のクライアントで実行タイミングを完全に一致させることができる
■ MUN、MRSの注目アップデート
●Ver2.4.0にてWebGL出力に対応!ブラウザゲーム開発でMUNが使用可能
Unityで開発したスマホタイトルのブラウザへの移植や新規開発においても、
MUNが利用可能になりマルチプレイ機能の組み込みが非常に容易になりました
!
■ MUN(Monobit Unity Networking)の展望
対応
プラットフォ
ーム
通信方式
クライアント
プログラム
現行リリース 2018年8月 2018年9月 2018年冬以降
Windows
MacOSX
Android
iOS
Client/Server
通信方式
TCP/UDP/RUDP
プロトコル
Webブラウザ
Switch
2018年10月
WebSocket
サーバプログ
ラム
Linux C++
Windows C++,C#
MacOSX
.NET Core C#
.Net Core 2.1対応
Unity C#
コア処理のリファクタリングにより、
高頻度送受信時の性能向上
(GC抑止等)
PS4
VR VoiceChat のご紹介
■ VR VoiceChat with MUN とは
MUNをベースに動作する『ボイスチャットエンジン
』
コンポーネントを追加するだけで簡単に実装が可能!
無音検知、マルチキャスト配信、遅延音声カット機能を搭載!
■
■ VR VoiceChat採用実績
■Linked-door
次世代の通信をテーマにしたKDDI株式会社様のVRデモ。
VR空間内で他のユーザーと出会い、一緒に歩きながら音声で会話したり、
ダーツで遊んだりするといったコミュニケーションの体験が可能。
©KDDI CORPORATION, ALL RIGHTS RESERVED.
■ VR VoiceChat採用実績
■CAD・VR
複数人数によるリアルタイム通信をおこない、平田機工社各拠点や遠隔地を
ネットワークで結び、VR空間内において3DCADデータを実物のように扱い、
チャットなどのコミュニケーションを行う事ができるソリューション。
©Hirata Corporation All Rights Rserved.
■ VR VoiceChat採用実績
■AceReal One
ネットワークを通じてリアルタイムで画像・映像共有、
ボイスチャットによるコミュニケーションをスマートグラス上で実現。
© SUNCORPORATION All rights reserved.
■ VR VoiceChat採用実績
■Trip Trap Travelers
プレイヤー4人まで同時プレイ可能となっており、各プレイヤーは数々の罠やモンスタ
ーの攻撃を避けつつゴールを見つけだし、クリアタイムを競うダンジョン脱出ゲーム
。
©MONOBIT Inc.
■ バーチャルキャスト
ドワンゴ社・インフィニットループ社が提供するサービス。
バーチャルキャラクターになってVR空間のスタジオをリアルタイムで配信し、
コミュニケーションできるVRライブ・コミュニケーションサービス。
© DWANGO Co., Ltd. / infiniteloop, Co., Ltd. All rights reserved.
■ VR VoiceChat with MUN の特徴
VoiceChat with MUN の機能を実装するには、
Unityのオブジェクトに 『MonobitVoice』のコンポーネントを追加します
●コンポーネントを追加するだけで簡単に実装が可能
上記コンポーネントを追加した状態で、MUNによる通信同期を行なう
シーンファイル上で動かすだけで、ボイスチャットが簡単に実現できます。
簡単な手順でボイスチャットを実装可能
■ VR VoiceChat with MUN の特徴
- キーボードのタイピング音や、周囲の環境騒音の同時伝送を防ぎます
- 『一定量以下のdb値の音声を送信しないようにする』 という
シンプルなソフトウェアノイズキャンセリングを実装しています
- 無音検知機能によりデータ転送量を減らします
無音検知閾値を調整することで無音検知機能を無効化することも可能です
●無音検知機能(ノイズキャンセラ)を搭載
会話時の雑音などのノイズを除去し、クリーンな音声だけを送信
ハウリングを防止
- 特にスマートフォン端末など、スピーカー出力部とマイク入力部が近い位置にあるデバイスで有効です
■ VR VoiceChat with MUN の特徴
- 例えば 『FPSのチーム戦』 などにおいて、
『戦闘前のブリーフィング中にはチーム関係なく全員と会話させたい』
『戦闘中は自分のチームだけで会話させ、相手に音声を伝えたくない』
という、条件付きのボイスチャット配信設定を行なう機能です
●マルチキャスト配信機能を搭載
ルーム内の特定プレイヤーに対して、自身の音声の送信可否を設定可能
マルチキャスト配信機能のメリット
- ゲームデザインに応じたボイスチャットの拡張性を高めます
- 『特定プレイヤーとの会話』 によって、音声ストリーム情報によるトラフィックの総量を抑えることができます
※マルチキャスト配信機能の設定にはAPIを使用する必要があります。
全員に声が届く
仲間にだけ
声が届く
聞こえない
■ VR VoiceChat with MUN の特徴
- 『相手の音声が数ミリ秒~数秒遅れて再生』 されるような
再生遅延の状態が著しく悪い状態のときに 『再生待ちレコード』 を削除し、
よりリアルタイムな音声を受信側で再生させる機能です
●遅延音声のカット機能を搭載
受信側の再生遅延が著しい場合に、再生の早回しを行なう機能
『ぶつ切り感』 をほとんど感じない音声遅延カット
- 『音声のぶつ切り』 がイメージとして浮かぶかもしれませんが、音声として聞き取れる
僅かな時間をカットするだけなので、ぶつ切り感をほとんど感じることはありません
- 数ミリ秒単位で音声再生を補完することにより、送信側の音声をより瞬時に受信側で
再生できる 『リアルタイムさ』 を実感できます
- コンポーネントの設定から 『遅延音声のカット機能』 を無効にすることもできます
生の音声データを取り出して、ボイスチェンジャーも実装可能です
■ VR VoiceChat with MUN の展望
- 38 -
ボイスチャット
専用サーバ
P2P対応
未定2018年秋 2018年冬
ノンサーバによる
ボイスチャットの実装
サーバミキシング機能の
実装
Plastation VR
対応
●MRSの今後の開発ロードマップとリリース予定
・お気軽にお問合せください contact@monobit.co.jp
■ まとめ
<導入の利点>
1,LinuxでC#、C++ゲームサーバが運用出来る
2,C++で超高速サーバが開発可能
3,日本国内開発でサポートが充実
<導入方法>
1,まだUnityアセットストアには置いていませんので、
モノビットエンジンのHPからプラグインをダウンロードして
使ってみて下さい。
2,既存のUnityNetworking互換APIを使って開発している
タイトルについても、別APIからの置き換えは1日で完了します。
現在開発中のタイトルについても、ぜひ採用を検討してみて下さい。

【CEDEC2018】800万ダウンロードを達成した共闘ことばRPG 『コトダマン』でのモノビットエンジン採用実例と最新情報 ①

Editor's Notes

  • #4 元々は株式会社モノビットというゲームやVRコンテンツの開発を行う会社でミドルウェア事業としてモノビットエンジンを開発販売していたのですが、 今回事業分割という形で、設立しました。
  • #17 二万同時接続の際の例を下に記載させていただいているのですが、2万クライアントがそれぞれ秒間20回100バイトのパケットを送信したとしても、各サーバプロセスは80%程のCPU使用率に落ち着いています。送信頻度をもう少し落とす事でより大量の同時接続を捌ける事になります。
  • #19 7月スケジュール抜く
  • #26 C++を熟知していなくても、わかりやすいように、シンプル化しました
  • #27 7月スケジュール抜く