用語集
ACK
信頼性を高めるための(低レベルの)コマンドです。リライアブルUDP(RUDP)に使用します。
Actor
ルームに入っているプレイヤーは"Actor"とも呼ばれます。
ActorにはそれぞれActorNumberが存在し、これはactorId、player number、player 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アプリケーションはダッシュボードから管理できます。
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でカバーされています。ReturnCode やCommands等の心配はほとんどありません。
たとえば、現在では長期的なサポートモードの対象になっているため、今後は主要機能のアップデートはありません。新しいプロジェクトについては、クライアントサイドで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には次のプロパティやメソッドがあります:
- 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は全てのタイトルを一つのゲームロジック(アプリケーション)を実行します。
内部でゲームをAppIdとGameVersionで分別しています。
Back to top