PhotonのSelf-Hosting Serverを使うためには次の4つが必要
1. Windowsの特定のポートを開放
2. NameServer.jsonの設定
3. GameServer.xml.config の編集
4. PhotonServer.configの編集
また、ソースコード内にAppSettingsの設定が必要
Photon Server のダウンロード
こちらからphoton Serverをダウンロード
Windowsの特定のポートを開放
こちらを参考にWindowsの特定のポートを開放する。
開放するポートは以下の通り(参考)
開放するポート
ポート番号 | プロトコル | 目的 |
---|---|---|
5058または27000 | UDP | クライアントからネームサーバー (UDP) |
5055または27001 | UDP | クライアントからマスターサーバー (UDP) |
5056または27002 | UDP | クライアントからゲームサーバー (UDP) |
4533 | TCP | クライアントからネームサーバー (TCP) |
4530 | TCP | クライアントからマスターサーバー (TCP) |
4531 | TCP | クライアントからゲームサーバー (TCP) |
9090 | TCP | クライアントからマスターサーバー (WebSocket) |
9091 | TCP | クライアントからゲームサーバー (WebSocket) |
9093 | TCP | クライアントからネームサーバー (WebSocket) |
NameServer.jsonの設定
ディレクトリ名「Deploy」にあるNameserver.jsonを編集する
{
"Nodes": [
{
"Region": "jp",
"IpAddress": "IPアドレス",
"IpAddressIPv6": "::1",
"Hostname": "マシン名 or localhost"
}
]
}
GameServer.xml.config の編集
deploy\LoadBalancing\GameServer\binのGameServer.xml.configのIPアドレスを指定している個所をサーバを実行しているPCのIPアドレスに変更
(中略)
<S2S>
<ConnectRetryInterval>15</ConnectRetryInterval>
<MasterIPAddress>IPアドレス</MasterIPAddress>
<OutgoingMasterServerPeerPort>4520</OutgoingMasterServerPeerPort>
</S2S>
(中略)
<!--public サーバにしない場合は不必要かも? -->
<PublicIPAddress>IPアドレス</PublicIPAddress>
PhotonServer.configの編集
deploy\bin_Win64のPhotonServer.configを編集する
<UDPListener
IPAddress="IPアドレス"
Port="5055"
OverrideApplication="Master">
</UDPListener>
(中略)
変更箇所が多数あるので、一括変換で0.0.0.0からサーバのIPアドレスに変更する。
ソースコード
Photon Sel hosting serverに接続するクライアントのコード
void Start()
{
PhotonNetwork.Disconnect();
ConnectToServer();
}
private void ConnectToServer()
{
AppSettings settings = new AppSettings();
settings.FixedRegion = "jp";
settings.UseNameServer = true;//Ver.5のServerを使う場合はTrueであること
settings.AppIdVoice = "YOUR APPID";
settings.AppVersion = "VERSION NUMBER"; // optional
settings.Port = 0; //"0"でデフォルトのポートに接続
settings.Server ="YOUR ONPRE SERVER IP ADDRESS";
PhotonNetwork.ConnectUsingSettings(settings);
}