用途:说明 Roblox 游戏的整体架构与客户端/服务器模型,指导代码与资源应放在哪个容器,并给出可复用的项目组织方式。
主要能力:
- 模型说明:服务器权威运行 Script、拥有 DataStore;每个玩家一个客户端运行 LocalScript/客户端 Script。服务器 DataModel 自动复制到客户端,客户端改动不回传(除网络所有权物理、Humanoid 状态/动画、远程调用)。设计原则为客户端请求→服务器校验决策→状态复制→客户端渲染。
- 容器归属:ServerScriptService、ServerStorage 仅服务器;ReplicatedStorage、ReplicatedFirst、StarterPlayer、StarterGui、Workspace 等按表分配。ReplicatedStorage 中代码可被利用者下载,禁止放服务器逻辑、密钥、管理员名单或反作弊阈值。
- 项目布局:推荐 Rojo 风格 src/server、src/client、src/shared、Packages、ServerPackages,每侧一个入口脚本,其余为 ModuleScript。
- 服务引导:给出 init.server.luau 示例,按 init/start 两阶段加载 Services,客户端以 Controllers 镜像,命名对称。
- 生命周期:处理 PlayerAdded/PlayerRemoving、CharacterAdded、BindToClose,并处理脚本启动前已存在的玩家与角色。
- 组件:用 CollectionService 标签加行为,配合属性配置,适配流式加载。
- 状态共享:属性、RemoteEvent/UnreliableRemoteEvent、服务器表加快照/差异、同侧模块调用、持久化用 DataStore。
- 流式加载:客户端需 WaitForChild 或判空,使用 ModelStreamingMode,服务器做全图查询,可用 RequestStreamAroundAsync 预流。
- 反模式:散落脚本、轮询循环、信任客户端、_G/shared、循环 require、模块顶层 yield、客户端克隆地图、把玩家数据存角色中。
使用方式:作为架构参考,按容器表放置代码与资源,采用单入口加模块结构,用标签与属性组织组件,用远程事件通信。
适用场景:Roblox 游戏项目搭建、代码组织、客户端/服务器职责划分、流式加载适配。
限制:资料未提供具体收费、价格、平台或效果信息;示例代码需按实际项目调整。