Unityから見たPhoton Cloud
-
Upload
- -
Category
Engineering
-
view
744 -
download
7
Transcript of Unityから見たPhoton Cloud
Unity から見た Photon CloudCLOUD CREATIVE STUDIOS,
INC.
自己紹介
• 武藤辰矢• エンジニアやってます。• クライアントもサーバもやります。• プロジェクトリーダーもやってます。• Azure 触ってます。
CLOUD CREATIVE STUDIOS, INC.
自己紹介
• 安藤健二• 8bit 時代からやってます• 年季だけは積んできました• 生涯現役!!
CLOUD CREATIVE STUDIOS, INC.
宣伝
DEAD CITY *スマホ向け 3D ゾンビ FPS
*リアルタイムマルチプレイ対応
*お気に入りの銃で ゾンビを撃ちまくれ!
★ 好評配信中!!iOS - http://goo.gl/kcrmN2Android - http://goo.gl/AdfLgT
CLOUD CREATIVE STUDIOS, INC.
Photon Unity Networking(PUN)Unity 用 Photon クライアントフレームワーク
CLOUD CREATIVE STUDIOS, INC.
Photon サーバ構成
* 引用元 https://doc.photonengine.com/ja/realtime/current/reference/regions
CLOUD CREATIVE STUDIOS, INC.
Unity でのサーバ接続
• UnityEditor で PhotonSerserSettings.asset を編集• ServerSettings クラス – Photon の設定を行う EditableObject
• Hosting • Reagion• AppId
• PhotonNetwork クラスによる接続• PhotonNetwork.ConnectUsingSettings( /* ゲームバージョン */)• PhotonNetwork.connectedAndReady プロパティが true になるまで待つ
これだけでマスターサーバー ( マッチングサーバ ) への接続が完了
CLOUD CREATIVE STUDIOS, INC.
簡単だけどその中身は…
1. ネームサーバに接続2. アプリケーション認証3. 下位サーバー接続のための暗号化を確立4. マスターサーバへ接続
• 上記の一連の処理をやってくれる• この状態が PhotonNetwork.connectedAndReady
• PhotonNetwork.connectionStateDetailed プロパティを観察すると見えてくる
CLOUD CREATIVE STUDIOS, INC.
マッチメーキング
• PhotonNetwork.JoinOrCreateRoom() を呼び出す• PhotonMonoBehavior コールバックで入室状態をハンドルする
• OnJoinedRoom() 入室成功• OnPhotonCreateRoomFailed() ルーム作成失敗
簡単 !!!
CLOUD CREATIVE STUDIOS, INC.
簡単だけどその中身は…
1. マスターサーバがマッチしたルームを管理するゲームサーバを選ぶ2. ゲームサーバに接続3. ゲームサーバでルーム参加処理、またはルーム作成処理4. ゲームサーバの処理を待つ5. 入室済み状態に設定
• 上記の一連の処理をやってくれる。• この状態が PhotonNetwork.inRoom
• PhotonNetwork.room != null // 所属するルームが設定される• PhotonNetwork.player != null // ローカルプレイヤーの情報が設定される
CLOUD CREATIVE STUDIOS, INC.
ルーム作成時の詳細
* 引用元 https://doc.photonengine.com/en/onpremise/current/applications/loadbalancing/application
CLOUD CREATIVE STUDIOS, INC.
1. マスターサーバへ接続2. ゲーム認証3. ルーム作成先ゲームサーバー選択4. マスターサーバ切断5. ゲームサーバへ接続6. ゲーム認証7. ルーム作成
入室してしまえば
• RPC によるクライアント間通信• PhotonNetwork.player.SetCustomProperties() によるプレイヤー情報の同
期• シリアライズによる GameObject プロパティの同期
( 旧 ) Unity Networking と同様に使える。
CLOUD CREATIVE STUDIOS, INC.
簡単だけど
• Photon のロビーの概念を知っていないと詳細なマッチメークができない• TypedLobby クラス• LobbyType 列挙
• Photon Cloud の概念を知っていないとエラー処理ができない• PhotonMonoBehavior.OnFailedToConnectToPhoton()• PhotonMonoBehavior.OnDisconnectedFromPhoton()
• PhotonNetwork の多くの機能を使いこなせない
CLOUD CREATIVE STUDIOS, INC.
まとめ
• PUN は煩雑な接続処理が自動化してくれる• プロトタイプ作成までの手順は非常に簡単• Photon Cloud の概念を把握して Unity で快適なネットワークプレイ• Photon Cloud の概念を把握するには PUN ドキュメントだけでは不十分
CLOUD CREATIVE STUDIOS, INC.