Bevy 两周年生日

发布于 2022 年 8 月 10 日,作者 Carter Anderson ( 一只带有猫耳的挥舞着触手的剪影,或 Octocat:GitHub 的吉祥物和标志 @cart 一只灰色的鸟飞行的矢量图;X(原 Twitter)的旧标志 @cart_cart 一个指向右边的三角形,在一个圆角矩形中;Youtube 的标志 cartdev )

An image representing the article

@cart 在此(Bevy 的创建者、首席开发人员和项目经理)带来了另一个令人兴奋的公告

自 Bevy 首次发布以来,现在已经两年了!正如(现在)传统,我将借此机会回顾过去一年并概述我们对未来的计划。如果你好奇,可以查看去年的生日帖子

对于那些不知道的人来说,Bevy 是一个用 Rust 构建的,令人耳目一新地简单的数据驱动游戏引擎。Bevy 也永远免费且开源!你可以在 GitHub 上获取完整的源代码。我们有一个快速入门指南。你也可以查看Bevy 资产,这是一个社区开发的插件、板条箱、游戏和学习资源库。

一年来的里程碑 #

milestones

  • 1 月 1 日:Alice Cecile(@alice-i-cecile)获得了文档工作合并权限。
  • 1 月 8 日Bevy 0.6
    • 我们添加了一个全新的现代渲染器,它更漂亮、更快、更易于扩展,方向光和点光阴影,集群前向渲染,视锥体剔除,显着更快的精灵渲染,更少的样板代码,原生 WebGL2 支持,高级自定义材质,更强大的着色器:预处理器、导入、WGSL 支持,Bevy ECS 人体工程学和性能改进,不再有 .system(),等等!
  • 1 月 8 日:列车发布模型
    • Bevy 采用了一个粗略的“3 个月列车发布模型”。我们不再为特定功能而推迟发布。大约每 3 个月,我们就开始发布过程。
  • 2 月 24 日第一个 Bevy 游戏在 Steam 上发布:Molecoole
  • 2 月 25 日Bevy Jam #1
    • 第一个官方 Bevy Jam!431 人加入,74 人提交了游戏,人们留下了 1,618 个评分。 Petty Party 获胜!
  • 4 月 10 日(大约) Bevy 在 GitHub 上获得了 15,000 个星标!
  • 4 月 15 日Bevy 0.7
    • 我们添加了骨骼动画和网格蒙皮,GLTF 动画导入,场景中无限*点光源,改进的集群前向渲染,压缩纹理支持(KTX2 / DDS / .basis),计算着色器/管道专业化,纹理渲染,着色器中灵活的网格顶点布局,ECS 改进:使用其名称对系统排序,Query::many_mut,ParamSets,WorldQuery 派生,文档改进:更好的示例,更多文档测试和更多覆盖率,更多音频控制:暂停、音量、速度和循环,功耗选项,等等!
  • 4 月 21 日新的项目角色:维护者
    • “维护者”角色取代了我们以前的“委托合并权限”角色,提供了更多决策权,取消了明确的范围/区域限制,同时仍然保留了我能够在必要时确保一致的项目方向的能力。
    • 所有拥有“委托/范围合并权限”的人现在都是“维护者”(@alice-i-cecile, @mockersf)。
  • 4 月 21 日:Rob Swain(@superdump)被任命为维护者。
  • 6 月 10 日(大约):Bevy 成为 GitHub 上第三大最受欢迎的游戏引擎
  • 6 月 18 日第一个 Bevy iOS 应用程序发布到 Apple App Store:Noumenal
  • 7 月 30 日Bevy 0.8
    • 我们添加了一个新的材质系统/更简单的自定义着色器/AsBindGroup 派生,相机驱动渲染(简单的分屏、传送门、纹理渲染、渲染器分层等),内置着色器模块化(可导入的内置着色器类型和函数,自定义着色器现在可以导入 PBR 着色器逻辑),聚光灯,可见性继承,自动网格切线生成,渲染器优化:并行视锥体剔除和不稳定排序,用于未批处理的渲染阶段,场景捆绑,通过非类型化 ECS API 进行脚本/modding 进度,ECS 查询人体工程学和可用性,ECS 内部重构/清理,反射改进:支持反射更多类型,ECS 资源反射,非类型化反射,改进的反射内部结构,事务性层次结构命令,taffy 布局,等等!
  • 8 月 10 日:Bevy 现在两岁了!

