Note: This post will be done using NixOS. From my experience, most Rust crates work out of the box in Nix, but there are some audio libraries that I had to create a
flake.nixfor the project to compile.
Repo: Get the git repo here
Why Try Bevy?
Bevy 0.17.1 released recently as of October 2025, and I suppose curiosity got the best of me. Though I have used most of the popular game engines out there, I've always opted to use more of a homegrown engine to create games. As much as I enjoy going lower level, the appeal of function calls like meshes.add(Circle::new(50.0)) definitely helps game developers not get bogged down into the irrelevant implementations that might not matter much to them.
Another important note is that Bevy has no GUI that drives the core engine code. If you ever used a game engine like Unity or Unreal Engine, many of the functionality is hidden away in GUI buttons. An "Import Asset" button in those game engines might consists of going through the file system, parsing the contents, serializing it, caching it, interpret it, etc. in a single easy to understand button. Though Bevy might do this in a single function, I'm curious to see how intuitive the API will be.
There are some really impressive games, such as Tiny Glade, made using Bevy. Though I suspect that certain graphic algorithms like Marching Cubes isn't supported on Bevy right out of the box. But nonetheless, Bevy is more than a capable engine to develop games with.
Despite that, a detailed article from LogLog Games discussed in length about the short comings of using Rust for game development. Rust prides itself on having correct, safe code. This often goes against the "quick and dirty" method of writing code that game developers might favor.
Conclusion
Switching from a object oriented approach, which many games still use, to an ECS approach does come at an engineering cost. I would like to investigate further on how the architecture might look in a Bevy game if we were all in and created a fully feature complete game.
A positive note though is that the Bevy API is quite clean, in my opinion. I enjoy just working on the system logic and have the engine handle all the queries I need. Everything feels dynamic and modular, and I can definitely see myself working more in Bevy on a larger project.
In all, this was a naive approach and first hand take on using Bevy for the first time and coming away with a tiny game out of it. It all came out to around 300 lines of code, which is reasonable. The community is active, and the resources are plenty to learn from.