まずは、サーバとして動かす Windows マシンのIPアドレスについて調べます。
PowerShell または コマンドプロンプト上から、以下のコマンドを入力してください。
> ipconfig
このコマンドを実行すると、「イーサネットアダプター」として、同一ネットワーク構内に接続しているPCから接続可能な
IPアドレスが表示されますので、これをメモなど記録にとどめておきます。
まずは、サーバとして動かす Windows マシンのIPアドレスについて調べます。
PowerShell または コマンドプロンプト上から、以下のコマンドを入力してください。
> ipconfig
このコマンドを実行すると、「イーサネットアダプター」として、同一ネットワーク構内に接続しているPCから接続可能な
IPアドレスが表示されますので、これをメモなど記録にとどめておきます。
IPアドレスを調べ終えたら、サーバパッケージ内に含まれている「MUN サーバ側のクライアント待ち受けIPアドレス」の設定を行ないます。
使用するサーバ環境に応じて、以下の2種類からいずれか、あるいは両方を選んで実行してください。
C++ 版 MUN サーバの設定は、サーバパッケージ内の server/cpp/mun.props 内にありますので、
これをテキストエディタなどでを開きましょう。
ファイルを開いたら、25~27行目付近にある
の3項目について、事前に記録していた Windows マシンのIPアドレスに書き換えてください。・PROXY_PUBLIC_ADDR ・RESOLVER_PUBLIC_ADDR ・ROOM_PUBLIC_ADDR
書き換え終わったところで、テキストエディタ上で上書き保存してください。
C# 版 MUN サーバの設定は、ドラッグ&ドロップでコピーしたフォルダ内の server/csharp/appsettings.json 内にありますので、
これをテキストエディタなどでを開きましょう。
ファイルを開いたら、19~21行目付近にある
の3項目について、事前に記録していた Windows マシンのIPアドレスに書き換えてください。・PROXY_PUBLIC_ADDR ・RESOLVER_PUBLIC_ADDR ・ROOM_PUBLIC_ADDR
書き換え終わったところで、テキストエディタ上で上書き保存してください。
Windows サーバ環境で C++ 版 MUN サーバーを動かす場合、VisualStudio を用います。
以下のパネルを順にクリックして、指示通りに進めてください。
まず初めに、「mun_master」と呼ばれるサーバプロセスのプロジェクトを開きましょう。
このプロセスは MUN サーバの中核であり、接続しているMUNクライアントや、サーバ上で構成されるロビーやルームの情報を
一括で管理するデータベースの役割を果たします。
これ以外のサーバプロセスは(後述のmun_resolverを除き)mun_masterが起動していることが前提で動くことになりますので、
必ず初めに起動させてください。
また、mun_master のサーバプロセスを起動させるために、VisualStudio の sln ファイルを立ち上げますが、
Visual Studio 2017, 2019, 2022 のいずれかによって、起動するソリューションファイルは異なります。
事前に「現在インストールしているVisualStudio のバージョン」を調べておいてください。
調べた上で、mun_master のソリューションファイルを起動しましょう。
mun_master のソリューションファイルは cpp/mun_master 内に以下のように格納されていますので、
お使いの Visual Studio のバージョンと合致する sln ファイルをダブルクリックして起動してください。mun_server_x.x.x └ cpp └ mun_master ├ mun_master_vs2017.sln … VisualStudio 2017 で動作させる場合 ├ mun_master_vs2019.sln … VisualStudio 2019 で動作させる場合 └ mun_master_vs2022.sln … VisualStudio 2022 で動作させる場合
mun_master サーバーのプロジェクトを起動させたら、VisualStudio 上で F5 キーを押すか、
以下の赤枠内の再生ボタンを押して、ビルド&実行しましょう。
ビルドを開始してしばらくすると mun_master が起動してコンソールが表示されます。
以下のように "mun_master setup done." というメッセージが表示されていれば起動完了です。
次に進めましょう。
続けて、「mun_resolver」と呼ばれるサーバープロセスのプロジェクトを開きましょう。
このプロセスは MUN クライアントが最初に接続するサーバで、
後述する「ルーム未入室時のクライアントとの通信処理」を行なう mun_proxy サーバプロセスに対して
「最も負荷の軽いサーバプロセスの接続情報」を渡します。
mun_proxy のサーバプロセスを複数動作(スケール)させることにより、ルーム未入室時の対クライアント通信について
動的かつ簡易的に負荷分散処理をさせることを可能にします。
では mun_master と同様、mun_resolver のソリューションファイルを起動しましょう。
mun_resolver のソリューションファイルは cpp/mun_resolver 内に以下のように格納されていますので、
お使いの Visual Studio のバージョンと合致する sln ファイルをダブルクリックして起動してください。server └ cpp └ mun_resolver ├ mun_resolver_vs2017.sln … VisualStudio 2017 で動作させる場合 ├ mun_resolver_vs2019.sln … VisualStudio 2019 で動作させる場合 └ mun_resolver_vs2022.sln … VisualStudio 2022 で動作させる場合
mun_resolver サーバーのプロジェクトを起動させたら、VisualStudio 上で F5 キーを押すか、
以下の赤枠内の再生ボタンを押して、ビルド&実行しましょう。
ビルドを開始してしばらくすると mun_resolver が起動してコンソールが表示されます。
以下のように "mun_resolver setup done." というメッセージが表示されていれば起動完了です。
次に進めましょう。
続けて、「mun_proxy」と呼ばれるサーバプロセスのプロジェクトを開きましょう。
前述の mun_resolver の説明で少し触れましたが。
mun_proxy のサーバプロセスは、ルーム未入室の状態にあるMUNクライアントからの各種要求(問い合わせ)に対し
適宜処理するためのサーバで、かつ mun_master に対するリレーサーバの役割を果たします。
mun_proxy が行なう対MUNクライアントとの通信処理の中には、以下のようなものがあります。
・ 認証IDを伴うMUNサーバ接続チェック ・ MUNサーバのシステム全体に対しユニーク値を取る「MUNクライアントID」の発行手続き ・ ロビー入退室手続き ・ ルーム入室要求、および退室後のロビー再入室手続き ・ ロビーに属するルーム 一覧情報の取得手続き ・ 接続プレイヤー検索手続き (以上、代表的な部分を挙げており、これ以外の処理も存在します。)
では mun_master, mun_resolver と同様、mun_proxy のソリューションファイルを起動しましょう。
mun_proxy のソリューションファイルは cpp/mun_proxy 内に以下のように格納されていますので、
お使いの Visual Studio のバージョンと合致する sln ファイルをダブルクリックして起動してください。
server └ cpp └ mun_proxy ├ mun_proxy_vs2017.sln … VisualStudio 2017 で動作させる場合 ├ mun_proxy_vs2019.sln … VisualStudio 2019 で動作させる場合 └ mun_proxy_vs2022.sln … VisualStudio 2022 で動作させる場合
mun_proxy サーバーのプロジェクトを起動させたら、VisualStudio 上で F5 キーを押すか、
以下の赤枠内の再生ボタンを押して、ビルド&実行しましょう。
ビルドを開始してしばらくすると mun_proxy が起動してコンソールが表示されます。
以下のように "mun_proxy setup done." というメッセージが表示されていれば起動完了です。
次に進めましょう。
最後に、「mun_room」と呼ばれるサーバプロセスのプロジェクトを開きましょう。
mun_room のサーバプロセスは、mun_proxy とは異なり、こちらはルーム入室中の状態にあるMUNクライアントに関して
各種要求(問い合わせ)に対し適宜処理するためのサーバです。
mun_master に対するリレーサーバの役割を果たすこともありますが、ほとんどのルーム内メッセージについて自身で処理します。
mun_room が行なう対MUNクライアントとの通信処理の中には、以下のようなものがあります。
他にも様々ありますが、代表的な部分では上記2点です。・ オブジェクトの同期手続き ・ 各種RPCメッセージの送受信手続き
MUNクライアントに対する通信比重が最も高くなるのも mun_room の特徴です。
では他の3つと同様、mun_room のソリューションファイルを起動しましょう。
mun_room のソリューションファイルは cpp/mun_room 内に以下のように格納されていますので、
お使いの Visual Studio のバージョンと合致する sln ファイルをダブルクリックして起動してください。
server └ cpp └ mun_room ├ mun_room_vs2017.sln … VisualStudio 2017 で動作させる場合 ├ mun_room_vs2019.sln … VisualStudio 2019 で動作させる場合 └ mun_room_vs2022.sln … VisualStudio 2022 で動作させる場合
mun_room サーバーのプロジェクトを起動させたら、VisualStudio 上で F5 キーを押すか、
以下の赤枠内の再生ボタンを押して、ビルド&実行しましょう。
ビルドを開始してしばらくすると mun_room が起動してコンソールが表示されます。
以下のように "mun_room setup done." というメッセージが表示されていれば起動完了です。
以上4つのサーバープロセスを起動させれば準備完了です。
Windows サーバ環境で C# 版 MUN サーバーを動かす場合、コマンドプロンプトから実行します。
以下のパネルを順にクリックして、指示通りに進めてください。
PowerShell または コマンドプロンプト上から、以下のコマンドを入力することで
「DEBUGモード」でのビルドが可能です。
> cd [mun_dotnet_core.shのあるディレクトリ] > .\mun_dotnet_core.bat debug
コマンド入力後、ビルドログが表示されます。最終的に
の表記が5回なされれば成功です(ログがゆっくり流れますので、目視で確認できるかと思います)。成功しました
ビルドに成功したら、続けて以下のコマンドを実行して MUN サーバーを起動してください。
> .\mun_dotnet_core.bat startd
PowerShell または コマンドプロンプト上から、以下のコマンドを入力することで
「RELEASEモード」でのビルドが可能です。
> cd [mun_dotnet_core.shのあるディレクトリ] > .\mun_dotnet_core.bat release
コマンド入力後、ビルドログが表示されます。最終的に
の表記が5回なされれば成功です(ログがゆっくり流れますので、目視で確認できるかと思います)。成功しました
ビルドに成功したら、続けて以下のコマンドを実行して MUN サーバーを起動してください。
> .\mun_dotnet_core.bat startr