bevyengine/bevy
GitHub: bevyengine/bevy
一款简洁高效的开源数据驱动游戏引擎,基于 Rust 和 ECS 架构,适用于 2D/3D 游戏与交互式应用开发。
Stars: 44874 | Forks: 4425
# [](https://bevy.org)
[](https://github.com/bevyengine/bevy#license)
[](https://crates.io/crates/bevy)
[](https://crates.io/crates/bevy)
[](https://docs.rs/bevy/latest/bevy/)
[](https://github.com/bevyengine/bevy/actions)
[](https://discord.gg/bevy)
## 什么是 Bevy?
Bevy 是一个令人耳目一新的简单数据驱动游戏引擎,使用 Rust 构建。它将永远免费且开源!
## 警告
Bevy 仍处于开发的早期阶段。重要功能尚缺失。文档稀缺。包含 API 破坏性变更的 Bevy 新版本大约每 3 个月发布一次。我们提供了迁移指南,但无法保证迁移总是轻而易举。仅当您愿意在此环境中工作时才使用。
**MSRV:** Bevy 非常依赖 Rust 语言和编译器的改进。
因此,最低支持的 Rust 版本 (MSRV) 通常接近 Rust 的“最新稳定版本”。
## 设计目标
* **能力强大**:提供完整的 2D 和 3D 功能集
* **简单**:新手易于上手,但对高级用户具有无限灵活性
* **数据为中心**:使用 Entity Component System 范式的面向数据架构
* **模块化**:只使用你需要的功能。替换你不喜欢的部分
* **快速**:应用逻辑应运行迅速,并尽可能并行执行
* **高效**:代码修改应编译迅速……等待并不有趣
## 关于
* **[功能](https://bevy.org):** Bevy 功能的快速概览。
* **[新闻](https://bevy.org/news/)**:涵盖我们的进度、计划和新功能的开发博客。
## 文档
* **[快速入门指南](https://bevy.org/learn/quick-start/introduction):** Bevy 的官方快速入门指南。开始学习 Bevy 的最佳起点。
* **[Bevy Rust API 文档](https://docs.rs/bevy):** Bevy 的 Rust API 文档,由本仓库中的文档注释自动生成。
* **[官方示例](https://github.com/bevyengine/bevy/tree/latest/examples):** Bevy 专用的、可运行的示例,非常适合深入研究特定概念。
* **[社区制作的学习资源](https://bevy.org/assets/#learning)**:更多由 Bevy 社区制作的教程、文档和示例。
## 入门指南
我们建议查阅 [快速入门指南](https://bevy.org/learn/quick-start/introduction) 以获取简要介绍。
请遵循 [设置指南](https://bevy.org/learn/quick-start/getting-started/setup) 以确保您的开发环境配置正确。
设置完成后,您可以通过克隆本仓库并运行以下命令来快速试用 [示例](https://github.com/bevyengine/bevy/tree/latest/examples):
```
# 切换到正确的版本(最新发布版,默认为 main 开发分支)
git checkout latest
# 运行 "breakout" 示例
cargo run --example breakout
```
要绘制一个启用了标准功能的窗口,请使用:
```
use bevy::prelude::*;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.run();
}
```
### 快速编译
使用稳定版 Rust 的默认配置可以很好地构建 Bevy。但是,为了实现真正快速的迭代编译,您应该通过[按照此处的说明操作](https://bevy.org/learn/quick-start/getting-started/setup)来启用“快速编译”设置。
## [Bevy Cargo Features][cargo_features]
此[列表][cargo_features]概述了 Bevy 支持的不同 Cargo features。它们允许您根据具体用例自定义 Bevy 的功能集。
## 许可证
Bevy 是免费、开源且许可宽松的!
除非另有说明(下文和/或各个文件中),本仓库中的所有代码均在以下任一许可证下双重许可:
* MIT License ([LICENSE-MIT](LICENSE-MIT) 或 [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT))
* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) 或 [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0))
由您选择。
这意味着您可以选择您偏好的许可证!
这种双重许可方法是 Rust 生态系统中的事实标准,并且有充分的理由同时包含两者。
引擎的某些代码由于其外部来源,带有额外的版权声明和许可条款。
这些通常类似于 BSD 许可证,但具体细节因 crate 而异:
如果 crate 的 README 包含“License”标题(或类似内容),将列出适用于该 crate 的额外版权声明和许可条款。
上述许可要求仍然适用于对这些 crate 的贡献,并且这些 crate 的部分内容将带有这些许可条款。
每个 crate 的 [license](https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields) 字段也将反映这一点。
本仓库中包含的 [assets](assets)(用于我们的 [示例](./examples/README.md))通常属于不同的开放许可。
这些不会包含在您的游戏中(除非由您复制进去),并且它们不在发布的 bevy crates 中分发。
有关这些文件的许可证详情,请参阅 [CREDITS.md](CREDITS.md)。
### 您的贡献
除非您明确声明,
否则由您有意提交以包含在作品中的任何贡献,
如 Apache-2.0 许可证中所定义,
应按上述方式双重许可,
无需任何附加条款或条件。
标签:2D游戏开发, 3D游戏开发, Bevy, Cargo, ECS架构, MIT协议, Rust, WebAssembly, 信息收集, 可视化界面, 实体组件系统, 实时渲染, 并行计算, 开源, 数据导向设计, 数据驱动, 模块化设计, 游戏开发框架, 游戏引擎, 编程库, 网络流量审计, 自动化修复, 通知系统, 通知系统