alice-i-cecile
Joined 5 years ago
Joined 5 years ago
Even without hotpatching, Rust incremental compile times are on the order of 10 seconds, not multiple minutes. Clean compiles still take minutes, but that's a "once-a-week" workflow usually.
Not sure if Zed has gotten it hooked up yet, but things are changing rapidly in the Rust GUI (and games) space because of Dioxus's innovation here.
Once those are a bit more stable, I'd like to target a focus system for UI, to enable good keyboard and gamepad menu navigation and to hook up to screen readers.
Factory builder and simulation games are the classic example of "when should you use Bevy". You should absolutely pick Godot right now for games that are more content-focused that need a lot of level design: puzzle games, platformers, walking simulators...
But logistically, on-demand shading of whole fields is quite challenging. And not all crops will be robust to being grown in the shade (for varying levels of shade).
I'm glad it pays off! Seeing them come together makes my day every time, even when I'm writing half of it.
I'll chew on solutions here: we might be able to get away with a nice well-documented convention in user-space code, or we may need to add a small extension to the internals to make this more robust.
As for the ECS, I've absolutely felt that: the flexibility of the polymorphism created by "just add another component!" can be both chaotic and freeing. Can you say more about what you're looking for with entity cleanup? I haven't heard that complaint before and want to make sure I understand what you mean.
There are two popular physics engines used in Bevy today: Rapier[0] and bevy_xpbd[1]. Both are candidates for upstreaming, but both have their own challenges. I've spent some time working with each of the authors recently, laying out my concerns and thoughts.
On the Rapier side, the documentation is sparse and aggressively mathematical, it uses a distinct math library from the rest of Bevy, the API to work with Bevy is sometimes clunky and unidiomatic, and it can be quite hard to figure out how to do Ordinary Game Dev Things with it.
On the bevy_xpbd side, the performance is subpar, there can be physical stability issues, it's generally immature, and the XPBD solver that they use is, unbeknownst to the young author at the time of the crate's creation, patented by NVIDIA [2] :(
Both of them are working to improve (and I'm very pleased to see that even independent of this discussion), but neither is ready for imminent official endorsement or integration. One day we'll have a Blessed Choice though.
As for telling people "go forth and build your game!": things are stabilizing, and key functionality gaps are gradually getting filled. I have a terrible tendency to be overly honest, even in my marketing text, so there's going to be a long period of time where the actual answer is "it depends on what you're making".
Today, if you're building a weird game-adjacent bit of software (think CAD) for desktop platforms: totally ready! There are several very happy companies doing that. If you wanna mess around with Rust and nurse the Next Great Solo Dev Science-Based MMORPG Voxel Game: you'll have a blast, and it won't affect your chance of shipping a whit. If you want to build a simulation-y desktop game with lots of procedural generation and complex logic: honestly probably a good fit. You'll hit bugs and limitations, but you will in every other engine you use so...
If you want to ship high-performance web games, AAA graphics or mobile: eh, probably doable but dicey. If you want to ship to console: uh we'll find out if we can jump through all of the hoops and convince the right people to get Rust on console before the Steam Deck knockoffs devour the market (please!).
These will all slowly change, but an answer for "is it ready" will be hard to pin me down on until it's a full-fledged competitor to Unity, Unreal and Godot.
That said, the Zig Foundation got status in 2020, and the Amethyst Foundation (another Rust gamedev group) also got status recently, so we figured it was worth it to apply since we really do feel like it's the best-fitting designation for how we want to run things and what we want to do.