服务器
Roblox 体验默认为多人游戏,并且运行在客户端-服务器模型。Roblox 服务器 是最终权威,负责维护体验状态,并且对所有连接的客户端保持同步。
客户
体验运行时,Roblox 会复制您从 Studio 中构建和发布的“编辑”数据模型的版本,并将其作为“运行时”数据模型在 Roblox 服务器上运行。
连接的客户端还收到一个副本的运行时数据模型和任何玩家的背包(物道具)或本地用户界面的初始化,例如初始化玩家的背包(工作间品工作间)或本地用户界面。当体验具有 Workspace.StreamingEnabled 设置为 true 时,服务器最初只会发送一个子集的内容在 Workspace 最近
复制
服务器不断更新连接的客户端,使其在服务器和客户端之间通过“复制”过程保持所有东西的同步,这是一个名为“复制”的过程,它同步数据模型、物理模拟和聊天消息。 复制逻辑在客户端和服务器上存在,以确保同步。
数据
数据模型变更可以在多种情况下发生,例如当 3D 世界中的某个东西被创建或 3D 世界的属性发生变化。 这通常发生在服务器或客户端的脚本在服务器-客户端边界的另一侧进行反射时。 以下图形显示了数据复制的常见场景。
物理
Roblox 使用了一个刚体物理引擎,该引擎负责计算 3D 世界中零件的移动和交互。 默认情况下,Roblox 中的所有部分都是刚体,并且参与模拟物理,除非另有说明。您还可以将多个部分组合成为集合,这是 Roblox 中的单个刚身体。
Roblox 在必要时会在服务器和客户端之间重复物理模拟数据。 为了帮助提高模拟性能,Roblox 可以将对象的所有权分配到特定的客户端或服务器。 这意味着客户端或服务器可以对该组合的物理模拟进行直接的控制。 其他客户端通过对该组合的位置和移动进行更新来从所有者那里获得更新。
聊天
Roblox 在服务器和客户端之间复制聊天消息。 服务器负责过滤聊天消息并决定要复制哪些消息给其他客户端。 例如,服务器可以过滤包含冒犯性或太长的消息的消息。