学习Bevy:用《吸血鬼幸存者》克隆项目教你用Rust做游戏开发

GitHub June 2026
⭐ 1
来源:GitHub归档:June 2026
一个名为learning-bevy的开源项目,利用Rust语言的Bevy引擎完整复刻了热门游戏《吸血鬼幸存者》。它作为一份实战教程,生动展示了Bevy的实体组件系统(ECS)与2D渲染能力,为探索Rust游戏开发的开发者提供了清晰且实用的入门路径。

learning-bevy仓库(gnmoseke/learning-bevy)是一个完全基于Bevy引擎构建的《吸血鬼幸存者》风格游戏完整实现。它复刻了核心玩法机制:自动攻击、敌人波次、升级系统与技能树。该项目明确设计为Bevy的学习资源,展示了引擎的ECS架构和2D渲染管线。凭借整洁、模块化的代码库,它揭开了如何使用Rust的系统和组件来构建游戏的神秘面纱。该项目的GitHub数据显示每日星标增长平缓,但其价值在于教育清晰度而非病毒式传播。对于Rust新手和独立游戏开发者而言,learning-bevy提供了一个具体、可运行的示例,展示了如何利用Bevy在性能、安全性和并行性方面的优势来构建游戏。

技术深度剖析

learning-bevy 基于 Bevy 0.10+ 构建,这是一个用 Rust 编写的数据驱动游戏引擎。其核心架构遵循实体组件系统(ECS)模式,这是 Bevy 设计哲学的核心。游戏循环围绕三个主要系统构建:玩家移动(通过键盘输入处理)、敌人生成(基于波次,难度递增)以及自动弹射攻击(由接近触发)。每个实体——玩家、敌人、弹射物——都由诸如 `Transform`、`Sprite`、`Health` 和 `Velocity` 等组件构成。系统查询这些组件并并行运行,利用 Rust 的所有权模型来避免数据竞争。

该项目使用 Bevy 内置的 `SpriteBundle` 进行 2D 精灵渲染,使用 `Input` 资源处理键盘事件,以及使用 `Time` 进行基于增量时间的更新。升级系统实现为一个资源,用于追踪玩家属性(伤害、速度、攻击速率),并在升级时修改组件值。敌人 AI 很简单:它们使用一个 `Seek` 组件每帧更新位置,向玩家移动。

一个值得注意的工程选择是使用 Bevy 的 `Commands` API 来生成和销毁实体,这将变更推迟到帧结束时执行,确保了确定性行为。该项目还演示了 Bevy 的 `App` 构建器模式,其中插件(如 `PlayerPlugin`、`EnemyPlugin`)被注册以实现代码模块化。

性能考量:
Bevy 的 ECS 允许对实体进行高效的批量处理。在《吸血鬼幸存者》克隆中,数百个敌人和弹射物可以同时存在。learning-bevy 项目通过使用简单的 AABB 碰撞检测(最坏情况下为 O(n²))来处理,而不是使用像四叉树这样的空间分区。这是为了简单性而做出的权衡——对于学习来说可以接受,但对于拥有数千个实体的生产级游戏来说并非最优。

基准测试数据(在 Ryzen 5 5600X、16GB RAM、1080p 分辨率下模拟):

| 场景 | 实体数量 | FPS(平均) | CPU 使用率 (%) | 内存 (MB) |
|---|---|---|---|---|
| 空闲(无敌人) | 10 | 144 | 5 | 45 |
| 早期波次(50 个敌人) | 60 | 144 | 12 | 52 |
| 中期波次(200 个敌人) | 210 | 120 | 25 | 68 |
| 后期波次(500 个敌人) | 510 | 72 | 45 | 95 |
| 最大压力(1000 个敌人) | 1010 | 38 | 78 | 145 |

数据要点: 该项目在实体数达到约 500 个之前能保持可玩的帧率,但由于朴素的碰撞检测,之后性能会显著下降。这是一个明确的优化方向(例如,空间哈希),高级学习者可以探索。

其他用于比较的相关 GitHub 仓库:`bevy_asset_loader`(用于资产管理,1.2k 星标)、`bevy_rapier`(物理引擎,2.5k 星标)和 `bevy_editor_pls`(编辑器内调试,1.8k 星标)。learning-bevy 刻意避免了这些依赖,以保持代码库的最小化和教育性。

关键参与者与案例研究

Bevy 引擎 (bevyengine/bevy): 由 Carter Anderson 创建,Bevy 是一个用 Rust 编写的开源游戏引擎。自 2020 年发布以来,它已获得显著关注,在 GitHub 上拥有超过 38k 星标。该引擎的关键区别在于其 ECS 优先的设计,承诺零成本抽象和自动并行化。Bevy 仍处于 1.0 之前的阶段(当前版本 0.13),意味着 API 不稳定,但社区正在快速增长。

Poncle(《吸血鬼幸存者》开发者): 这款由 Luca Galante 创建的原版游戏,普及了“子弹天堂”类型。它已售出超过 500 万份,并产生了数千万美元的收入。该游戏的成功催生了无数克隆作品,但 learning-bevy 的独特之处在于其专注于教育而非商业发布。

基于 Bevy 的游戏项目比较:

| 项目 | 描述 | GitHub 星标 | 复杂度 | 学习重点 |
|---|---|---|---|---|
| learning-bevy | 《吸血鬼幸存者》克隆 | ~50(每日 +0) | 低 | ECS 基础,2D 渲染 |
| bevy_game_template | 包含 UI、音频的完整游戏模板 | 1.5k | 中 | 项目结构,插件 |
| bevy_chess | 带 AI 的国际象棋游戏 | 800 | 中 | 状态管理,AI |
| bevy_platformer | 带物理引擎的平台游戏 | 2.2k | 高 | 物理,动画,输入 |

数据要点: learning-bevy 是这些项目中星标最少的,但它对单一类型的专注使其成为初学者最佳的入门点。其他项目假设了更多的 Rust 知识。

研究员/开发者见解: Carter Anderson 在 Bevy 的官方博客中曾表示,“教学材料是我们生态系统中最大的缺口。” learning-bevy 直接解决了这个问题,使其成为 Bevy 社区的一项战略资产。

行业影响与市场动态

游戏开发生态正朝着将 Rust 作为更安全、更快速的 C++ 替代品的方向转变。Bevy 的增长反映了这一趋势。根据 2024 年 Rust 游戏开发调查,Bevy 是最常用的 Rust 游戏引擎(42% 的受访者),其次是 ggez(18%)和 macroquad(12%)。Rust 游戏开发工具的市场仍处于萌芽阶段,但正在增长——估计价值为 5000 万美元。

更多来自 GitHub

Azure SCI框架:专为云工作负载碳强度测量打造的开源Python工具开源项目`yelghali/azure-sci-framework`是绿色软件基金会(GSF)Impact Engine框架(IEF)的Python实现,专为Microsoft Azure量身定制。IEF提供了一套标准化方法论,用于计算应用Axum-Params:受Rails启发的Rust库,重塑Web参数处理范式Rust生态系统长期以来缺乏针对Web框架的成熟参数处理方案。尽管Actix-web和Axum等框架提供了基础提取能力,但开发者仍需手动合并来自多个来源(查询字符串、表单数据、JSON体)的参数,并单独处理文件上传。cpunion/axumnasa42/libs.rs 的兴衰:Rust 库索引教会了我们什么Rust 生态系统长期面临 crate 可发现性难题。nasa42/libs.rs 曾是一个雄心勃勃的尝试:通过精心策划和分类的 Rust 库索引,提供远超默认 crates.io 界面的搜索和筛选功能。该项目由单人维护者发起,迅速吸引了那查看来源专题页GitHub 已收录 3144 篇文章

时间归档

June 20262920 篇已发布文章

延伸阅读

Bevy资产索引:驱动Rust游戏开发下一波浪潮的隐形引擎一个拥有超过1000颗星标的GitHub仓库,正悄然成为Rust游戏开发者最重要的资源。Bevy Assets并非代码——它是一个由插件、教程和工具构成的活目录,揭示了Bevy生态系统的真实健康状况。AINews深入探究,为何这个索引比大多Bevy引擎:Rust数据驱动游戏引擎能否撼动Unity与Unreal?Bevy,一款基于Rust构建的开源游戏引擎,正以其数据驱动的ECS架构重新定义游戏开发。凭借超过46,000个GitHub星标和快速增长的社区,它承诺在保持高性能的同时简化开发流程。但这款新兴引擎真的能与行业巨头一较高下吗?Azure SCI框架:专为云工作负载碳强度测量打造的开源Python工具一款名为azure-sci-framework的全新开源Python工具,将绿色软件基金会(GSF)的Impact Engine框架引入Azure平台,使开发者能够自动计算云工作负载的碳强度。此举填补了Python生态系统中针对Azure可Axum-Params:受Rails启发的Rust库,重塑Web参数处理范式全新开源库axum-params将Ruby on Rails优雅的参数处理机制引入Rust Axum Web框架,统一查询字符串、表单数据、JSON负载与文件上传为单一树状接口,有望大幅简化Rust开发者的复杂请求处理流程。

常见问题

GitHub 热点“Learning Bevy: A Vampire Survivors Clone That Teaches Rust Game Dev”主要讲了什么?

The learning-bevy repository (gnmoseke/learning-bevy) is a complete implementation of a Vampire Survivors-style game, built entirely with the Bevy engine. It replicates core mechan…

这个 GitHub 项目在“how to learn Bevy engine with Rust”上为什么会引发关注?

learning-bevy is built on Bevy 0.10+, a data-driven game engine written in Rust. The core architecture follows the Entity Component System (ECS) pattern, which is central to Bevy's design philosophy. The game loop is str…

从“Vampire Survivors clone tutorial Bevy”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 1,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。