本页尚未翻译,当前显示英文版本。
谁看到什么,由哪台机器运行
听起来像一个问题,其实是两个。 谁看到什么关乎客户端:房间状态的哪一部分送达哪个玩家。由哪台机器运行关乎主机:哪个进程拥有某个实体,下一个接手的又是谁。把两者混为一谈的词是复制:在游戏引擎里它通常指前者,在这里指后者。
| 你想问的是 | 阅读 |
|---|---|
| 哪个客户端收到哪些状态、收到多少 | Visibility,以及 Data & Subscriptions 和 Prediction & Lag Comp |
| 哪台机器拥有实体,机器宕掉后会怎样 | 主机失联后还剩什么 |
两者在不同的地方声明
两者都不在运行时配置,也不共用同一个声明。
| 声明位置 | 声明内容 | |
|---|---|---|
| 谁看到什么 | aspect:Data & Subscriptions、Visibility | 可见性谓词、对象上限及其排序、哪些相邻区域可见,以及投递模式 |
| 由哪台机器运行 | 房间类型:Rooms | 权威模式、对外部权威上报的结果信任到什么程度,以及主机掉线时的行为 |
什么都不声明时,两者的结果也不同。没有自己可见性规则的 aspect 通过共享数据包投递,这是默认行为,适合小房间。没有指定权威模式(authority mode)的房间类型会被拒绝:这里没有默认值,因为没有谁能替你在平台模拟和外部权威之间做选择。