Skip to content

About

Beginner's Guide to Rust's Bevy Game Engine

Resources

Stars

138 stars

Watchers

1 watching

Forks

Latest commit

 

History

53 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

撰写本书的原因

关于 Bevy 的系统性中文指南至今仍然欠缺,互联网上的资料零散、碎片化,且大多停留在如何做的层面,很少触及为什么这样设计。想要深入理解 Bevy 的内部机制,往往需要自行翻阅大量源码与文档,这消耗了开发者大量的时间,也严重阻碍了 Bevy 生态在中文社区的成长。

Bevy 经过五年的发展,距离 1.0 完成度已接近八成,其架构设计也趋于稳定。加之作者本人对Bevy比较感兴趣,遂决定撰写一本从源码出发、深入设计哲学的指南(本书撰写始于2025年10月11日)。

本书是什么

这是一本从源码出发、以理解引擎如何运作为目标的 Bevy 深度导读。

本书不教你搓一个简单的游戏,而是带你拆开 Bevy 这个复杂系统,看它的每一块齿轮是怎么咬合的,本书的内容和目的是解释如下问题。

  • ECS 是如何在运行时管理成千上万个实体与组件

  • 反射是如何让静态语言获得动态能力的

  • Bevy是如何做到无锁并行的

  • 宏是如何在编译期生成一整套 trait 实现的

  • 渲染管线是如何把数据从 CPU 搬到 GPU的

  • GPU是如何把数据渲染成图像的

    ……以及更多底层而复杂的问题。

本书不是什么

  • 不是游戏开发教程。作者自己其实很少玩游戏,这本书也不是来教做游戏的。读完本书,你不会得到一个完整的游戏 Demo。(或许以后会有?)
  • 不是 API 手册。API 会随版本变化,但设计思想不会。本书关注的是后者。
  • 不是面面俱到的百科全书。物理引擎、音频细节、UI 系统等内容,本书要么简略带过,要么留给其他资料。

读完本书,你将能够

  • 独立阅读 Bevy 的源码,理解它的模块划分与设计决策
  • 理解 ECS、反射、宏、调度图、渲染管线背后的核心机制
  • 在 Bevy 版本发生重大变化时,快速迁移自己的代码与理解
  • 具备进一步研究引擎、框架、系统级软件的底层能力
  • 对复杂系统如何被设计出来这件事,形成自己的判断力

但你不会因此成为游戏开发者。这不是本书的目标。

本书适合谁

本书假设你:

  • 已经初步掌握 Rust(trait、泛型、所有权、生命周期)
  • 学过基本线性代数(矩阵乘法、向量点积)
  • 对游戏开发、图形学、GPU 编程没有先验要求

如果你属于以下任意一种人,本书会非常适合你:

  • 学过 Rust,但没见过一个真实的、大型的 Rust 项目是如何组织宏、trait 和模块的
  • 学过线性代数,但想知道矩阵变换在 3D 引擎里到底是怎么被用起来的
  • 对反射、宏、ECS、渲染管线这些魔法感到好奇,想知道它们是怎么被设计出来的
  • 想理解游戏引擎这个复杂系统
  • 未来想自己写引擎、写框架,或对系统级软件设计感兴趣

如果你只是想快速做一个游戏出来,本书可能不适合你。但如果你想理解 Bevy 为什么这样设计,并且愿意和我一起从源码出发去追根究底,那么来对地方了~

本书的撰写风格

本书采用个人笔记式的源码阅读风格。先自顶向下帮助读者建立对Bevy的API的初始印象,然后自底向上分析Bevy的底层逻辑与源代码,逐步展开背后的设计动机。

  • 我会大量地问为什么,然后去源码里找答案。
  • 我会在必要的地方从0给出数学推导,也会在更多地方给出直觉解释。
  • 我会承认自己没搞懂的地方,也会在后续版本中回头修正。
  • 我不会假装自己什么都知道,但我会尽量把自己走过的弯路讲清楚。

最终目标不是让你记住 API,而是让你理解 Bevy 的设计哲学与内部原理。当你真正理解这套设计之后,API 的变化对你来说只是换了一层皮。即使未来 Bevy 发生了重大变化,你也能轻松上手。

本书结构

本书计划分为上中下三册:

  1. 上册:自顶向下结构,Bevy 总览、ECS 架构、资产系统、时间、2D / 3D 渲染基础、空间变换、相机、动画、反射基础。上册的目标是让你能够读懂 Bevy examples 中的绝大部分内容。
  2. 中册:自顶向下 + 自底向上双模式,深入反射系统与有向无环并行图的构建与运作原理,包括 bevy_reflect 的 derive 宏实现、调度图的构建与执行、并行调度的冲突检测等。
  3. 下册:自顶向下 + 自底向上双模式,深入 Bevy 的渲染管线与 wgpu 渲染系统,包括渲染图、Extract 阶段、RenderCommand、着色器绑定等。

关于更新

本书目前正在积极撰写中,也是我本人学习 Bevy 过程中的经验总结。由于事务缠身(导师横向、学术研究、其他项目),更新可能较慢,但绝不会弃坑。欢迎合作与贡献。

其他

Github Pages:线上书籍在线观看。https://ailrid.github.io/Bevy-Engine-Guide/

virid:我的另一个项目,Bevy 思想的落地实践——使用类 ECS 实现的一站式重型 Electron 应用开发框架,将 Bevy 的设计哲学和 Rust 理念嵌入 TypeScript 与 Electron。https://github.com/Ailrid/virid

⚖️ 版权与许可

我花了很多个深夜去磨这些章节,每一小节都要写作数个小时甚至半天。如果你觉得有用,那是对我最大的认可。

为了保护这些心血不被滥用,本书文字、图片及示例代码均采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 (CC BY-NC-SA 4.0) 进行许可。

这意味着:

  • 署名:您可以自由地转载、引用或基于本书进行二次创作,但必须保留原作者(Ailrid)的署名并提供本书链接。
  • 非商业性使用:您不得将本书内容或其衍生作品用于任何商业目的(如付费课程、出版获利、商业 AI 训练)。
  • 相同方式共享:如果您对本书进行了修改、转换或二次创作,您必须使用相同的许可协议分发您的贡献。

Caution

本书部分图像来自公开网络搜集,无法联系作者,若侵权请联系进行删除。

About

Beginner's Guide to Rust's Bevy Game Engine

Resources

Stars

138 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors