silo 0.1.0

多引擎融合框架 - 整合 Bevy、Godot 和 Unity 的跨引擎通信调度平台
Documentation
# 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 处理运行时逻辑。

## ⚙️ 编译配置

### 基础编译

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

### 启用 Godot 支持

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

### 启用 FFI 接口

```toml
[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` 中添加依赖:

```json
{
  "dependencies": {
    "silo": "file:../silo-unity"
  }
}
```

##  许可证

本项目采用 [LICENSE](LICENSE) 中定义的许可条款。

## 🤝 贡献

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

## 🔗 相关链接

- [Bevy Engine]https://bevyengine.org/
- [Godot Engine]https://godotengine.org/
- [Unity]https://unity.com/