Bevy 游戏引擎
Bevy 是一个用 Rust 编写的开源数据驱动游戏引擎,基于 ECS 架构,提供完整的 2D/3D 渲染、音频、UI、动画等能力,主打简洁、模块化与高性能并行。
爱鲜报评分
0 人评分
49k
星数
否
中文
Rust
主语言
是
活跃
1680
贡献者
人工分析
EDITORIAL推荐理由
Bevy 是 Rust 生态中最活跃的游戏引擎之一,近 5 万 Star 且社区迭代极快,采用 ECS 数据驱动架构,天然适合需要高并行与可组合性的项目。它模块化程度高,可以只取所需插件,也能替换不喜欢的部分。对于想用 Rust 做游戏、图形或实时仿真的开发者,是绕不开的选项。
适用场景
- 2D/3D 游戏开发
- 实时图形与可视化
- Rust 学习与图形编程实践
- 仿真与交互式应用原型
- 跨平台桌面游戏
优点
- ECS 数据驱动架构,逻辑与数据解耦,便于并行
- 模块化插件系统,可按需裁剪与替换
- 2D/3D 功能完整,渲染、音频、UI、动画一体化
- Rust 生态活跃,社区与示例资源丰富
- MIT/Apache-2.0 双许可,商用友好
缺点
- 仍处于早期阶段,API 约每 3 个月有破坏性变更
- 文档相对稀疏,部分功能缺失
- MSRV 紧跟 Rust 最新稳定版,对工具链版本敏感
- 默认编译较慢,需配置 fast compiles
- 中文资料较少,主要依赖英文社区
Bevy 是什么
Bevy 是一个用 Rust 编写的开源、数据驱动的游戏引擎,目标是让游戏开发既简单又灵活。它完全免费、永久开源,采用 MIT/Apache-2.0 双许可。
注意:Bevy 仍处于早期开发阶段,重要功能尚在补齐,文档相对稀疏,且大约每 3 个月会发布一次包含破坏性 API 变更的新版本。官方提供迁移指南,但不保证迁移总是轻松。
设计目标
- 能力完整:提供完整的 2D 与 3D 功能集
- 简单易用:新手容易上手,同时为高级用户保留无限扩展空间
- 数据驱动:基于实体组件系统(ECS)的数据导向架构
- 模块化:只使用你需要的部分,替换你不喜欢的部分
- 高性能:应用逻辑尽可能并行执行
- 高生产力:编译速度要快,等待并不有趣
核心特性
Bevy 采用 ECS 范式组织游戏逻辑,实体(Entity)、组件(Component)与系统(System)分离,天然适合并行调度。引擎以插件(Plugin)为组织单位,渲染、音频、UI、动画、输入等均可按需启用或替换。
快速上手
官方推荐先阅读 Quick Start Guide,再按 Setup 指南配置开发环境。克隆仓库后可直接运行示例:
# 切换到最新发布版本(默认是 main 开发分支)
git checkout latest
# 运行 breakout 示例
cargo run --example breakout
创建一个带标准功能窗口的最小应用:
use bevy::prelude::*;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.run();
}
文档与社区
- Quick Start Guide:官方入门指南,学习 Bevy 的最佳起点
- Rust API Docs:由仓库内文档注释自动生成
- 官方示例:可直接运行的示例集合,适合深入具体概念
- 社区学习资源:社区制作的教程、文档与示例
社区渠道包括 Discord、Reddit、GitHub Discussions 以及 Bevy Assets 资源站。
编译与版本
Bevy 在稳定版 Rust 上使用默认配置即可构建。若追求快速迭代编译,建议按官方说明启用 fast compiles 配置。由于 Bevy 高度依赖 Rust 语言与编译器的改进,其 MSRV 通常接近 Rust 最新稳定版。
许可
除个别文件外,仓库代码采用 MIT 与 Apache-2.0 双许可,可任选其一。示例所用素材通常遵循不同的开源许可,详见 CREDITS.md。
评论
- 暂无评论,来写第一条吧。