什么是 Bevy?
Bevy 是一款用 Rust 构建的、令人耳目一新的简单数据驱动游戏引擎。它永远免费且开源!
警告
Bevy 仍处于开发的早期阶段。重要功能缺失。文档稀疏。包含对 API 进行破坏性更改的 Bevy 新版本大约每 3 个月发布一次](https://bevy.org/news/bevy-0-6/#the-train-release-schedule)。我们提供迁移指南](https://bevy.org/learn/migration-guides/),但我们无法保证迁移总是容易的。仅在你愿意在此环境中工作时使用。
MSRV: Bevy 严重依赖 Rust 语言和编译器的改进。 因此,最低支持 Rust 版本(MSRV)通常接近 Rust 的“最新稳定版本”。
设计目标
- 功能强大:提供完整的 2D 和 3D 功能集
- 简单:新手易于上手,但对高级用户具有无限灵活性
- 数据导向:使用实体组件系统(ECS)范式的数据导向架构
- 模块化:只使用你需要的。替换你不喜欢的
- 快速:应用逻辑应快速运行,并在可能时并行运行
- 高效:更改应快速编译……等待并不有趣
关于
文档
- 快速入门指南: Bevy 的官方快速入门指南。是学习 Bevy 的最佳起点。
- Bevy Rust API 文档: Bevy 的 Rust API 文档,由本仓库中的文档注释自动生成。
- 官方示例: Bevy 的专用可运行示例,非常适合深入探索特定概念。
- 社区制作的学习资源: 由 Bevy 社区制作的更多教程、文档和示例。
社区
在贡献代码或参与社区讨论之前,您应该熟悉我们的行为准则。
- Discord: Bevy 的官方 Discord 服务器。
- Reddit: Bevy 的官方 subreddit。
- GitHub 讨论区: 关于 Bevy 提问的最佳场所,答案就在这里!
- Bevy 资源: 一系列出色的 Bevy 项目、工具、插件和学习材料。
贡献
如果您想帮助构建 Bevy,请查看 贡献者指南。 对于简单的问题,请随时打开一个 issue 或 PR 并自行解决!
对于更复杂的架构决策和实验性的疯狂科学,请打开一个 GitHub 讨论区,以便我们有效地共同头脑风暴!
入门
我们建议查看 快速入门指南 以获取简要介绍。
请遵循 设置指南 以确保你的开发环境已正确配置。 配置完成后,你可以通过克隆此仓库并运行以下命令来快速试用 示例:
# Switch to the correct version (latest release, default is main development branch)
git checkout latest
# Runs the "breakout" example
cargo run --example breakout
要绘制一个启用标准功能的窗口,请使用:
use bevy::prelude::*;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.run();
}
快速编译
Bevy 在稳定版 Rust 上使用默认配置即可正常构建。然而,为了实现真正快速的迭代编译,你应该通过遵循此处说明来启用“快速编译”配置。
Bevy Cargo 特性
此列表概述了 Bevy 支持的不同 cargo 特性。这些特性允许你根据使用场景自定义 Bevy 的功能集。
致谢
Bevy 是许多人辛勤工作的成果。衷心感谢所有 Bevy 贡献者、我们之前的众多开源项目、Rust 游戏开发生态系统,以及我们构建所依赖的众多库。
衷心感谢 Bevy 的慷慨赞助者。Bevy 将始终免费且开源,但开发并非免费。如果你喜欢我们正在构建的内容,请考虑赞助我们的工作。
本项目使用 BrowserStack 进行测试。
许可证
Bevy 是免费、开源且采用宽松许可证的! 除特别说明外(如下文和/或单个文件中所述),本仓库中的所有代码均双重许可,可选择以下任一许可证:
- MIT 许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
- Apache 许可证,版本 2.0(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
由你选择。 这意味着你可以选择你偏好的许可证! 这种双重许可方式是 Rust 生态系统中的事实标准,并且包含两者都有非常充分的理由。
引擎的部分代码因其外部来源而附带额外的版权声明和许可条款。 这些通常类似于 BSD,但具体细节因 crate 而异: 如果某个 crate 的 README 中包含 'License' 标题(或类似内容),则适用于该 crate 的额外版权声明和许可条款将在此列出。 上述许可要求仍然适用于对这些 crate 的贡献,且这些 crate 的部分内容将附带这些许可条款。 每个 crate 的 license 字段也将反映这一点。
本仓库中包含的 assets(用于我们的 examples)通常遵循不同的开源许可。 这些内容不会包含在你的游戏中(除非你自行复制),也不会包含在发布的 bevy crate 中。 请参阅 CREDITS.md 以了解这些文件的许可详情。
你的贡献
除非你明确声明其他情况, 任何由你有意提交以纳入本作品的贡献, 如 Apache-2.0 许可中定义的那样, 将按上述方式双重许可, 不附加任何额外条款或条件。