什么时候使用 Photon Networking 主客户端?

When to use Photon Networking master client?

我正在尝试了解 Photon Networking Master Client 到底是什么。文档给出了该术语的 folowing 使用场景:

In absence of a server, it can be made responsible for handling logic that should only be executed by one client in a room (e.g. starting a match when everyone is ready).

为什么我要将某些服务器功能委托给其中一个客户端? Photon 服务器不是应该始终可用吗?

例如,在 this Photon 教程中,他们使用引用 "very convenient feature":

PhotonNetwork.automaticallySyncScene = true

When this is true, the MasterClient can call PhotonNetwork.LoadLevel() and all connected players will automatically load that same level.

如果他们有 Photon 服务器,为什么要给其中一个客户端同步所有人的权限?

总结起来我有2个问题:

1) 什么是主客户端?

2) 有哪些典型的使用场景?

非常感谢!

Photon服务器其实可以做一点。基本上它只是帮助客户与消息交换。

由于服务器无法 运行 游戏逻辑,您有 2 个选择,运行 游戏逻辑在所有客户端上并行运行,或者选择一个客户端进行所有计算并将结果游戏状态发送到所有其他客户。有了这样权威的客户端,让所有客户端保持同步就容易多了。

不用太在意哪个client是master。它是自动分配的。如果当前主人断开连接,则房间中的下一个客户端将接管。如果需要,您仍然可以手动切换主客户端。

在实现游戏逻辑时,使用PhotonNetwork.isMasterClient 属性 来检查当前客户端是否是大师。如果你想从非主客户端触发一些动作,只需将 RPC 发送给主客户端要求它做一个动作。