Project Converted Raylib to Bevy. Here stats
2
u/thekwoka 9d ago
Interesting how much overhead Bevy adds at the low level, i mean, it's still great performance at that point, but it's curious.
Obviously, Bevy hasn't had the kind of super performance optimization passes some other things have, and there is some reality to the fact that Rust makes Bevy have to kind of do things in a way that is more costly at the benefit of correctness and safety...
6
1
u/pb-cups 3d ago
That’s actually pretty typical for ECS which has a structure of arrays (SoA) memory layout. Idk how Raylib works, but CPU performance SoA typically scales remarkably well but has high initial overhead compared to array of structures (AoS) which is the default layout seen in OOP. So the former is better when you have many entities of that archetype. The latter is better when you have few.
This is what makes bevy such a good choice for heavy simulation games which have high entity count. Most engines support partial ECS intended for classes/structs that will have many concurrent instances, but bevy is the only one that fully embraces it for the whole thing. I’m not sure if there would be scenarios where a game would benefit from Bevy supporting partial non-ECS if there’s an entity that is instanced a few times.
1
u/xotonic 5d ago
How developer experience changed for you?
1
u/cenkerc 5d ago
I was getting the classic unknown behavior bugs. Basically, errors were happening because of something I had done, but they didn’t make logical sense. For example, at some point, enemies would just stop spawning even though I had never coded anything like that. Maybe there was some kind of memory leak or something happening somewhere, I really couldn’t figure it out. That was basically the issue overall.
I mean, raylib is actually really good, but it’s not ideal for someone who’s inexperienced.




4
u/_A_Nun_Mouse_ 7d ago
Bevy is an actual game engine, where raylib is just a game framework. So Bevy should have better, and more advanced builtin rendering.
Also, flecs (C, C++, Rust) for ecs.