photon Server SDK を動かす
こちらのサイトを参考にさせて頂いております。
[複数台構成でのPhoton Serverのインストール](Photon Official Blog":http://blog.photoncloud.jp/server-loadbalancing-install/)
- ダウンロード
[Download Photon Server SDKs](Exit Games: Multiplayer Game Backends and Services":https://www.exitgames.com/en/OnPremise/Download) から、photon server SDKをダウンロード - exeをダブルクリックしてインストール
- Controllerの起動
exeを実行すると、deployというフォルダが作成され、その中にphoton server sdk一式が入っています。
その中にbin_Win32などのフォルダがあるので、自分の環境に合わせて選択し、PhotonControl.exeをダブルクリック
すると、タスクトレイに輪っかのようなphotonのアイコンが表示されます。 - Defaultを起動して動作チェック
アイコンをクリックするとメニューが出るので、
Default -> Start as application をクリック
しばらく待ってから、Default -> Run Testclient(Default) をクリック
コマンドプロンプトが表示され、つながっている感じのログが出たら成功です。 - Photon serverの停止
Default -> Stop application をクリック
- ログをしっかり確認する
Open Logs をクリックすると、BareTailが起動しログの確認をすることができます。
状況確認するために必要になるので、起動しておいて損はないと思います。
存在するログファイルの更新はしますが、新しく追加されたログは表示しませんので、
足りないなーと思ったら、photonを動かしてから、Open Logsをクリックすると良いかと思います。 - LoadBalancingを動かす前に、ポートの開放
手元に、すぐ書ける資料が無いので、一旦割愛。
(windows firewallでしたら、photonのグループ設定をonにするだけで良いはずです。) - game1、game2の設定
photon server のロードバランス機能が初期設定されているので、それを利用します
今回は、1台のマシンでmaster,game1,game2を動かします。
deploy/Loadbalancing/GameServer1(or 2)/bin/Photo.LoadBalancing.dll.config
を開き、
MasterIPAddress、PublicIPAddressで、127.0.0.1となっている部分を、自分のマシンのIPに書き換えて保存
- LoadBalancingを起動して確認
タスクトレイアイコン -> LoadBalancing(MyCloud) -> Start as application をクリック
しばらく待ってから(または、BareTailでログを見て、サーバの起動が確認できてから)
タスクトレイアイコン -> LoadBalancing(MyCloud) -> Run Testclient(LoadBalancing) をクリック
Debugの時と同じく、コマンドプロンプトが表示され、テストが実行されます。
いろいろログが出て、最後の行にこんなかんじのログが出ていればOKです
MASTER: GameLIst event received. Currently: 5 Games visible
[3052] Started game HOST_NAME(3052)5 with 3 clients
Photon SDK Cocos2dx-x v4.0.0.5 で先ほどのLoadBalancingに接続する
ダウンロード
[Download Photon Server SDKs](Exit Games: Multiplayer Game Backends and Services":https://www.exitgames.com/en/OnPremise/Download)
iOS SDK v4.0.0.5 をダウンロードしました。
Demoを動かす
xcodeのインストールや設定は割愛します
- ダウンロードしたファイルを解凍
- Photon-iOS-Sdk_v4-0-0-5/Demos/demo_loadBalancing/iPhone/demo_iPhone_loadbalancing_cpp.xcodeproj をダブルクリック
- URLの設定
109行目辺りの mLoadBalancingClient.connect();は、
このままでは、本家のサーバにつないでしまいますので、以下の様に書き換え。
mLoadBalancingClient.connect(L"YOUR_HOST_ID", ExitGames::LoadBalancing::ServerType::MASTER_SERVER); - 実行
これで実行すると先ほど設定したサーバとやりとりをして、部屋を作ったり、入ったりすることができます。
トラブルシュート
- エラーコード 1039, 1040, 1023 がでる
原因はホストに繋ぐことができていないエラーです。
だいたい以下の問題でした。
・IPが間違っている(ipのみで、ポートやhttpはいりません)
・サーバ側のファイアウォールは解除されていない
・photonserverは起動していない
・ネームサーバにつないでしまっている
connectで、ipを指定しますが、defaultでは、ネームサーバにつないでしまいます。
ExitGames::LoadBalancing::ServerType::MASTER_SERVER を指定しましょう。