共闘ことばRPG コトダマン
モノビットエンジン採用事例
株式会社セガゲームス
日合 亨
• 共闘ことばRPG コトダマンの紹介
• モノビットエンジンの選定理由
• 『コトダマン』のサーバー構成
• 4人マルチプレイにおける通信
• モノビットエンジンのサーバー監視
• まとめ
アジェンダ
共闘ことばRPG コトダマン
紹介
モノビットエンジンの選定理由
• コトダマンの開発当初は内製ライブラリとして
通信プログラムを開発していた。
• ライブラリ開発の過程でいくつかの問題が発生
– ゲームごとに異なる要件への対応が難しい
– 通信プログラムそのものの難易度から開発が難航
• これらを解決するために有償のライブラリを購
入した方が良いのでは?という議論になった。
モノビットエンジンの選定理由
• いくつかのミドルウェア製品を検証した結果…
– 中嶋氏が中心となってリライトされ、高速で安定したミ
ドルウェアに仕上がっている。
– C/C++とC#のサポートとLinux環境での実行が可能。
– 日本語でサポートしてくれる。
– オフィスが近いのでパワーサポートも期待できる。
– 割と安い。
• 以上のことからモノビットエンジンを選定。
モノビットエンジンの選定理由
コトダマンのサーバー構成
『コトダマン』のサーバー構成
サーバー構成概略図
APIサーバー群 アクションサーバー群 バッチサーバー
Aurora
『コトダマン』のサーバー構成
サーバー構成概略図
APIサーバー群 アクションサーバー群 バッチサーバー
Aurora
アクションサーバーの
構成の話をします
『コトダマン』のサーバー構成
• 1つのインスタンスにモノビ
ットエンジンを構成するすべ
てのプロセスを配置。
• このセットを複数配置してス
ケーリングさせている。
アクションサーバー
MASTER
PROXY
RESOLVER
ROOM
『コトダマン』のサーバー構成
• mun_master
MUN サーバのバックエンドのサーバプロセ
スで、MUNサーバで管理する全クライアン
ト/全ロビー/全ルームに関するデータベー
スを保有します。
• mun_proxy
MUN サーバのフロンエンドのサーバプロセ
スで、MUNクライアントが最初に接続する
サーバプロセスです。
アクションサーバー
MASTER
PROXY
RESOLVER
ROOM
『コトダマン』のサーバー構成
• mun_resolver
MUN サーバのフロントエンドのサーバプロ
セスで、ルーム未入室状態にある(=ロビ
ー未入室または入室状態にある) MUN ク
ライアントについて管理します。
• mun_room
MUN サーバのフロントエンドのサーバプロ
セスで、ルーム入室状態にある MUN クラ
イアントについて管理します。
アクションサーバー
MASTER
PROXY
RESOLVER
ROOM
アクションサーバーN
…
アクションサーバー3
アクションサーバー2
『コトダマン』のサーバー構成
アクションサーバー1
MASTER
PROXY
RESOLVER
ROOM
• マッチングはAPIサー
バーで行っている。
• ルーム作成やルーム
参加リクエストに対
して接続するサーバ
ーをクライアントに
返す。
APIサーバー
みんなで遊びたい!
「アクションサーバー1」に
ルームを作りなさい
「アクションサーバー1」にある
ルームに接続しなさい
4人マルチプレイにおける通信
• 『コトダマン』のマルチプレイはターン制で、
リアルタイムにゲーム進行する訳ではない。
• ユーザー間でやり取りする通信は大きく分けて
2種類。
– 持っている文字を場に出した事を他のユーザーに伝
える。
– 他のユーザーに「この文字を置いてほしい」を伝え
る。
4人マルチプレイにおける通信
• 自分の手札(文字)を出したときの通信の流れ
4人マルチプレイにおける通信
自分の番
ユーザー1
ユーザー2
ユーザー3
• 「私出したい」「これ出せば?」をしたときの通
信の流れ
4人マルチプレイにおける通信
これ出せば? 私出したい
これ出せば? 私出したい
これ出せば?
これ出せば?
私出したい
私出したい
他人の番
モノビットエンジンの
サーバー監視
• 実運用するにあたって、監視関連の機能追加を
依頼
– ルーム数
– 接続ユーザー数
• 監視対象のメトリクスを取得するMONITORプ
ロセスを追加
モノビットエンジンのサーバー監視
• 『株式会社はてな』のMackerelを利用
• モノビットエンジンのステータスをグラフ化
モノビットエンジンのサーバー監視
• モノビットエンジン内部の情報を監視できるよ
うになった事の利点
– ルーム数やユーザー数と、リソース使用量の比較か
らサーバーのサイジング計画がしやすくなった。
– 接続ユーザー数とDAUの相関関係を正確に把握して
イベントや施策の効果を図れるようになった。
• .NET Core版での監視(特にメモリ周り)の機能
拡充を要望中!
モノビットエンジンのサーバー監視
まとめ
• リリースしてからの実運用上でモノビットエン
ジン起因の問題は発生しておらず、非常に安定
している。
• 要望やバグ修正は迅速に対応してくれるので、
サポート体制や速度には満足している。
• 単純な通信であればパッケージを導入するだけ
で完了。C/C++やC#でサーバーサイドにゲー
ムロジックを実装することもできる。
まとめ

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