February 11, 2024
Introduction#
Before introducing the Bevy engine, I would like to first talk about what Rust is. It is a programming language, and I will borrow a passage from "The Rust Programming Language" to explain:
Rust is really good: it has been the most popular language in the world for eight consecutive years, it doesn't have garbage collection or require manual memory management, it has performance comparable to C++/C and can directly call their code, and it has extremely high safety - many companies claim that most of their previous bugs automatically disappear after using Rust, and it has the best package management tool in the world, Cargo, and so on.
Before learning Rust, I also looked into which companies are using Rust. For example, Microsoft is using Rust to rewrite parts of the Windows system. Google, Amazon, and Twitter are also using Rust. Seeing these legendary companies using it, I think Rust is worth learning.
While getting to know and learning the Rust language, I discovered a game engine that was mentioned by fellow group members in the group: Bevy. I think its design goals are quite good...
-
Features: Provides a complete set of 2D and 3D features.
-
Simplicity: Easy for beginners to get started, but infinitely flexible for advanced users.
-
Data-oriented: Uses an entity-component system paradigm with a data-oriented architecture.
-
Modular: Only use what you need. Replace what you don't like.
-
Fast: Application logic should run fast and run in parallel whenever possible.
-
Efficient: Changes should compile quickly... waiting is not fun.
Since the Bevy engine is written in Rust, I think it should have impressive performance (actually, I haven't studied or worked with game engines before, so this judgment is entirely subjective).
In addition, Bevy is completely free and open source. However, the current Bevy is still in the early stages of development and lacks important features. There are very few documents available.
The official text states:
Bevy is still in the early stages of development. It lacks important features and there are very few documents available. Bevy releases a new version with significant API changes approximately every 3 months. We provide migration guides, but we cannot guarantee that migrations are always easy. Only use it if you are willing to work in this environment.