Important!
This was written quite late, and therefore i seem to have said that engines like unity and godot are ECS based, this is FALSE and they are actually OOP based. Im so sorry for the misinformation!!
After testing bevy - My thoughts
Note! All of the following text is just MY OPINIONS; and should not be considered factual!!
Hi there! A couple days ago i decided to check back in on the status of gamedev in the Rust ecosystem, and saw the name “Bevy”. Now I faintly recognized it, probably from some Reddit thread or in the Rust Discord. I decided to quickly check it out, and was quite pleasantly surprised with how feature-rich it was, as I’ve never seen anything similar in the rust ecosystem.
After checking out the docs and quickstart for a bit i thought it would be interesting to try out, and started doing some searching. I ended up finding this bevy pong tutorial and decided to follow it on a private Github repo to get a taste of bevy and its take on the ECS architecture.
My thoughts and opinions
Now that I have gotten my small taste of Bevy, I have some thoughts I’d like to express.
First of all, I am overall not a fan of ECS and gamedev. This doesn’t just apply to Bevy, but also other ECS-based game engines / libraries / editors, like Godot and Unity. This has ended up with me not generally liking gamedev overall, as there are a few, if not none (that I know of), mature and usable editors / libraries that don’t follow the ECS (except pygame). But, even with my dislike of ECS, Bevy has been the most pleasant and tolerable solution to work with that I have tried, and I was quite surprised with how relatively fun and easy it was to work with.
The biggest downside is probably the obscene amount of boilerplate required to do basically anything, but BEFORE you go on a rampage on me, I know that this is required for its ECS architecture. And while I think it can be a weak point for fast prototyping, it is incredible for robust projects, as it forces you into a habit of making explicitly named markers and components. It also results in incredibly readable code as long as the reader has basic knowledge of Bevy and how you write Bevy code.
Final thoughts
It is the best experience I have had with ECS and gamedev, and even though I probably won’t make more stuff with it in the future (as gamedev/graphics-heavy stuff is not what I like to focus on), it was fun to mess around with, and I can definitely see that it was made with deep passion and why so many people love it.
Would i use it in the future? No
Is it good? Hell yeah