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}
Binary file Paper/master_paper.pdf has changed
--- /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"/>