基于RimWorld的Rust重写与改造(使用Bevy引擎),构建一个可持续运行的世界模拟服务端,为拟人类型AI AGENT提供一个可交互世界背景环境:
- 多玩家可通过浏览器登录同一实例,管理自己的AI AGENT接入指定PAWN,查看自己PWAN感知范围的动态
- 深度集成AI Agent,以一个AI AGENT接管一个PAWN为目标设计,同时大量无AI AGENT接管的PAWN按原本逻辑行动、演化构成世界模拟
- 基于人格结构理论的PAWN人格分层模拟,游戏内置逻辑即时运算模拟“本我”,AI AGENT主要接管PAWN长期思维,制定行动计划方案,负责“自我”的模拟,用户介入手动干预负责“超我”的实现,各层实际到位缺失时可退让替代
- AI AGENT接管的PAWN同时承担玩家的管理规划职责
- 持久化世界,无论有无玩家、有无BOT接入,世界持续演化
- 突破单块地图限制,重构地图生成与加载机制,尝试实现世界无缝加载
- 重写寻路机制,支持跨区无缝寻路,优化群体寻路性能,模拟个体感知限制
- 支持数千单位在同一地图上实时互动
- 深度模拟PAWN的健康、心情、需求、社交、文化等系统,给AI AGENT提供富有生活气息的记忆上下文
- 浏览器环境下的高性能计算与渲染
- 海量实体的实时模拟与同步
- 不稳定 Web 网络下的交互体验
- 持久化世界的状态管理
| 层级 | 技术 | 用途 |
|---|---|---|
| 游戏引擎 | Bevy(Rust) | 核心模拟与游戏逻辑 |
| 客户端运行时 | WebAssembly | 浏览器中运行 Rust 代码 |
| 渲染 | WebGPU | 海量 Sprite 高效渲染 |
| 网络传输 | WebTransport + WebSocket | 多人状态同步与可靠消息 |
| 同步架构 | 权威服务器 | 持久化世界与状态仲裁 |
| 服务端 | Rust 无头二进制 | 运行权威模拟 |
Rust 语言的内存与线程安全
Rust 的所有权模型在编译期杜绝数据竞争。这使得编写高度并行的模拟逻辑既安全又高效,无需担心传统多线程游戏常见的崩溃与死锁问题。
ECS 架构的数据导向设计
Bevy 原生采用 ECS(实体组件系统)架构,数据紧凑存储,CPU 缓存友好。系统天然可并行调度,是实现"数千单位实时模拟"的架构基础。
开源与完全可控
Bevy 完全开源,网络层、渲染管线、调度器均可根据项目需求深度定制,无黑盒限制。
原生 Wasm 支持
Rust 对 WebAssembly 的支持是所有语言中最成熟的。Bevy 可直接编译为 Wasm,生成的包体小、启动快。
- 客户端与服务端共享核心模拟代码
- ECS 系统承载所有游戏逻辑
- 并行调度处理海量实体更新
近原生执行速度
Wasm 提供接近本机的执行性能,使复杂模拟逻辑可在浏览器中高效运行。
64 位内存寻址
Memory64 标准(Wasm64)已在 2025-2026 年于 Chrome/Firefox 落地,突破传统 4GB 内存限制,可承载大型持久化世界的状态。
Rust 最佳编译目标
Rust 生态对 Wasm 的工具链支持最为成熟,与 Bevy 引擎天然适配。
- 将 Bevy 客户端编译为 Wasm 在浏览器运行
- 所有游戏逻辑、状态处理、输入预测均运行在 Wasm 中
- 与 JavaScript/Web API 通过 wasm-bindgen 交互
GPU 实例化绘制
单次 Draw Call 可渲染数万个 Sprite,解决传统 WebGL 的 Draw Call 瓶颈。
Compute Shader 支持
部分计算可 offload 到 GPU(如粒子系统、视野计算),减轻 CPU 负担。
低 CPU 开销
现代图形 API 设计,减少 Wasm 与 GPU 之间的同步等待。
降级兼容
Bevy 的 wgpu 渲染后端天然支持 WebGPU/WebGL 自动切换,确保旧浏览器可用。
- 瓦片地图批量渲染
- 海量单位 Sprite 高效绘制
- 可选用于粒子系统、视野计算等 GPU 加速场景
无队头阻塞
基于 QUIC 协议,丢包不影响后续数据包,延迟更稳定。
不可靠传输模式
过期的位置数据可直接丢弃,始终接收最新状态,适合高频实时同步。
可靠有序
确保消息必达且顺序正确,适合关键操作。
广泛兼容
作为 WebTransport 不可用时的降级方案。
| 通道 | 协议 | 数据类型 |
|---|---|---|
| 状态同步 | WebTransport | 单位位置、战斗事件(高频、允许丢弃) |
| 可靠消息 | WebSocket | 聊天、建筑确认、交易(低频、必须到达) |
- WebTransport 用于 20Hz 状态快照同步
- WebSocket 用于用户聊天、建筑放置确认、交易请求
- 自动降级确保所有浏览器可用
持久化世界支持
服务器独立于玩家存在,玩家离线后世界可继续运行或暂停,满足"登录查看同一实例"的需求。
反作弊
所有逻辑在服务端运行,客户端仅为"渲染终端",无法篡改游戏状态。
新玩家即时加入
只需发送当前状态快照,无需"追帧"重放历史。
避免浮点非确定性
服务端为唯一真相源,无需担心不同浏览器/CPU 架构的浮点差异。
| 技术 | 作用 |
|---|---|
| 快照插值 | 服务端 20Hz 发送,客户端在快照间插值平滑渲染 |
| 增量压缩 | 仅发送变化字段,减少数据量 |
| 相关性管理 | 地图分块,只同步玩家视野区域 |
- 服务端运行权威模拟,裁决所有游戏事件
- 客户端接收状态快照,进行插值渲染
- 客户端发送输入,本地预测后由服务端确认/修正
将传统 OOP 单线程架构迁移为 ECS 数据驱动架构:
- 组件紧凑存储,缓存友好
- 系统并行调度,充分利用多核
- 客户端与服务端共享核心组件与系统定义
寻路系统将作为独立模块重点设计,针对"大规模单位移动"场景及跨地块寻址优化。
按 ECS 模式重构以下核心系统:
- 需求系统(饥饿、睡眠、娱乐)
- 心情系统
- 社交关系
- 工作分配
- 事件系统
MOD转换适配机制将确保现有MOD能够无缝迁移到新架构中。我们将采用以下策略:
- 组件映射:为每个MOD定义组件映射表,将传统OOP属性转换为ECS组件
- 系统适配器:为MOD提供系统适配器层,将传统系统调用转换为ECS系统调用
- 网络协议转换:确保MOD网络通信与新架构的WebTransport/WebSocket协议兼容
- 兼容性测试:为每个MOD提供专用测试套件,确保在新架构下的正确运行
考虑优先支持高影响力MOD,并为开发者提供迁移工具和文档,以简化转换过程。