一年数据 #

numbers

  • 470 位在 GitHub 上的 Bevy 贡献者(从 255 位增加)
  • 17,830 GitHub 星标(从 10,030 个增加)
  • 1,693 个在 GitHub 上的分支(从 837 个增加)
  • 3,610 个拉取请求(2354 个已合并)在 GitHub 上(从 1,501 个 prs 和 1060 个已合并的增加)
  • 2,228 个问题(1,303 个已关闭)在 GitHub 上(从 1,112 个增加)
  • 3,629 个提交在 GitHub 上(从 1,895 个增加)
  • 470GitHub 讨论(从 153 个增加)
  • 191Bevy 资产(插件、板条箱、游戏、应用程序和学习材料)(从 110 个增加)
  • 206,328 次在 crates.io 上的下载(从 57,349 次增加)
  • 382 次在 Twitter 上@BevyEngine 转发 Bevy 社区内容(从 93 次增加)
  • 9,686Bevy Discord 成员(从 4,871 个增加)
  • 1,789 个社区 #showcase 条目在 Bevy Discord 中(从 771 个增加)
  • 968,290 条消息在 Bevy Discord 中(从 420,250 条增加)

请注意,为了保持一致性和清晰度,所有这些数字都以“绝对总数”给出,因为它们通常以这种方式报告。例如,我们现在总共有 17,830 个 GitHub 星标……你将在我们的仓库中看到的数字。我还包含了去年报告的总数,这可以用来计算自去年以来这些数字的变化。

我感到自豪的事情 #

proud

我会尽量避免在这里重复自己,但请注意,我仍然非常自豪于去年回顾中概述的事情

新的 Bevy 渲染器 #

去年,我们对 Bevy 的渲染器进行了大量投资。在年初,我们从头开始构建了一个新的渲染器。从这个基础开始,我们不断迭代,并取得了成功。Bevy 的渲染器现在

  1. 更快:视锥体剔除、集群前向渲染、精灵批处理、更多“内部”并行性、每个实体的渲染成本更低、并行流水线(即将启用……我将在后面介绍)
  2. 更易于理解:更清晰的抽象层和数据流(低级:原始 wgpu,中级:渲染图、提取/准备/队列、管道缓存、ShaderType,高级:材质、网格)
  3. 更易于扩展:新的高级材质系统,用于简单的自定义着色器、相机驱动渲染/每个相机的渲染图、灵活的网格顶点布局、着色器导入、模块化/可扩展的着色器逻辑(例如我们的 PBR 逻辑),通过 ShaderType 改善 Rust->GPU 数据流
  4. 功能更丰富:更多灯光选项(点光/方向光/聚光灯/球形光)、阴影、着色器导入和预处理、计算着色器、骨骼动画、相机驱动渲染(纹理渲染、分屏、传送门等)、无限*点光源、压缩 GPU 纹理、可见性继承、网格切线生成、更好的管道专业化等

我们投入了大量精力来使渲染器模块化和可扩展。再加上更清晰/更原则性的架构,导致渲染器功能开发大幅增加,无论是上游还是在更广泛的生态系统中。社区项目,如bevy_hikariChris Biscardi 在 YouTube 上的 Bevy 着色器视频,以及Bevy Discord 上的#showcase 频道 中越来越漂亮的内容,都让人感觉我们走在了正确的道路上。与以前的渲染器(包括我们的核心贡献者)相比,人们更愿意也更有能力编写 Bevy 渲染器代码。

仍然有很多工作要做,但我认为我们已经打下了大部分基础。现在我们可以专注于功能、性能和改进用户体验。

委托和项目扩展 #

去年,我在扩展项目方面遇到了很多困难,以应对快速增长的社区,管理倦怠,保持控制等。

我很高兴地说,虽然我们还没有解决这个问题,但我们现在的情况比以前好多了!我们定义了一个新的“维护者”角色,并找到了有能力的人来担任这个角色(@mockersf、@alice-i-cecile、@superdump)。维护者有更多自由来合并代码和做出决定,但我们也定义了一个“有争议的更改”流程,允许我在必要时决定项目方向(例如:确保一致的愿景、解决争议、质量控制等)。

