Bevy是什么?
Bevy是一个令人耳目一新的简单数据驱动游戏引擎,使用Rust语言构建。它永远免费并开源!
警告
Bevy仍处于早期开发阶段。重要功能尚未完善。文档稀少。包含API重大更改的新版本Bevy大约每3个月发布一次。我们提供迁移指南,但无法保证迁移总是容易的。只有愿意在这种环境下工作的人才应使用。
最低支持的Rust版本(MSRV): Bevy严重依赖Rust语言和编译器的改进。因此,最低支持的Rust版本(MSRV)通常接近Rust的"最新稳定版本"。
设计目标
- 功能强大:提供完整的2D和3D功能集
- 简单:新手容易上手,但对高级用户来说灵活性无限
- 数据聚焦:使用实体组件系统范式的面向数据架构
- 模块化:只使用你需要的,替换你不喜欢的
- 快速:应用逻辑应该快速运行,并在可能的情况下并行执行
- 高效:更改应该快速编译...等待并不有趣
关于
文档
- 快速入门指南: Bevy的官方快速入门指南。开始学习Bevy的最佳地方。
- Bevy Rust API文档: Bevy的Rust API文档,自动从此仓库的文档注释生成。
- 官方示例: Bevy的专用可运行示例,非常适合深入研究特定概念。
- 社区制作的学习资源: 更多由Bevy社区制作的教程、文档和示例。
社区
在贡献或参与社区讨论之前,你应该熟悉我们的行为准则。
- Discord: Bevy的官方discord服务器。
- Reddit: Bevy的官方subreddit。
- GitHub讨论: 关于Bevy问题的最佳地点,就在这里得到解答!
- Bevy资源: 一个令人惊叹的Bevy项目、工具、插件和学习材料的集合。
贡献
如果你想帮助构建Bevy,请查看贡献者指南。 对于简单的问题,请随时提出问题或PR并自己解决!
对于更复杂的架构决策和实验性疯狂科学,请提出RFC(征求意见稿),这样我们就可以一起有效地集思广益!
入门
我们建议查看快速入门指南以获得简要介绍。
按照设置指南确保你的开发环境设置正确。 设置完成后,你可以通过克隆此仓库并运行以下命令快速尝试示例:
# 切换到正确的版本(最新发布版本,默认为主开发分支)
git checkout latest
# 运行"breakout"示例
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字段也会反映这一点。
例如,bevy_mikktspace
有Zlib许可证下的代码(以及选择MIT许可证时的版权声明)。
此仓库中包含的资产(用于我们的示例)通常属于不同的开放许可证。 这些不会包含在你的游戏中(除非你自己复制),也不会在发布的bevy crates中分发。 有关这些文件的许可详细信息,请参见CREDITS.md。
你的贡献
除非你明确声明, 否则你有意提交以包含在作品中的任何贡献, 根据Apache-2.0许可证的定义, 均应按上述方式双重许可, 无任何额外条款或条件。