#游戏引擎 #图形 #游戏开发 #游戏 #引擎

bevy

一款令人耳目一新的简单数据驱动游戏引擎和应用程序框架

33个版本

0.14.1 2024年8月2日
0.14.0 2024年7月4日
0.14.0-rc.42024年6月27日
0.13.1 2024年3月18日
0.0.1 2020年1月18日

2游戏开发 中排名

Download history 15594/week @ 2024-05-04 14821/week @ 2024-05-11 14953/week @ 2024-05-18 15807/week @ 2024-05-25 16556/week @ 2024-06-01 12209/week @ 2024-06-08 15120/week @ 2024-06-15 14029/week @ 2024-06-22 13552/week @ 2024-06-29 16387/week @ 2024-07-06 18881/week @ 2024-07-13 20596/week @ 2024-07-20 22707/week @ 2024-07-27 19040/week @ 2024-08-03 26999/week @ 2024-08-10 18249/week @ 2024-08-17

每月 下载 90,068
1,133 工具箱中使用 (直接使用 1,099)

MIT/Apache

590KB
504

Bevy

License Crates.io Downloads Docs CI Discord

什么是Bevy?

Bevy是一个用Rust编写的简单数据驱动游戏引擎。它是免费和开源的!

警告

Bevy仍处于早期开发阶段。一些重要功能尚未实现。文档较为稀疏。大约每3个月发布一个包含API重大更改的Bevy新版本。我们提供了迁移指南,但我们无法保证迁移总是容易的。只有当你愿意在这个环境中工作的时候才使用。

MSRV: Bevy严重依赖于Rust语言和编译器的改进。因此,最小支持的Rust版本(MSRV)通常接近Rust的“最新稳定版本”。

设计目标

  • 强大:提供完整的2D和3D功能集
  • 简单:对于新手来说很容易上手,但对于高级用户来说具有无限的可扩展性
  • 数据导向:使用实体组件系统范式进行数据导向架构
  • 模块化:只使用你需要的东西。替换你不喜欢的东西
  • 快速:应用程序逻辑应该快速运行,并在可能的情况下并行运行
  • 高效:更改应该编译得快……等待并不是一件有趣的事情

关于

  • 功能: Bevy功能的快速概述。
  • 新闻: 一个开发博客,涵盖我们的进展、计划和新的亮点功能。

文档

  • 快速入门指南: Bevy的官方快速入门指南。学习Bevy的最佳起点。
  • Bevy Rust API文档: 从本存储库中的文档注释自动生成的Bevy的Rust API文档。
  • 官方示例: Bevy的专用、可运行的示例,非常适合深入研究特定概念。
  • 社区学习资源: 由Bevy社区制作的更多教程、文档和示例。

社区

在参与社区讨论或贡献之前,您应该熟悉我们的行为准则

  • Discord: Bevy的官方Discord服务器。
  • Reddit: Bevy的官方subreddit。
  • GitHub Discussions: 有关Bevy的问题,在这里找到最佳答案!
  • Bevy Assets: 一系列精彩的Bevy项目、工具、插件和学习资料。

贡献

如果您想帮助构建Bevy,请查看贡献指南。对于简单问题,您可以打开一个问题提交一个PR并自行解决!

对于更复杂的架构决策和实验性研究,请打开一个RFC(请求评论)以便我们共同头脑风暴!

入门指南

我们建议查看快速入门指南以获取简要介绍。

遵循设置指南以确保您的开发环境正确设置。一旦设置完毕,您可以通过克隆此仓库并运行以下命令来快速尝试示例

# 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();
}

快速编译

在稳定的Rust上使用默认配置即可正常构建Bevy。但是,为了实现真正快速的迭代编译,您应该通过遵循此处说明来启用“快速编译”设置。

Bevy Cargo功能

列表概述了Bevy支持的不同Cargo功能。这些功能允许您根据您的用例自定义Bevy功能集。

感谢

Bevy是许多人辛勤工作的成果。向所有Bevy贡献者、在我们之前出现的众多开源项目、Rust游戏开发生态系统以及我们构建的众多库表示衷心的感谢。

感谢Bevy慷慨的赞助商。Bevy将始终免费和开源,但其制作并非免费。如果您喜欢我们所做的事情,请考虑赞助我们的工作

本项目与BrowserStack进行了测试。

许可协议

Bevy是免费、开源且许可宽松的!除非另有说明(以下及/或个别文件中),本存储库中的所有代码均根据您的选择在以下两个许可协议下双许可

这意味着您可以选择您喜欢的许可协议!这种双许可方法在Rust生态系统中是事实标准,而且包含两个的原因有很多

由于外部来源,发动机的一些代码包含额外的版权声明和许可条款。这些通常是BSD类似的,但具体细节因组件而异:如果一个组件的README包含一个'License'标题(或类似),则适用于该组件的额外版权声明和许可条款将被列出。上述许可要求仍然适用于这些组件的贡献,以及这些组件的部分将包含这些许可条款。每个组件的许可字段也将反映这一点。例如,bevy_mikktspace的代码在Zlib许可下(以及选择MIT许可时的版权声明)。

包含在此存储库中的资源(用于我们的示例)通常属于不同的开源许可。这些资源将不会包含在你的游戏中(除非你复制),并且它们不会在发布的bevy组件中分发。请参阅CREDITS.md以获取这些文件许可的详细信息。

你的贡献

除非你明确声明,否则根据Apache-2.0许可定义,你故意提交以包含在作品中并由你提交的任何贡献,应以上述方式双重许可,不附加任何额外的条款或条件。

依赖项

~17–66MB
~1M SLoC