Mercurial > hg > Papers > 2022 > riono-master
changeset 37:441f0e35fb71
update PUN2
author | riono <e165729@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 07 Feb 2022 02:09:50 +0900 |
parents | a60e8d536a28 |
children | 36139bf7fb4c |
files | Paper/chapter/5-LibraryComparison.tex Paper/master_paper.pdf Paper/src/Library/Pun2Example.cs riono-master.mm |
diffstat | 4 files changed, 64 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/Paper/chapter/5-LibraryComparison.tex Sun Feb 06 21:27:31 2022 +0900 +++ b/Paper/chapter/5-LibraryComparison.tex Mon Feb 07 02:09:50 2022 +0900 @@ -1,8 +1,49 @@ \chapter{Christie Sharpの評価} -\section{Unityの通信ライブラリとの比較} +前章まではChristie Sharpの実装やUnity上での動作について述べた。 +本章では、Unityで使用可能な通信ライブラリであるPhoton Unity Networking2、MirrorとChristie Sharpの比較を行い、 +Unityで使用する場合のChristie Sharpの評価を行う。 + +\section{Photon Unity Networking 2} +Photon Unity Networking 2(以下PUN2)はUnityで利用可能なネットワークライブラリである。 +自動で他のClientへの接続や同期を可能とし、マッチメイキング機能なども備わっている。 + +図\ref{}はPUN2でのGame Serverまでの接続の過程を表した図である。 +PUN2ではサーバクライアント型の通信を行っており、Photon CloudというCloud Serverに接続することで通信を可能にしている。 +ClientはPhoton Cloudに接続を行うと、始めにName Serverに接続される。 +Name Serverでは、そのClientが利用可能なリージョンを提供し、最低PingのMaster Serverへの接続が自動で行われる。 +Master Serverでは、ゲーム全体における接続しているプレイヤーや、作成されているルーム情報などの監視を行っている。 +マッチメイキングや、新しいRoomの作成、参加などが可能である。 +各リージョンのMaster Serverは完全に分離しており、マッチメイキングはそれぞれのMaster Serverでのみ可能である。 +Game Serverでは、Master Serverで作成された各ルームの管理が行われおり、実際にClient同士の通信を行ってゲームプレイを可能としているのはGame Serverである。 + +% 開発面でのできること アタッチするだけとか +% 制限面 20mucみたいな 500messageとか +% ネット環境がないとlocal通信すらできない -\section{Photon network 2} +開発面においてはUnity API対応がされており、座標や回転データなどを持っているTransform、アニメーション、 +物理演算のRigidbodyの同期にはコードを書かずに用意されているScriptをGameObjectにAttatchするだけで同期可能となっている。 + +\lstinputlisting[label=src:Pun2Example, caption=PUN2の使用例]{src/Library/Pun2Example.cs} + +ソースコード\ref{src:Pun2Example}は、PUN2でサーバに接続を行いゲーム内にプレイヤーを生成する例である。 +Callbackの使用にはMonoBehaviourPunCallbacksを継承する必要があり、MonoBehaviourPunCallbacksにはUnityのMonoBehaviourを継承しているため、 +Startメソッドなどが使用可能である。 +Startメソッドでは、事前に設定したName ServerおよびMaster Serverへの接続を行っている。 +OnConnectedToMasterメソッドはMaster Serverへ接続した際に呼ばれ、Roomへ加入を試しなければ作成を行い、 +OnJoinedRoomメソッドではGameServerにあるRoomに加入後に呼ばれ、プレイヤーの生成を行っている。 +このようにPUN2では各サーバへの接続/切断時のコールバックが豊富に用意されており、柔軟に処理を記述することが可能である。 + + +PUN2の基本料金は無料であるが、使用上の注意としていくつかの制限がある。 +\begin{itemize} + \item 同時接続人数が20人以下 + \item 1Roomの秒間Message数が500以下 + \item データの転送量が60GB以下 + \item etc ... +\end{itemize} + +これらの制限を超えて利用する場合には、別途料金や有料プランに加入する必要が発生する。 \section{Mirror}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/src/Library/Pun2Example.cs Mon Feb 07 02:09:50 2022 +0900 @@ -0,0 +1,13 @@ +public class PhotonController : MonoBehaviourPunCallbacks { + void Start() { + PhotonNetwork.ConnectUsingSettings(); + } + + public override void OnConnectedToMaster() { + PhotonNetwork.JoinOrCreateRoom("Room", new RoomOptions(), TypedLobby.Default); + } + + public override void OnJoinedRoom() { + PhotonNetwork.Instantiate("Charactor", Vector3.zero, Quaternion.identity); + } +} \ No newline at end of file
--- a/riono-master.mm Sun Feb 06 21:27:31 2022 +0900 +++ b/riono-master.mm Mon Feb 07 02:09:50 2022 +0900 @@ -91,10 +91,17 @@ </richcontent> </node> </node> -<node TEXT="annotation" ID="ID_1575265406" CREATED="1620127338849" MODIFIED="1620127344761"/> +<node TEXT="annotation" ID="ID_1575265406" CREATED="1620127338849" MODIFIED="1643802654010"> +<cloud COLOR="#f0f0f0" SHAPE="ARC"/> +</node> <node TEXT="MessagePack" ID="ID_839127787" CREATED="1620127345893" MODIFIED="1620127351486"/> <node TEXT="ThreadからTaskへ" ID="ID_105028350" CREATED="1620127352019" MODIFIED="1620127370790"/> <node TEXT="送信パケットの変更" ID="ID_1310134337" CREATED="1643795005693" MODIFIED="1643795023242"/> +<node TEXT="デバッグについて" ID="ID_1227531480" CREATED="1643795217925" MODIFIED="1643795222003"> +<node TEXT="Rider" ID="ID_1711395774" CREATED="1643795222315" MODIFIED="1643795227158"> +<node TEXT="multi threadをbreak pointできない" ID="ID_1917752946" CREATED="1643795232424" MODIFIED="1643795256577"/> +</node> +</node> </node> <node TEXT="Christie_shrp" ID="ID_237672749" CREATED="1643276439249" MODIFIED="1643279527025"> <node TEXT="例題" ID="ID_1532413253" CREATED="1643276475463" MODIFIED="1643279531938"/>