silo 0.1.0

多引擎融合框架 - 整合 Bevy、Godot 和 Unity 的跨引擎通信调度平台
Documentation

Silo - 多引擎融合框架

Silo 是一个创新的跨游戏引擎融合框架,整合了 BevyGodotUnity 三大引擎的核心能力,实现 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 处理运行时逻辑。

⚙️ 编译配置

基础编译

[dependencies]
silo = { version = "0.1.0" }

启用 Godot 支持

[dependencies]
silo = { version = "0.1.0", features = ["godot"] }

启用 FFI 接口

[dependencies]
silo = { version = "0.1.0", features = ["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:

  1. silo-unity/ 目录复制到 Unity 项目的 Packages/ 目录
  2. manifest.json 中添加依赖:
{
  "dependencies": {
    "silo": "file:../silo-unity"
  }
}

许可证

本项目采用 LICENSE 中定义的许可条款。

🤝 贡献

欢迎贡献代码、报告问题或提出功能建议!

🔗 相关链接