5 ms·
The article title is half-true. It wasn't so much they migrated away from Rust, but that they migrated away from Bevy, which is an alpha quality game engine. I
by krapht 1y ago
The article title is half-true. It wasn't so much they migrated away from Rust, but that they migrated away from Bevy, which is an alpha quality game engine.
I wouldn't have read the article if it'd been labeled that, so kudos to the blog writer, I guess.
- Jyaif 1y agoThey mentioned ABI and the ability to create mods, which are Rust things. Here's a thought experiment: Would Minecraft have been as popular if it had been written in Rust instead of Java?
- legobmw99 1y agoI mean, we already have a sort-of answer, because the "Bedrock Edition" of Minecraft is written in C++, and it is indeed less popular on PC (on console, it's the only option, so _overall_ it might win out) and does lack any real modding scene
- rcxdude 1y agoIndeed. Java is sufficiently dynamic/decompilable a game written in it can be heavily modded without adding specific support. C++ is much harder (depending on the game engine), though not impossible. If you do add modding support then everything is much better regardless of language, though (see Factorio, written in C++ and with a huge modding scene, because it was basically written with modding in mind. Lua is certainly helping with that, of course).
- im3w1l 1y agoI actually disagree with that. Decompilation based mods can completely change anything and everything about the game. Scripting based mods can only change things within the boundaries allowed by the devs of the original game.
- rcxdude 1y agoTrue, a limited modding API can be a problem. But in something like minecraft it's not a a free-for-all with mods either, it's just that the community writes their own modding API, but has to deal with breakage whenever the game updates.
- ivanjermakov 1y agoMore surprising part for me is not migrating from Rust/Bevy, but migrating _to_ C#/Unity. Although points mentioned in the post are quite valid.
- koakuma-chan 1y agoWhere would you migrate to?
- sadeshmukh 1y agoMaybe godot? The unity scandal recently is not great for developers.
- koakuma-chan 1y agohttps://news.ycombinator.com/item?id=43825086 https://news.ycombinator.com/item?id=43825086
- pjmlp 1y agoPeople forget that Unity and Unreal are industry darlings for a reason. The amount of platforms they support, the amount of features they support, many of which could be a PhD thesis in graphics programming, the tooling, the store,....
- gh0stcat 1y agoNot OP, but it seems that there is still a huge sentiment that Unity is not a "safe" platform to migrate to because of their relatively antagonistic approach to monetization guidelines compared to other open source game engines. I do think it makes sense to also consider Godot given his coworker is his brother who is stated to be new to game development, it has a scripting language even simpler than C#, more like python. Additionally, one might expect that someone more into Rust might prefer the C++ integration that Unreal offers. I think the timeline had an effect here too, as it's not been until recently that people have been taking Godot more seriously.
- bigstrat2003 1y ago
- jedisct1 1y agoThe problem with Rust is that almost everything is still at an alpha stage. The vast majority of crates are at version 0.x and are eventually abandoned, replaced, or subject to constant breaking changes While the language itself is great and stable, the ecosystem is not, and reverting to more conservative options is often the most reasonable choice, especially for long-term projects.
- the_mitsuhiko 1y agoI really don’t think Rust is a good match for game dev. Both because of the borrow checker which requires a lot of handles instead of pointers and because compile times are just not great. But outside of games the situation looks very different. “Almost everything” is just not at all accurate. There are tons of very stable and productive ecosystems in Rust.
- littlestymaar 1y agoBorrow checker is mostly a strawman for this discussion, the post is about using Bevy as an engine and Bevy uses an ECS than manages the lifetime of objects for you automatically. You will never have an issue with the borrow checker when using Bevy, not even once.
- pclmulqdq 1y agoEverything in every ECS system is done with handles, but the parent comment is correct that many games use hairballs of pointers all over the place (and they are handles with ECS). There is never a borrow checker issue with handles since they divorce the concept of a pointer from the concept of ownership.
- int_19h 1y agoBut then the question becomes - why Rust, if you deliberately work around its single most prominent distinguishing feature?
- deleted 1y ago[deleted]
- jonas21 1y agoWhat are some non-alpha quality Rust game engines? If the answer is "there are none", then I'd say the title is accurate.