This document is about: PUN 2
SWITCH TO

PUN Classic (v1)、PUN 2、Boltはメンテナンスモードとなっております。Unity2022についてはPUN 2でサポートいたしますが、新機能が追加されることはありません。お客様のPUNプロジェクトおよびBoltプロジェクトが停止することはなく、将来にわたってパフォーマンス性能が落ちることはありません。 今後の新しいプロジェクトについては、Photon FusionまたはQuantumへ切り替えていただくようよろしくお願いいたします。

用語集


ACK

信頼性を高めるための(低レベルの)コマンドです。リライアブルUDP(RUDP)に使用します。



Actor

ルームに入っているプレイヤーは"Actor"とも呼ばれます。
ActorにはそれぞれActorNumberが存在し、これはactorIdplayer numberplayer id
とも呼ばれ、ルーム内で有効です。
ActorNumberの値は各ルームで1から始まり、(クライアントが退出し、他のクライアントが参加した場合に)再利用されません。



Application

アプリケーションにはゲームロジックが含まれます。 C#で書かれていて、Photon Coreで実行されます。このために抽象クラスApplicationを拡張しています。Photon CloudはVirtual Applicationを使用しています。



Application ID (AppId)

Photon CloudではApplication ID (AppId)がタイトルとVirtual Applicationのメインの識別方法になります。

AppIdはダッシュボードから確認できます。ほとんどのデモで必要です。



Application Version (AppVersion)

PUNを除く全てのクライアントSDKでは、AppVersionはGameVersionを同様のものとなります。
If you use PUN and non-PUN clients at the same time or if you have clients with different PUN versions,
you need to take into consideration PUN's specific AppVersion format: {gameVersion}_{PUN_version}.
So if you set the gameVersion to "1.0" in PUN and use PUN version "1.80" then the resulting AppVersion is "1.0_1.80".

If you mix PUN and non-PUN clients, be aware that PUN registers a few Unity related classes as Custom Types. That allows serialization of Unity's Vector3 but you need to check the "CustomTypes.cs" of PUN to support this in other client SDKs.


Binaries Folder

Photon Server SDKのバイナリーフォルダにはPhoton Coreのプラットフォーム特化ビルドが含まれています。bin_とdeployフォルダが用意されています。
__


Build script

デプロイ用にアプリケーションをコンパイル及びコピーする際に使うバッチファイル又はMsBuildプロジェクト。クリーンなビルドのデプロイが可能になります。



Business Logic

Photon Coreの上部で動作するゲームのロジックです。このレイヤーは操作とイベントを処理します。



Channel

RUDPプロトコルにおける低レベルのチャネルもしくはPhoton Chatでの「会話」チャネルのどちらかを指します。



Chat

Photon Chatはユーザ同士のコミュニケーションを可能にする軽量なサービスです。 ユーザはチャンネルに参加したり、プライベートメッセージを送ってユーザステータスをフレンドに提供することができます。Chatは個別の接続を使用していてルームとは別になります。



Client

サーバーに接続するアプリケーションをクライアントといいます。
Photonのケースでは、クライアントがサーバーへの接続を初期化し、他のクライアントへのメッセージを可能にします。
PhotonクライアントはクライアントAPIでプログラミングされておりクライアントライブラリとしても参照されます。



Cluster

クラスタはマスターサーバーと複数のゲームサーバー
から成ります。クラスタは互いに分離されています。
通常、1つのリージョンには1つのクラスタのみが存在しています。



Command

コマンドは、データを運んだり、接続を確立またはシャットダウンするために eNetプロトコルのレイヤー上で使用されます。
コマンドを書く必要はありませんが、参考の知識として説明しています。



Concurrent User (CCU)

ゲームのConcurrent Userとは同時にサーバーに接続しているクライアントを指します。Photon Cloudアカウントの料金はCCUカウントが基準となります。

