SuperAPI AI 工具集

ue5-save-load-replication

编程与开发

查看项目

更新于 10-16 02:24

技能介绍

用途

该技能用于指导 Unreal Engine 5.6 至 5.8 中游戏系统的存档/读档(Save/Load)与多人网络复制(Replication)工作流。当需求涉及 SaveGame 模式设计、序列化、状态恢复、网络同步或重连一致性时,可参考本技能。

主要能力

  • 区分必须持久化的状态与必须复制的状态,将本地存档状态与网络运行时状态分离。
  • 输出数据模式、保存流程、加载流程与网络流程。
  • 提供存档管线与复制管线的 API 锚点。
  • 定义状态契约:每个状态字段需归类为仅持久化、仅复制或持久化加复制。
  • 提供失败处理与排查思路。

API 锚点(UE5.6-UE5.8)

存档管线锚点:

  • USaveGame
  • UGameplayStatics::CreateSaveGameObject(...)
  • UGameplayStatics::SaveGameToSlot(...), LoadGameFromSlot(...)
  • UGameplayStatics::AsyncSaveGameToSlot(...), AsyncLoadGameFromSlot(...)

复制锚点:

  • GetLifetimeReplicatedProps(...)
  • DOREPLIFETIME(...)
  • ReplicatedUsing=OnRep_*
  • UFUNCTION(Server/Client/NetMulticast, ...)

权威锚点:

  • 服务器权威的变更路径
  • 客户端请求经由校验后的服务器 RPC 入口路由

状态契约

每个状态字段必须归类为以下之一:

  • 仅持久化(SaveGame,不复制)
  • 仅复制(运行时同步,不持久化)
  • 持久化加复制(带存档恢复的权威状态)

每个持久化模式必须包含:

  • 显式版本整数
  • 稳定标识符/键(避免基于索引的隐式排序)
  • 旧版本的迁移行为

每个复制字段必须定义:

  • 复制条件或范围
  • 客户端上的 OnRep_* 行为
  • 服务器写入所有权

使用方式

工作流分为六步:

  1. 划分状态:按所有权识别游戏状态(本地玩家、世界/共享、对局/会话),拆分临时运行时值与持久化值,标记每个字段的权威写入路径。
  2. 存档模式:定义带显式模式版本的存档结构体/对象,为 Actor、组件和类物品条目使用稳定键/ID,包含可选的向后兼容迁移元数据。
  3. 保存管线:以确定性顺序将运行时状态收集到存档模式,根据延迟敏感度选择同步或异步槽位 API,返回结构化保存结果(成功、失败原因、所用版本)。
  4. 加载与恢复管线:加载存档对象、校验版本、必要时执行迁移,按依赖安全顺序应用恢复(所有者先于依赖者),对缺失资源/实体使用显式回退策略。
  5. 复制管线:仅复制客户端可见的运行时状态,用 DOREPLIFETIME(...) 注册复制属性,用 OnRep_* 进行客户端重建/UI 刷新而非权威写入。
  6. RPC 权威管线:使用客户端到服务器的 RPC 请求动作,在服务器上校验载荷后再变更复制状态,仅在需要时通过复制/NetMulticast 广播结果状态。

适用场景

  • 设计 SaveGame 模式与序列化方案。
  • 实现存档保存、加载与状态恢复。
  • 规划多人游戏中的状态复制与权威写入。
  • 处理重连后复制值与存档值不一致的问题。
  • 排查加载成功但游戏状态不一致、旧存档更新后损坏、OnRep_* 频繁触发导致帧率尖峰、客户端触发未授权状态变更、异步保存/加载回调与游戏转换竞争、部分恢复留下孤立 Actor/组件等问题。

限制与约束

  • 服务器是复制游戏状态的唯一真相来源。
  • 应用状态变更前必须校验所有客户端请求的动作。
  • SaveGame 模式需可版本化,避免脆弱的隐式排序。
  • 不要在多人代码路径中假设单人行为。
  • 恢复过程尽可能保持幂等(部分失败后可安全重试)。
  • 避免持久化仅网络用的临时缓存。
  • 不要将客户端本地存档数据作为多人游戏的权威输入。
  • UE5.6-UE5.8 中上述 SaveGame 与复制 API 保持稳定;优先使用稳定的引擎运行时 API 而非项目特定的序列化捷径。
  • Iris 在 UE5.8 中已可用于生产,但不要假设现有 5.6/5.7 项目已迁移到 Iris;在给出系统特定指导前,先检测项目当前使用的复制系统。
  • 当变更破坏现有存档兼容策略,或复制设计影响反作弊/权威架构决策时,需要升级处理。