Unityから見たPhoton Cloud

14
Unity かかかか Photon Cloud CLOUD CREATIVE STUDIOS, INC.

Transcript of Unityから見たPhoton Cloud

Page 1: Unityから見たPhoton Cloud

Unity から見た Photon CloudCLOUD CREATIVE STUDIOS,

INC.

Page 2: Unityから見たPhoton Cloud

自己紹介

• 武藤辰矢• エンジニアやってます。• クライアントもサーバもやります。• プロジェクトリーダーもやってます。• Azure 触ってます。

CLOUD CREATIVE STUDIOS, INC.

Page 3: Unityから見たPhoton Cloud

自己紹介

• 安藤健二• 8bit 時代からやってます• 年季だけは積んできました• 生涯現役!!

CLOUD CREATIVE STUDIOS, INC.

Page 4: Unityから見たPhoton Cloud

宣伝

DEAD CITY *スマホ向け 3D ゾンビ FPS

 *リアルタイムマルチプレイ対応

 *お気に入りの銃で  ゾンビを撃ちまくれ!

★ 好評配信中!!iOS - http://goo.gl/kcrmN2Android - http://goo.gl/AdfLgT

CLOUD CREATIVE STUDIOS, INC.

Page 5: Unityから見たPhoton Cloud

Photon Unity Networking(PUN)Unity 用 Photon クライアントフレームワーク

CLOUD CREATIVE STUDIOS, INC.

Page 6: Unityから見たPhoton Cloud

Photon サーバ構成

* 引用元 https://doc.photonengine.com/ja/realtime/current/reference/regions

CLOUD CREATIVE STUDIOS, INC.

Page 7: Unityから見たPhoton Cloud

Unity でのサーバ接続

• UnityEditor で PhotonSerserSettings.asset を編集• ServerSettings クラス – Photon の設定を行う EditableObject

• Hosting • Reagion• AppId

• PhotonNetwork クラスによる接続• PhotonNetwork.ConnectUsingSettings( /* ゲームバージョン */)• PhotonNetwork.connectedAndReady プロパティが true になるまで待つ

これだけでマスターサーバー ( マッチングサーバ ) への接続が完了

CLOUD CREATIVE STUDIOS, INC.

Page 8: Unityから見たPhoton Cloud

簡単だけどその中身は…

1. ネームサーバに接続2. アプリケーション認証3. 下位サーバー接続のための暗号化を確立4. マスターサーバへ接続

• 上記の一連の処理をやってくれる• この状態が PhotonNetwork.connectedAndReady

• PhotonNetwork.connectionStateDetailed プロパティを観察すると見えてくる

CLOUD CREATIVE STUDIOS, INC.

Page 9: Unityから見たPhoton Cloud

マッチメーキング

• PhotonNetwork.JoinOrCreateRoom() を呼び出す• PhotonMonoBehavior コールバックで入室状態をハンドルする

• OnJoinedRoom() 入室成功• OnPhotonCreateRoomFailed() ルーム作成失敗

簡単 !!!

CLOUD CREATIVE STUDIOS, INC.

Page 10: Unityから見たPhoton Cloud

簡単だけどその中身は…

1. マスターサーバがマッチしたルームを管理するゲームサーバを選ぶ2. ゲームサーバに接続3. ゲームサーバでルーム参加処理、またはルーム作成処理4. ゲームサーバの処理を待つ5. 入室済み状態に設定

• 上記の一連の処理をやってくれる。• この状態が PhotonNetwork.inRoom

• PhotonNetwork.room != null // 所属するルームが設定される• PhotonNetwork.player != null // ローカルプレイヤーの情報が設定される

CLOUD CREATIVE STUDIOS, INC.

Page 11: Unityから見たPhoton Cloud

ルーム作成時の詳細

* 引用元 https://doc.photonengine.com/en/onpremise/current/applications/loadbalancing/application

CLOUD CREATIVE STUDIOS, INC.

1. マスターサーバへ接続2. ゲーム認証3. ルーム作成先ゲームサーバー選択4. マスターサーバ切断5. ゲームサーバへ接続6. ゲーム認証7. ルーム作成

Page 12: Unityから見たPhoton Cloud

入室してしまえば

• RPC によるクライアント間通信• PhotonNetwork.player.SetCustomProperties() によるプレイヤー情報の同

期• シリアライズによる GameObject プロパティの同期

( 旧 ) Unity Networking と同様に使える。

CLOUD CREATIVE STUDIOS, INC.

Page 13: Unityから見たPhoton Cloud

簡単だけど

• Photon のロビーの概念を知っていないと詳細なマッチメークができない• TypedLobby クラス• LobbyType 列挙

• Photon Cloud の概念を知っていないとエラー処理ができない• PhotonMonoBehavior.OnFailedToConnectToPhoton()• PhotonMonoBehavior.OnDisconnectedFromPhoton()

• PhotonNetwork の多くの機能を使いこなせない

CLOUD CREATIVE STUDIOS, INC.

Page 14: Unityから見たPhoton Cloud

まとめ

• PUN は煩雑な接続処理が自動化してくれる• プロトタイプ作成までの手順は非常に簡単• Photon Cloud の概念を把握して Unity で快適なネットワークプレイ• Photon Cloud の概念を把握するには PUN ドキュメントだけでは不十分

CLOUD CREATIVE STUDIOS, INC.