Skip to content

AstralSolipsism/AstrWorld

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

AstrWorld技术路线


1. 项目概述

1.1 项目目标

基于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提供富有生活气息的记忆上下文

1.2 核心技术挑战

  • 浏览器环境下的高性能计算与渲染
  • 海量实体的实时模拟与同步
  • 不稳定 Web 网络下的交互体验
  • 持久化世界的状态管理

2. 技术路线总览

层级 技术 用途
游戏引擎 Bevy(Rust) 核心模拟与游戏逻辑
客户端运行时 WebAssembly 浏览器中运行 Rust 代码
渲染 WebGPU 海量 Sprite 高效渲染
网络传输 WebTransport + WebSocket 多人状态同步与可靠消息
同步架构 权威服务器 持久化世界与状态仲裁
服务端 Rust 无头二进制 运行权威模拟

3. Bevy 引擎

3.1 优势

Rust 语言的内存与线程安全

Rust 的所有权模型在编译期杜绝数据竞争。这使得编写高度并行的模拟逻辑既安全又高效,无需担心传统多线程游戏常见的崩溃与死锁问题。

ECS 架构的数据导向设计

Bevy 原生采用 ECS(实体组件系统)架构,数据紧凑存储,CPU 缓存友好。系统天然可并行调度,是实现"数千单位实时模拟"的架构基础。

开源与完全可控

Bevy 完全开源,网络层、渲染管线、调度器均可根据项目需求深度定制,无黑盒限制。

原生 Wasm 支持

Rust 对 WebAssembly 的支持是所有语言中最成熟的。Bevy 可直接编译为 Wasm,生成的包体小、启动快。

3.2 用途

  • 客户端与服务端共享核心模拟代码
  • ECS 系统承载所有游戏逻辑
  • 并行调度处理海量实体更新

4. WebAssembly

4.1 优势

近原生执行速度

Wasm 提供接近本机的执行性能,使复杂模拟逻辑可在浏览器中高效运行。

64 位内存寻址

Memory64 标准(Wasm64)已在 2025-2026 年于 Chrome/Firefox 落地,突破传统 4GB 内存限制,可承载大型持久化世界的状态。

Rust 最佳编译目标

Rust 生态对 Wasm 的工具链支持最为成熟,与 Bevy 引擎天然适配。

4.2 用途

  • 将 Bevy 客户端编译为 Wasm 在浏览器运行
  • 所有游戏逻辑、状态处理、输入预测均运行在 Wasm 中
  • 与 JavaScript/Web API 通过 wasm-bindgen 交互

5. WebGPU

5.1 优势

GPU 实例化绘制

单次 Draw Call 可渲染数万个 Sprite,解决传统 WebGL 的 Draw Call 瓶颈。

Compute Shader 支持

部分计算可 offload 到 GPU(如粒子系统、视野计算),减轻 CPU 负担。

低 CPU 开销

现代图形 API 设计,减少 Wasm 与 GPU 之间的同步等待。

降级兼容

Bevy 的 wgpu 渲染后端天然支持 WebGPU/WebGL 自动切换,确保旧浏览器可用。

5.2 用途

  • 瓦片地图批量渲染
  • 海量单位 Sprite 高效绘制
  • 可选用于粒子系统、视野计算等 GPU 加速场景

6. WebTransport + WebSocket

6.1 WebTransport 优势

无队头阻塞

基于 QUIC 协议,丢包不影响后续数据包,延迟更稳定。

不可靠传输模式

过期的位置数据可直接丢弃,始终接收最新状态,适合高频实时同步。

6.2 WebSocket 优势

可靠有序

确保消息必达且顺序正确,适合关键操作。

广泛兼容

作为 WebTransport 不可用时的降级方案。

6.3 混合通道策略

通道 协议 数据类型
状态同步 WebTransport 单位位置、战斗事件(高频、允许丢弃)
可靠消息 WebSocket 聊天、建筑确认、交易(低频、必须到达)

6.4 用途

  • WebTransport 用于 20Hz 状态快照同步
  • WebSocket 用于用户聊天、建筑放置确认、交易请求
  • 自动降级确保所有浏览器可用

7. 权威服务器架构

7.1 优势

持久化世界支持

服务器独立于玩家存在,玩家离线后世界可继续运行或暂停,满足"登录查看同一实例"的需求。

反作弊

所有逻辑在服务端运行,客户端仅为"渲染终端",无法篡改游戏状态。

新玩家即时加入

只需发送当前状态快照,无需"追帧"重放历史。

避免浮点非确定性

服务端为唯一真相源,无需担心不同浏览器/CPU 架构的浮点差异。

7.2 带宽控制

技术 作用
快照插值 服务端 20Hz 发送,客户端在快照间插值平滑渲染
增量压缩 仅发送变化字段,减少数据量
相关性管理 地图分块,只同步玩家视野区域

7.3 用途

  • 服务端运行权威模拟,裁决所有游戏事件
  • 客户端接收状态快照,进行插值渲染
  • 客户端发送输入,本地预测后由服务端确认/修正

8. 核心逻辑重建方向

8.1 架构迁移

将传统 OOP 单线程架构迁移为 ECS 数据驱动架构:

  • 组件紧凑存储,缓存友好
  • 系统并行调度,充分利用多核
  • 客户端与服务端共享核心组件与系统定义

8.2 寻路逻辑重建

寻路系统将作为独立模块重点设计,针对"大规模单位移动"场景及跨地块寻址优化。

8.3 模拟系统重建

按 ECS 模式重构以下核心系统:

  • 需求系统(饥饿、睡眠、娱乐)
  • 心情系统
  • 社交关系
  • 工作分配
  • 事件系统

9.MOD转换适配机制

9.1 MOD转换适配机制

MOD转换适配机制将确保现有MOD能够无缝迁移到新架构中。我们将采用以下策略:

  • 组件映射:为每个MOD定义组件映射表,将传统OOP属性转换为ECS组件
  • 系统适配器:为MOD提供系统适配器层,将传统系统调用转换为ECS系统调用
  • 网络协议转换:确保MOD网络通信与新架构的WebTransport/WebSocket协议兼容
  • 兼容性测试:为每个MOD提供专用测试套件,确保在新架构下的正确运行

考虑优先支持高影响力MOD,并为开发者提供迁移工具和文档,以简化转换过程。

About

Rewrite RimWorld in Rust as an online, open-world, AI-native project to provide an interactive world environment for human-like AI agents. (Draft)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors