共享客户端基础与目标架构

11 篇

笔记列表 11

共享时钟:ServerTime 不是把本地 Now 复制给客户端

自动关联目录:共享时钟:ServerTime 不是把本地 Now 复制给客户端 核心判断:跨端时间不是一个浮点数,而是“权威 epoch + 单调时钟映射 + 误差边界”;没有这三项,冷却、动画和 UI 倒计时无法判断自己是否仍在同一时间…

启动就绪:Initialize 完成不等于 World 已可用

自动关联目录:启动就绪:Initialize 完成不等于 World 已可用 核心判断:Initialize() 只证明 Subsystem 被构造,不证明 GameInstance、NetDriver、PhysicsScene、端口监听…

异步提交:WeakObjectPtr 防崩溃,不证明结果仍有效

自动关联目录:异步提交:WeakObjectPtr 防崩溃,不证明结果仍有效 核心判断:弱引用只能回答 UObject 还在不在;异步结果能否提交,还必须证明它仍属于当前 World、对象代次、属性槽和用户意图。 一、业务冲突 资产、声…

到达数据:跨 World 载荷不能用一次性事件交付

自动关联目录:到达数据:跨 World 载荷不能用一次性事件交付 核心判断:跨世界数据必须先于目标 World 到达,并在目标运行时完成首帧读取前持续有效;因此它是带迁移身份的快照,不是一次广播事件。 一、业务冲突 跨世界时,数据由源端…

生命周期归属:Subsystem 可全局访问不等于它活得够久

自动关联目录:生命周期归属:Subsystem 可全局访问不等于它活得够久 核心判断:选择 UE Subsystem 不是选择一种方便的单例,而是在声明状态由谁创建、能跨过哪些销毁边界、必须在什么时候失效。 一、业务冲突 编辑 Worl…

目标架构:按事实、执行、投影与制品划分边界

自动关联目录:目标架构:按事实、执行、投影与制品划分边界 核心判断:复杂客户端的根问题不是管理器不够多,而是编辑事实、构建产物、运行状态和 UE 表示互相越权;目标架构必须让真相唯一,让投影可丢,让异步结果只能带证据提交。 一、从实际问…

端到端延迟:RPC RTT 不能解释动作为什么慢

自动关联目录:端到端延迟:RPC RTT 不能解释动作为什么慢 核心判断:玩家感知的是“输入到首个可见反馈”,网络 RTT 只覆盖其中一段;没有贯穿输入、权威提交和表现物化的动作身份,就只能知道慢,不能知道慢在哪里。 一、业务冲突 一次…

角色对称:Client 与 DS 应共享契约,不应共享启动时序

自动关联目录:角色对称:Client 与 DS 应共享契约,不应共享启动时序 核心判断:Client 与 DS 应在身份、命令、快照和场景事实上对称,但 UE 为两者提供依赖的时机不同;强行复用同一启动路径,会把生命周期偶然性写进业务协议…

试玩隔离:Suppress Dirty 不能阻止运行时状态污染创作数据

自动关联目录:试玩隔离:Suppress Dirty 不能阻止运行时状态污染创作数据 核心判断:屏蔽属性广播和 Dirty 标记只能隐藏一次写入,不能把运行时状态从创作真相中隔离出去。 一、业务冲突 编辑器希望进入 Play 后让物理真…

跨世界迁移:目标进程 Ready 不等于玩家可以 Commit

自动关联目录:跨世界迁移:目标进程 Ready 不等于玩家可以 Commit 核心判断:目标 DS 已启动、客户端已连上、玩家状态已准备和权威已切换是四个不同事实;只有带证据的 Commit 才能决定玩家属于哪个世界。 一、业务冲突 跨…

Actor迁移:先抽离真相,再替换运行时表示

自动关联目录:Actor迁移:先抽离真相,再替换运行时表示 核心判断:从全 Actor 迁移到数据化运行时,最危险的不是慢,而是快路径漏掉旧路径隐含的不变量;迁移顺序必须先抽离身份和真相,再替换投影。 一、业务冲突 Actor/Comp…