CCUはDaily Active Users (DAU/日別のアクティブなユーザ)やMonthly Active Users (MAU/月別のアクティブなユーザ)とは違います。ユーザが1日や月にプレイする時間は限られています (全てのユーザが毎日プレイするとは限らないので)。



Connect

クライアントがPhoton上で操作を呼び出す前までに接続し、接続を確立する必要があります。



Custom Operation

クライアントAPIにない操作、またはサーバー側の(ライトアプリケーションにはない)新たな操作を指します。



Custom Properties

PhotonではルームやプレイヤーのCustom Propertiesを設定できます。どちらの場合も、custom propertiesはHashtable(ハッシュテーブル)として提供されます。キーはtype Stringである必要がありますが、任意の値(シリアル化できる)を設定できます。

Custom Propertiesはプレイヤーがゲームを放棄すると同時に削除されます。Turnbasedのasync(非同期)ゲームの場合は維持されます。



Dashboard

ダッシュボードでは、各種数値をモニターするためにウェブサイト上で各種数値のグラフを生成して表示します。
Photonアプリケーションはダッシュボードから管理できます。

Realtime Apps Dashboard



Deploy Folder

サーバーSDKでは、このフォルダにPhotonを実行するのに必要なもの全てが含まれています。
詳細: バイナリフォルダおよびコンパイルされたアプリケーション



Device

モバイル端末を初めとする、クライアントアプリケーションを動作させるたのシステムを指します。



Disconnect

クライアントとサーバー間の接続を終えることを指します。プレイヤーがクライアントのアプリを終了したい時、またはタイムアウトの時に起こります。また、サーバーロジックがプレイヤーを切断することもできます。



EmptyRoomTTL

Photonサーバーが空のルームを処分するまで待機するミリ秒での時間
アクティブなアクターが参加していない限り、ルームは空とみなされます。
最後のアクティブなアクターが退出するとルームの消去タイマーが稼働し始めます。アクターが空の状態のルームに参加・再参加するとカウントダウンはリセットします。

デフォルトで許可されている最大値:

  • Photon Cloud上で300,000ミリ秒(5分)
  • Photon Server上で60,000ミリ秒(1分)


Event

イベントはクライアントに送信される非同期のメッセージです。イベントは操作の副作用としてトリガーされ、またはイベントコードにより操作の主目的として発動され、識別されます。識別にはActorNumberが用いられます。



EvCode

イベントコードの略語です。イベントのタイプとそのイベントがどの情報(およびタイプ)を含んでいるのかを識別できます。



Fusion

Fusionは、弊社最新のステート転送ネットワーキングソリューションです。対戦型ゲームでも、1セッションあたり100人以上のプレイヤーをサポートすることを目指しています。



Game

Gameはタイトルやアプリケーションを指す場合と、プレイヤー同士の実際の対戦を指す場合があります。
このドキュメント内では前者の場合には「タイトル」を、後者の場合にはルームを使用するように努めています。



Game Server

ゲームサーバーは、クライアント同士のゲーム内の実際のコミュニケーションを処理します。クライアントは マスターサーバーを通じてのみコミュニケーションするため、ゲームサーバーはフレンドリストやルームリストは提供しません。



GameVersion

GameVersionはどのゲームでも設定できるストリングです。
Photon Cloudでは互換性の無いバージョンのユーザを別のVirtual Applicationに別ける際に便利です。



Latency

RequestとACKの間の時間を指します。
レイテンシーはクライアントとサーバーによって異なります。ラウンドトリップ時間 (RTT)として計測されます。



Hive

Photon Server SDKでのHiveアプリケーションを指します。
開始時に使用する基本的なビジネスロジックです。



LoadBalancingClient

このクラスは、PhotonクライアントSDKを含む多くのSDKの素地となっています。これにはPhotonのMasterサーバーがいくつかのGameサーバーを把握しているロードバランシングワークフローをまとめるロジックが含まれています。
ルームに参加する場合は、クライアント特定のGameサーバーに切替を行います。