Alice Cecile(@alice-i-cecile)一直在全职工作,并出色地处理了问题,及时合并了无争议的 PR,接管了文档等领域,参与了 ECS 工作,并将贡献者的精力引导到正确的方向。这极大地减轻了我的负担,使我能够将精力集中在最需要的地方(做出核心架构决策并构建核心功能、审查有争议的/技术更改、管理项目等)。他们最近在 Rust Conf 上发表了关于项目管理的精彩演讲

François Mockers(@mockersf)已经证明自己是一个技术精湛的多面手,他专注于使我们的 CI 达到顶峰,在其他人意识到问题之前修复了关键问题,并承担了有时(令人遗憾地)不太引人注目但价值很高的工作。除此之外,他在引擎的几乎所有支柱上都展示了技能和兴趣。

Rob Swain (@superdump)(我们最新的维护者)设计并实现了漂亮渲染器功能(灯光、阴影、集群正向渲染等)的很大一部分,并且已明确确立自己在该领域的技术领导地位。如果没有他的奉献和专业知识,Bevy 的渲染器不会是今天的样子。

一个蓬勃发展的生态系统 #

作为一款年轻的引擎,Bevy 仍然存在一些功能差距。但由于我们专注于模块化,许多这些差距已经由社区填补!

这很棒,因为 Bevy 应用程序开发者在这些领域不受阻碍。社区可以对想法进行实验和迭代。而我们(作为 Bevy 引擎开发者)则可以观察这些领域,了解哪些模式有效,并最终在时机成熟时采用或迭代它们。

特别是,以下 Bevy 插件尤其受欢迎和有用

  • 物理bevy_rapier(由 Rapier 开发人员维护的官方 Rapier 插件)是您在 Bevy 应用程序中需要物理时最好的选择。我们很可能在今年将某种形式的 Rapier 集成上移。
  • UI:Bevy UI 仍处于开发的早期阶段。它对于基本的界面(如血条/HUD/等)很有用,但它还没有准备好处理更复杂的、以界面为主的场景。在这些情况下,bevy_egui 提供了一个功能齐全的立即模式 GUI 解决方案,可以很好地与 Bevy ECS 相结合。
  • 音频:Bevy 的音频系统仍然很基础。为了更灵活地控制音频,bevy_kira_audio 可以帮您解决问题。
  • 编辑器:Bevy 还没有官方的视觉编辑器。 bevy_editor_pls 是一个第三方 Bevy 插件,它为您的游戏添加了编辑功能。虽然仍在开发中,但非常有用!
  • 网络:游戏网络是一个相当有主见的空间,因此这里有很多选择也就不足为奇了!bevy_ggrsbevy_renetbevy_backrollnaia 是最受欢迎的选择之一。

Bevy Assets 上列出了大量其他插件。

感谢我们的第一次 Bevy Jam、在 Bevy Assets 上列出的游戏以及 Bevy games listed on itch.io,我们现在拥有数百个 Bevy 游戏示例,其中许多是开源的。

在我们等待新的 Bevy Book 的同时,Bevy Cheatbook 仍然是社区开发的顶尖学习资源。

我们还看到 YouTube 上的 Bevy 教育内容有所增加。 TantanLogic ProjectsChris BiscardiPhaestusFoxJeremy ChoneGriffin 以及其他人在制作一些非常有趣的东西。

正如我最近在 Twitter 上抱怨 的那样,开发者生态系统才是真正推动引擎成功的动力。在我看来,Bevy 开发者社区是主要推动我们成功的动力。

人们和公司正在将 Bevy 用于真正的项目™ #

ForesightNoumenalMolecoolePunchy / Fish Folk 是使用 Bevy 获得报酬的人参与的项目的几个著名示例。我们在 我们的 Discord 上发布了 16 个与 Bevy 相关的职位发布!

我发现一些最著名的 Bevy 项目是工具/非游戏(Foresight 和 Noumenal)很有趣。似乎引擎的模块化使我们成为需要渲染器和原则性应用程序模型的工具的引人注目的选择。

当然,我的“Bevy 仍然很年轻,我们经常进行重大更改”的警告仍然适用。在为重大项目选择我们之前:请进行调查,尝试使用 Bevy,并了解今天的 Bevy 开发是什么样子的。但我认为,鉴于我们在这里看到的进展,我可能需要考虑比我想象的更早地更改或删除该警告。越来越多的项目正在选择 Bevy 并报告积极的体验。

