Silo - 多引擎融合框架
Silo 是一个创新的跨游戏引擎融合框架,整合了 Bevy、Godot 和 Unity 三大引擎的核心能力,实现 ECS 逻辑、渲染能力和网络同步的统一调度与通信。
🎯 核心特性
引擎能力融合
-
Bevy ECS - 利用 Bevy 强大的实体组件系统(ECS)处理游戏逻辑
- 网络同步能力
- 事件驱动架构
- 数据驱动的组件系统
-
Godot/Unity - 利用成熟的渲染引擎能力
- 高质量图形渲染
- 物理引擎
- 动画系统
- 成熟的编辑器生态
核心能力
- 跨引擎通信 - 实现 Bevy、Godot、Unity 之间的无缝消息传递
- 事件同步 - 统一的事件系统,支持跨引擎事件触发与监听
- 对象管理 - 跨引擎的对象创建、更新、销毁同步
- 视图层抽象 - 统一的 UI/视图系统,支持多引擎渲染后端
🏗️ 架构设计
┌─────────────────────────────────────────────────────────┐
│ Silo Framework │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │
│ │ Bevy │◄──►│ Godot │◄──►│ Unity │ │
│ │ ECS │ │ Rendering │ │ Rendering │ │
│ │ Logic │ │ Godot │ │ C# │ │
│ └──────────────┘ └──────────────┘ └───────────┘ │
│ │ │ │ │
│ └───────────────────┼──────────────────┘ │
│ │ │
│ ┌────────────▼────────────┐ │
│ │ Silo Core Layer │ │
│ │ - Event System │ │
│ │ - Message Bus │ │
│ │ - Object Sync │ │
│ │ - View Abstraction │ │
│ └─────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────┘
📦 项目结构
silo/
├── src/
│ ├── lib.rs # 库入口
│ ├── base.rs # 基础类型和消息定义
│ ├── app.rs # 应用层 API
│ ├── bevy.rs # Bevy ECS 集成
│ ├── ffi.rs # FFI 接口
│ ├── view.rs # 视图层抽象
│ └── godot/ # Godot 集成模块
│ ├── mod.rs
│ ├── nodes.rs
│ ├── reg.rs
│ ├── view.rs
│ └── ext.rs
├── silo-unity/ # Unity 集成包
│ ├── package.json
│ └── *.dll # Unity 依赖库
├── Cargo.toml # Rust 依赖配置
└── LICENSE
🔧 技术特性
基于 CBOR 序列化的跨引擎消息传递,支持:
- 事件类型
Spawn- 对象创建Change- 状态变更Despawn- 对象销毁Invoke- 方法调用
🚀 使用场景
1. 网络同步游戏
利用 Bevy 的网络同步生态(如 Leafwing、Bevy Netcode)处理游戏逻辑同步,Godot/Unity 负责渲染表现。
2. 多端渲染
同一套 ECS 逻辑,可以在不同平台使用不同的渲染引擎(Godot 用于桌面端,Unity 用于移动端等)。
3. 渐进式迁移
在从 Unity/Godot 迁移到 Bevy 的过程中,可以逐步替换各个模块,保持系统稳定运行。
4. 编辑器工具链
利用 Unity/Godot 成熟的编辑器生态进行关卡设计和资源管理,Bevy 处理运行时逻辑。
⚙️ 编译配置
基础编译
[]
= { = "0.1.0" }
启用 Godot 支持
[]
= { = "0.1.0", = ["godot"] }
启用 FFI 接口
[]
= { = "0.1.0", = ["ffi"] }
📋 依赖项
- Bevy ECS (0.18.1) - 实体组件系统
- Bevy App (0.18.1) - 应用框架
- Bevy Time (0.18.1) - 时间系统
- Bevy Log (0.18.1) - 日志系统
- Godot (0.5.0, optional) - Godot 引擎绑定
- Tokio (1.50.0) - 异步运行时
- Serde (1.0.228) - 序列化框架
- CBOR - 二进制序列化
🔌 Unity 集成
在 Unity 项目中使用 Silo:
- 将
silo-unity/目录复制到 Unity 项目的Packages/目录 - 在
manifest.json中添加依赖:
许可证
本项目采用 LICENSE 中定义的许可条款。
🤝 贡献
欢迎贡献代码、报告问题或提出功能建议!