posts

在线联机原型全集第 46 章导航:动态剧情世界与 Entity Graph 时间触发器

第 46 章「动态剧情世界(Dynamic Story World)」属于第 5 层概念原型,是全集从「对局内玩法」跨向「世界演化」的第一篇。本页给出该章的定位、核心验证目标、技术栈建议与文章入口,并串联第 45 章动态任务链生成引擎与第 47 章多语言实时语音协作,帮助读者在 60 个原型的路线图中快速定位「世界状态图 + 时间触发器」这一能力簇。

本章是《在线联机原型全集》里第一个不再围绕「一局比赛」组织内容的原型。它要回答的问题是:当世界本身会随时间推进、由实体之间的关系共同决定剧情走向时,服务端应该怎样存储、推进和回放这个世界?如果你已经做完了前 45 章的对局、匹配、经济与社交原型,本章就是把这些「离散系统」缝合成一张持续运转的世界状态图的起点。

本章定位

核心验证目标

本章 PRD 明确要求验证 Entity Graph 与时间触发器,落地时建议拆成下面 5 个可独立验收的点:

  1. Entity Graph 建模:把 NPC、地点、道具、阵营建模为节点,把「信任 / 敌对 / 归属 / 因果」建模为带类型的边,并支持按关系查询与局部子图加载。
  2. 时间触发器:支持绝对时间、相对时间(事件后 N 秒)与条件时间(当某条件成立)三类触发,且触发结果幂等、可重放。
  3. 服务端权威状态同步:世界状态变更只由服务端计算,客户端做预测渲染,避免客户端篡改剧情走向。
  4. 事件溯源与回放:世界推进以事件日志为准,可从任意快照 + 事件流重建当前世界,用于调试与回放。
  5. 断线恢复:网络抖动后客户端自动重连,并从服务端拉取增量状态而非全量快照。

技术栈建议

PRD 给出的基线是 Go / Rust / Python 三选一,网络层用 WebSocket over HTTPS 或 gRPC,并配套事件总线(Pub/Sub)与持久化层。落地时的选型思路:

层建议说明
实时网关Go 或 Rust长连接管理、心跳、消息路由,要求低 GC 抖动
世界演化服务Go / Python图遍历与规则计算;原型期可用 Python 快速迭代
状态与图存储图数据库或关系库 + 邻接表实体关系查询频繁时优先考虑图结构
事件总线Redis Streams / NATS 一类 Pub/Sub解耦演化服务与广播、持久化
持久化快照 + 事件日志支撑回放与状态恢复

本章文章

文章类型核心内容
在线联机原型全集:第 46 章 动态剧情世界(Dynamic Story World)世界演化型以 Entity Graph 建模世界实体与关系,用时间触发器驱动剧情推进

该 PRD 属于「概念设计阶段」文档,正文侧重架构设计、技术选型与接口定义,包含系统组成图、状态机、事件生命周期时序图、WebSocket 消息类型、REST 端点与性能指标表,可直接作为立项评审材料使用。

与相邻章节的关系

相关专题

全部文章 Game Golang Saas Rust 游戏开发 客户端开发 GameDev Products Lua 写作