始终有改进的空间 #

improve

Bevy 0.6 花了太长时间 #

我选择将Bevy 0.6 搁置,直到新的渲染器处于良好的状态,这回想起来是一个错误。没有理由仅仅因为另一个无关的功能没有准备好,就阻止人们使用已准备好的功能!这总体上对士气不利,公开的 Bevy 公告的重大差距也不理想。为了应对这种延长的发布,我们采用了一种“火车发布计划”,这保护我们免受大型、漫长的发布因特定功能而阻塞。 Bevy 0.7Bevy 0.8 使用了新模型,这导致了更快、更低压力和更可预测的发布。我们仍在完善流程,但到目前为止,从我了解到的情况来看,Bevy 开发人员和 Bevy 用户都喜欢这个新系统。

流水线渲染实际上还没有流水线化 #

对于Bevy 0.6,我们付出了很多努力来设计和实现一个支持并行流水线的渲染器。“提取”模式用于从“主应用程序”读取数据到“渲染应用程序”,整个设计理念都围绕着这一点。但是为了尽快发布Bevy 0.6,我们决定暂时不启用流水线。关于如何以一种适应诸如“非发送”资源等极端情况的方式处理线程,还有一些未解决的问题。自从Bevy 0.6 发布之前,我一直在使用一个启用并行流水线的分支

我一直将启用流水线的最后一公里工作推迟,转而开发其他渲染器功能并解除其他引擎工作的阻碍。在某些情况下,我认为这是正确的决定。用户体验通常比挖掘更多性能更重要。但让这些收益无法实现近 8 个月是令人遗憾的,尤其是考虑到我们已经非常接近,而且我们已经投入了这么多。我将优先考虑这项最后一公里的工作。

我们现在需要 Bevy 编辑器! #

大多数游戏类型的现代游戏开发工作流程都需要视觉编辑器。能够在场景中视觉上并交互地移动实体,对于构建视觉的、交互式的体验至关重要。Bevy 有一个场景系统,但如果没有视觉工具,很难从中获得任何价值。因此,Bevy 引擎开发人员没有强烈的动力或反馈循环来扩展和改进场景系统,而 Bevy 用户也没有强烈的动力来采用它。

自从 Bevy 首次发布以来,我一直有意地推迟 Bevy 编辑器的开发,以便我们可以以集中方式构建 Bevy 的核心系统。我一直说我们需要 Bevy UI 成为“编辑器就绪”(即确保它具有所需的功能、窗口小部件、模式和 UX),然后我们才能开始构建编辑器体验。我不再相信这一点。我认为我们应该采用更具迭代性的方法。现在释放价值。从经验中学习。精炼。迭代。重复。随着 Bevy UI 的发展,我们将需要重写编辑器的某些方面。是的,这在某种程度上是重复劳动,但我现在相信这是值得的。

Bevy 商品的兴衰 #

你们中的许多人可能已经注意到,我们在 2 月份宣布了 Bevy 商品商店。人们对 Bevy 服装/贴纸/等的很多需求,我们希望提供这个选项。许多人购买了 Bevy 商品,有一段时间,生活是美好的。

令人悲伤的是,随着时间的推移,我注意到我的 Bevy 毛衣上的印花在洗了 3 次后就开始脱落。另一位 Bevy 社区成员也联系了我并报告了相同的事情。与其坐以待毙,等待更多问题出现,我不如选择在 5 月份关闭 Bevy 商品商店,并用自己的钱为所有人提供退款。

如果有人正在寻找服装/印刷服务,请远离 Spring(我们以前的商品供应商)。他们的印刷质量和寿命都很

我们几乎肯定会找到另一个商品供应商并重新开张商店,但在向公众开放之前,我将进行长时间的全面质量测试。Bevy 社区信任我,我也信任 Spring(他们没有赢得这种信任,而且很快就失去了)。当您的钱参与其中时,大家应得的比我给您的更彻底。我真的很抱歉。我不会再犯同样的错误。

我们从去年吸取教训了吗? #