Lobby

Lobbyはルームのリスト(又はバーチャルコンテナ)です。複数のLobbyを使うことができますし、Lobbyには複数の種類があります。例:全てのLobbyタイプがルームリストをクライアントに送りとは限りません。

デフォルトではプレイヤーはLobby内で会話することができませんし他のクライアントがLobbyにいることすら分かりません。また、クライアントはLobbyとRoomに同時にいることはありません。



Log Files

Photon Serverはサービスとして実行するように設計されていて、拡張GUIはありません。
代わりに次の2つのログファイルが使用されます:アプリケーションは"deploy\log"に書き込みます。Photon Coreは"deploy\bin_*\log"に書き込みます。



Matchmaking

ゲームはマッチを見つけるプロセスです。



Master Client

マスタークライアントはルームごとの「特別な」 クライアントです。カスタムサーバーコードがないため、マスタークライアントはルームにいるひとりのクライアントによってのみ実行されるロジックの処理をつかさどるように作られています(例:全員の準備が完了したらマッチを開始する)。
マスタークライアントが退出すると新しいマスタークライアントが自動的に割り当てられます。明示的に設定されない限り、マスタークライアントはアクティブなアクターの中で一番若いアクター番号を持つアクター(プレイヤー)です。



Master Server

マスターサーバーはリージョンまたはクラスターのマッチメイキングを処理します。マスターサーバーは複数のゲームサーバーに対してルームを配布します。
クライアントがネームサーバーを経由してマスターサーバーを調査する点が重要です。


Messages

Messageは他のユーザを更新したり、サーバーで行う全ての処理を指します。

  • Photon内では: 全てのオペレーション、レスポンス、イベントはメッセージです。
  • PUN内では:  全てのRPC, 同期の更新, インスタンス化されたコール, Custom Properties (playerNameを含む)の変更 は全てメッセージです。

他のクライアントへのイベント(又はRPC)の送信はルーム内の各プレイヤーにつき1つのメッセージとしてカウントされます。一人が送信して、他のクライアントが受信します。

PUNはOnPhotonSerializeViewでアップデートを集約させる点で特別です。
複数のオブジェクトの更新は可能であれば一つのメッセージにまとめられます。
また、Observeモードはこれに影響します:更新の間にGOが動かない場合"Unreliable On Change"が何は送らなくなります。レアなケースですが、一つのオブジェクトが原因で各プレイヤーに10メッセージ/秒が送信されてしまう事もあります。



Messages Limit

次の理由でルームや1秒毎に送られるメッセージ(更新)に上限をつけています:

  • 更新が多すぎると破損の原因となります。帯域幅やデバイスなどによって異なるので明確な上限を設定しているわけではありません。
  • 共有サーバーを均等に別けられるようにしています。

ルームや秒毎のメッセージはDashboardから確認できます。



Name Server

ネームサーバーは利用可能なリージョンのリストをクライアントに提供し、クライアントの認証リクエストを処理します。
クライアントがリージョンを選択すると、ネームサーバーはそのリージョンのマスターサーバーアドレスを提供します。
複数のロードバランスされたネームサーバーが存在します。



Operation

Photonのサーバー側での RPC機能と同義語です。
クライアントはサーバー上の何かを行い、イベントを他者に送信するためにも Operationを使用します。
Photon Cloudの各ドキュメント内では単に"操作"と表現します。



OpCode

Operationコード、操作コードの略称です。
サーバー側で操作をトリガーするために使用されるbyte値です。
クライアントは、返り値に対するアクションのタイプを識別するために、opCodesで操作の反応を得ます。



Peer

接続の片方をさす言葉です。
クライアントはピアを持ち、サーバーはそのクライアントに対するリモートのピアとなります。



PlayerTTL

アクターがルーム内でインアクティブのままでいる削除されるまでのミリ秒での時間です。
アクターはルームを一時的に退出したり予期せず切断されたりする場合にインアクティブとなります。

