22. ■ VR VoiceChat with MUN とは
MUNをベースに動作する『ボイスチャットエンジン』
コンポーネントを追加するだけで簡単に実装が可能!
無音検知、マルチキャスト配信、遅延音声カット機能を搭載!
- 21 -
23. ■ VR VoiceChat with MUN の特徴
VoiceChat with MUN の機能を実装するには、Unityのオブジェクトに
『MonobitVoice』のコンポーネントを追加します
●コンポーネントを追加するだけで簡単に実装が可能
- 22 -
上記コンポーネントを追加した状態で、MUNによる通信同期を行なう
シーンファイル上で動かすだけで、ボイスチャットが簡単に実現できます
簡単な手順でボイスチャットを実装可能
39. 38
■ MUNによる10万人大規模サービスの構成
MUNサーバで「同時接続者数10万」を実現するには
・MUNは原則として、以下の⽤途におけるネットワークゲームに適しています。
a) オンライン対戦型のターン制カードゲーム、パズルゲームなど
b) MO(中⼩規模の、参加⼈数限定型マルチプレイヤーオンラインゲーム)
c) MOBA(参加⼈数限定型の戦略対戦型オンラインゲーム)
・1つの MUN サーバセットあたりで、同時接続、およびルーム内各種メッセージを捌けるのは
おおよそ3万⼈程度です(弊社調べ:1ルームあたり、秒間平均200メッセージの送受信を想定)。
・10万⼈規模の同時接続者数を捌くためには、MUNサーバの横展開(スケール)が必要になりますが、MUN の
サーバセットは密結合のサーバプロセスで構成されているため、スケールする場合、このサーバセットを1組として
複数のサーバセットを並列配置することになります。
・サーバセットをスケールすることにより、実質的に無限数のMUN クライアントに対し、同時接続処理を捌けます。
・次ページで、具体的なサーバ構成例を⽰します。
MUN
Room
MUN
Proxy
mun_proxy ・・
・
mun_resolver
MUN
Master
mun_master
MUN
Resolver
mun_proxy mun_room ・・
・
mun_room
「MUN サーバセット」のこの1組を単
位として、
複数サーバセットを並列配置する
40. 39
■ MUNによる10万人大規模サービスの構成
複数の MUN サーバセットによる 10万人同時接続の実現(概略)
・複数の MUN サーバセットによる、 10万⼈同時接続を実現するためのサーバ構成例として、以下に⽰します。
・1つの MUN サーバセットに対して同時に捌くことのできるクライアント数は3万クライアントまでですが、若⼲
余裕を持たせて、サーバセットを5セット程度⽤意します。
・どの MUN サーバセットに接続するかを管理し、クライアントを誘引するための、Webサーバを複数台⽤意します。
Global Section
MUN Server
Machine
MUN Server
Process
Internet
MUN
Client
MUN
Client
・・
・
MUN Client
Machine
MUN Client
Process
Web Server
mrs_pusherdatabase
MUN
Client
MUN
Client
MUN
Client
MUN
Client
MUN
Client
MUN
Client
MUN
Client
MUN
Client
MUN
Resolver
mun_resolver
MUN
Master
mun_master
MUN
Proxy
・・
・
mun_proxy mun_room
MUN
Room
・・
・
・・
・
mun_proxy mun_room ・・
・
MUN
Resolver
mun_resolver
MUN
Master
mun_master
MUN
Proxy
・・
・
mun_proxy mun_room
mun_proxy mun_room ・・
・
MUN
Room
Private Section
MUN Server Set 1 MUN Server Set 2
・・
・
41. 40
■ MUNによる10万人大規模サービスの構成
複数の MUN サーバセットによる 10万人同時接続の実現(詳細)
・Webサーバでは、複数の MUN サーバセット内に含まれる mun_resolver のクライアント接続アドレス情報を
事前にデータベース情報として、複数台で同⼀の内容を保持します。
かつ、MUNクライアントは mun_resolver に接続する前にこの Web サーバに接続し、MUN サーバセットのうち
「最も既存クライアントの接続数の少ない」 mun_resolver のアドレス情報を mrs_pusher で返します。
※ MUN では MRS が内包されていますので、MRSでの情報のやり取りも可能です。
・MUN サーバセットでは、MO/MOBAをはじめとする、中⼩規模の⼈数が参加するゲームルームを設置し、そこで
ルーム内プレイヤー同⼠で、RPCによるデータの送受信、キャラクタなどのオブジェクト位置情報の同期などを
⾏います。
MUN Resolver に接続するためのアドレス情報を退避したデータベースを持つ
Webサーバ。
MUNクライアントとのやり取りのためにmrs_pusherを利⽤し、かつ最もクライ
アント接続数が
少ない、MUNサーバセットへの誘導を⾏なう
Web Server
mrs_pusherdatabase
MUN サーバセット⾃体は通常の MUN サーバとして運⽤する
サーバのスケールアウトは、原則このサーバセットを1単位として、全体をス
ケールする形をとる
接続するクライアントは、適宜必要に応じたルームに⼊室させ、
その中に所属するプレイヤー同⼠で、メッセージのやり取り、キャラクタの位
置情報の同期、
各種パラメータの共有などを⾏なう。
⽐較的セキュリティ性を求められない通信対戦/MOであればクライアントベー
スで開発し、
セキュリティ性の⾼い通信対戦/MOや、複雑なロジックを必要とするMOBAな
どであれば
サーバサイドでのプログラムを実装し、なるべく保守性・安定性に優れたシス
テムを構築する
64. MRSクラスタの標準プロセス構成
auth x N
Client x N
Internet
match x N
DB x 1
将来N
status x Nroom x N
Bridgeとか
LINEとか
外部サービス
空きroom検索
HTTP(S)
リアルタイム同期
TCP/UDP
room検索 HTTP(S)
HTTPS
状態送信
認証
必要な部分だけ選んで利⽤可能。
既存システムと重複する部分を無くせる
65. MRSクラスタの最⼩構成
auth x N
Client x N
Internet
match x N
DB x 1
将来N
status x Nroom x N
Bridgeとか
LINEとか
外部サービス
空きroom検索
HTTP(S)
リアルタイム同期
TCP/UDP
room検索 HTTP(S)
HTTPS
状態送信
認証
例えば、roomを固定数だけ常時起動しておき、
ゲームのWebサーバーからクライアントにアドレスを渡すだけ。
⾃動スケールアウト・インを⾏わず、⾃動再起動やロギングの機能のみを使う