对于组织来说,从错误中吸取教训非常重要。现在我们已经拥有了一年的“生日缓冲区”,值得回顾一下我们是如何做的。以下是来自 去年生日文章 的“改进领域”列表,以及我认为我们今年是如何处理它们的。

  • 委托工作和责任/问题和拉取响应时间:如“我感到自豪的事情”部分所述,我们在今年取得了重大进步。但这是一个我们将长期斗争的战役,只要 Bevy 继续发展,我们就会继续战斗。
  • 项目计划和沟通项目方向:今年,我们放弃了旧的“重点领域”模型,转而采用更自然的方法。我们已经大量采用 特定领域项目看板,这有助于人们了解我们正在进行的工作。这比旧的永远都错误的重点领域有所改进。而与我们的 GitHub 问题和拉取请求的直接联系将这些东西与现实联系在一起。话虽如此,我认为在以易于理解的方式传达我们重大/高级优先事项方面仍然存在差距。
  • 旧渲染器的中级 API:我们完全放弃了旧渲染器!我不会重复我在“我感到自豪的事情”部分中所说的话,但我认为这在很大程度上已经得到解决。关于“可理解性”,我认为我们目前最大的差距是文档和学习路径。
  • 填补空白:去年,我希望我们专注于使 Bevy 成为特定类别应用程序的竞争性体验。在我们的第一年,我们“扩展”到尽可能多地覆盖各个领域(2D、3D、UI 等),但在给定领域内,到处都是空白。我们在这一方面已经有了很大的进步。3D 现在拥有骨骼动画等关键功能,这几乎阻碍了所有严肃的 3D 游戏的制作。由于新的渲染器和精灵批处理,我们的核心 2D 性能有了很大的提高,现在可以制作以精灵为主的游戏。话虽如此,就精神而言,我认为我们还没有完成这项任务。在功能方面,Bevy 仍然远远无法与该领域的其他主要参与者竞争。这当然不是我们在一年时间内可以弥合的差距,但今年我们真的需要开始更多地关注资产工作流程、场景和编辑器体验。
  • 我画的鸟不够多: 在 Bevy 开发的第一年,我为我的赞助者提供了一个“自定义 Bevy 鸟头像”奖励等级。我在画这些鸟方面拖延了很久。我很高兴地说,我已经成功地清除了我的“自定义 Bevy 鸟头像”积压。然后我立即取消了这个奖励等级。这很有趣,但我现在应该把更多时间花在构建和管理 Bevy 上。

@cart 能预测未来吗?#

在我们上一个生日时,我对未来一年做了一些预测。让我们看看我做得怎么样 :)

  • Bevy 0.6 将在不久的将来发布: 我们确实发布了 Bevy 0.6,但如上所述,它又花费了 4 个月。这确实超出了“不久的将来”这个词的含义。
  • 资产管道成熟度: 资产管道没有获得资产预处理、导入配置或更好的依赖关系管理。这方面我下一个发布周期中的主要关注点,但去年被降级了。但是,我们已经做了很多设计工作和实验来为之做准备。
  • 下一代 Bevy UI: 我们没有对 Bevy UI 进行有意义的重构以改善用户体验或功能(除了将stretch 布局库替换为taffy,这修复了非常糟糕的嵌套布局性能)。自从Bevy 0.8发布以来,我们已经开始加大力度,并整合了我们的计划,旨在使 Bevy UI 变得出色。但是,像bevy_egui 这样的第三方 UI 插件目前仍然提供了更加愉快和功能丰富的体验。
  • 为 Bevy 编辑器奠定基础: 我们没有为 Bevy 编辑器奠定基础。如上所述,我们需要开始优先考虑这项工作。
  • 预测的场景改进: 我们没有获得对嵌套场景的支持,也没有让场景格式更漂亮,也没有添加属性重载。我们有一个关于更漂亮的场景格式的新 PR,它建立在我们去年完成的所有 Bevy Reflect 工作之上,但我们仍在审查它。
  • 新的 Bevy 手册: 我们在新的 Bevy 手册方面取得了一些进展,但我们还没有发布它。
  • 预测的 Bevy ECS 功能: 我们在 Bevy ECS 上投入了大量精力,但我们没有获得“反应式 ECS”/ 实体关系索引。并行系统调度 API确实得到了改进,但我们没有使其更细粒度(例如,“无阶段 ECS”几乎已准备就绪,但我们还没有合并它)。
  • 统一的属性动画系统: 我们确实做了一些设计工作(RFC 49RFC 51),并且有一些提议的实现(PR 1429),但我们还没有合并任何实现。
  • 预测的 2D 功能: 我们确实实现了精灵批处理和精灵渲染层!我们没有对图块集工作流进行有意义的改进(像bevy_ecs_tilemap 这样的第三方板条箱通常仍然是首选)。我们也没有添加可视化编辑器工作流(因为 Bevy 编辑器尚不存在)。
  • 预测的 3D 功能: 我们确实实现了骨骼动画、可配置/灵活/美观的阴影,并添加了更多 PBR 材质配置选项!我们没有添加全局照明实现(尽管现在存在像bevy-hikari 这样的第三方插件)。我们也没有添加可视化编辑器工作流(同样,因为 Bevy 编辑器尚不存在)。
  • 第一个 Bevy 游戏黑客松: 我们确实举办了我们的第一个 Bevy 黑客松