値が-1となるとインアクティブなアクターがタイムアウトしないということを指します。



Photon Core

C++で書かれた Photonの中核です。接続とeNetプロトコルを処理します。



Photon Control

Photon Server SDKのPhoton管理ツール。PhotonControl.exeを起動するとタスクバーメニューが表示されてPhotonのサービスの管理ができます。



Photon Server SDK

Photon Server SDKには全てのWindows機でPhoton Serverインスタンスを実行及びビルドするためのツールが含まれています。
詳細はこちら



PhotonServer.config

Photon Coreの構成ファイル。IP, アプリケーション, パフォーマンス設定の構成を行います。以前の名称はPhotonSocketServer.xmlで、一時期はPhotonSocketServer.configとも呼ばれていました。



Photon Unity Networking (PUN)

Photon Unity NetworkingはUnity用のC#クライアントパッケージです。
Photonの低レベルな機能を使って、より高度な形でUnityのビルドインされたネットワーキングを再実装します。
Photonの低レベルな機能の多くがPUNでカバーされています。ReturnCodeCommands等の心配はほとんどありません。

たとえば、現在では長期的なサポートモードの対象になっているため、今後は主要機能のアップデートはありません。新しいプロジェクトについては、クライアントサイドでFusionまたはQuantumを使用する必要があります。



Policy File

Policy Applicationはcrossdomain.xmlを送るためにPhotonで実行されます。Unity Webplayer, FlashやSilverlight等のWebplayerプラットフォームはサーバーに接続する前に認証を求めます。



Quantum

Quantumは、弊社最新の予測ロールバックネットワーキングソリューションです。



Region

リージョンという用語は、Photon Cloudがホスティングされている場所を指します。



Reliable

リライアブル(信頼できる)コマンドは相手側に到達するか、タイムアウト切断のいずれかの処理をします。コマンドはチャンネル毎に順序付けられており、リライアブルコマンドが一時的にない場合は送信が滞ります。



ReturnCode

byte値の形での各操作の第1の結果です。
操作が問題なく(RC_OK == 0)行われたか、またはどのエラーが発生したかををチェックすることができます。



Room

プレイヤーは対戦をしたりコミュニケーションをするためにRoomで接触します。Room外でのコミュニケーションはできません。クライアントは一つのルームでしかアクティブでいられません。

Photon Room Core Concept
Photon Roomの基本的なコンセプト

PhotonのRoomには次のプロパティやメソッドがあります:

  • Room名を指定してRoomの作成又は参加をする。
  • RoomやプレイヤーのCustom Properties を設定する。
  • 最大プレイヤー数を定義する。
  • 非表示 (Lobbyでは表示されない)または表示。
  • クローズ(誰も入れない)又はオープン。


RPC

Remote Procedure Call(リモートプロシージャーコール)の省略。
Operation (サーバー上のメソッドの呼び出し)を指す場合もありますが、通常はPUNゲーム内のリモートクライアントで呼び出す際の方法を指します。



RUDP

送信されたコマンドをリクエストに応じて信頼性を持たせるUDP上のプロトコルです。
リライアブルなUDPです。
UDPの上にあるプロトコルで送信されたコマンドを必要に応じてリライアブルにします。
送信者はリライアブルなメッセージを肯定応答まで送り続けます。



Socket Server

Photon Coreの同義語です。



Timeout

eNetを利用し、クライアントとサーバーは他方が Reliableコマンドを認識しているかどうかを監視します。これらのACKが長時間失われると、接続が失われたものと判断します。



Unreliable

Unreliableコマンドは他方によりACKされません。Unreliableコマンドはチャンネル別に順序づけられますが、送信されると、順序が入れ替わる場合があります。



Virtual Application

Photon Cloudは全てのタイトルを一つのゲームロジック(アプリケーション)を実行します。
内部でゲームをAppIdGameVersionで分別しています。


Back to top