如您所见,我基本上未能预测未来。我的许多预测都与“更高层次的资产和编辑器驱动的工作流”有关,但我们最终将注意力集中在其他支柱上,例如 Bevy 渲染器、Bevy ECS、Bevy Reflect 和平台支持(主要是 Web,以及一些 iOS 和 Android)。

我认为我们做出了正确的选择:我们有很多基础工作要做,尤其是在渲染方面。现在我们已经基本上完善了 Bevy 的核心(以及代码驱动的工作流),我们可以花接下来的一年时间来实现我们对更高层次的编辑器驱动工作流的计划。请注意,虽然我们的重点正在向这个方向转移,但我们仍然计划使代码优先的工作流成为一流的,并且令人愉快的!

Bevy 的未来一年#

next year

以下是我们为未来一年计划的一些“大票”项目。我将这份清单保持得更小、更具范围,因为其中一些项目是巨大的努力,我显然对去年的预测过于自信。尽管如此,我认为我们现在对我们在“技术树”中的位置有了更好的理解,我们已经开始扩展 Bevy 组织并有效地进行委托,并且我们更有能力对这些事情进行优先排序(而不是需要将精力投入到其他基础部分)。我相信我们会让所有这些事情都发生。

  • Bevy 编辑器: 今年,我们将开始在“可视化场景编辑”领域进行尝试。到年底,我希望以“最小可行产品”的方式证明基本场景编辑工作流是可行的。
  • Bevy 资产: 我们将添加资产预处理(在开发时优化和处理资产,例如预编译着色器),这是现代游戏开发的关键部分。这将使资产加载速度更快,CPU 和 GPU 内存占用更小,在文件系统中存储每个资产的导入配置,以及更小的部署应用程序大小。
  • Bevy UI: 现在我们有一个合理的类似 DOM 的核心。今年,我们将阐明定义 Bevy UI 小部件的意义,改进定义 UI 树的人体工程学,解决层次 UI 事件处理,并探索更高层次的数据流(例如“反应性”)。这将与 Bevy 编辑器同时开发,后者将对 Bevy UI 进行试用,并证明模式是有效的。
  • Bevy 场景: 场景将获得更漂亮的格式,支持场景嵌套和场景属性重载。这些功能将与 Bevy 编辑器同时开发,以确保体验连贯且令人愉快。
  • Bevy ECS: 我们将合并“无阶段”ECS,使系统更容易/更清晰地依赖于来自其他系统的更改,并解决 Bevy ECS 中一些最大的剩余 UX 问题。
  • 新的 Bevy 手册: 我们将用新的 Bevy 手册替换当前的 Bevy 手册。这将是一个迭代过程。我更关心为社区 Bevy 手册开发打开大门,并将此融入我们的开发文化,而不是在此实现特定里程碑。我们把这件事拖延了太久。

我们有许多其他工作在进行中,但我将范围缩小,重点介绍我认为我们应该关注的领域(以及作为项目负责人,我将亲自指导我自己的努力的领域)。

Bevy 黑客松 #2 也将在 8 月 19 日举行。即使您从未制作过游戏(或使用过 Bevy),游戏黑客松也是一个深入游戏开发的好方法!它们也是结识志同道合的人的好方法。我强烈建议参与。我本人在上一次玩得很开心!

如果这些让您感到兴奋,我们非常欢迎您的帮助!查看我们GitHub 上的代码,开始参与Bevy 社区,并考虑赞助我们的工作,以确保我们能够继续构建和领导这个雄心勃勃的项目。

今年对于 Bevy 来说将是重要的一年。我期待着与大家一起度过!

- @cart