Migrating away from Rust
Bevy vs. Rust vs. “Migrating away from Rust”
- Many readers argue the real story is migrating away from Bevy, not from Rust itself.
- Bevy is described as alpha‑quality: frequent breaking releases, sparse docs, missing features (notably UI and modding), and heavy ECS boilerplate.
- Frequent Bevy API churn repeatedly broke the codebase and its dependencies; several people say that alone makes it unsuitable for long projects unless you also want to help build Bevy.
Why Unity/C# Felt So Much Better
- Unity is seen as a “batteries included” ecosystem: editor, tools, asset store, multi‑platform support, and well‑worn game patterns all in one place.
- Large LOC reduction (Rust/Bevy → C#/Unity) is attributed mostly to:
- Eliminating hand‑rolled engine/ECS code.
- Using Unity’s built‑in systems, editor workflows, and asset tooling.
- C# is praised as:
- Highly productive, with a rich standard library and first‑party frameworks.
- Stable over decades, which yields tons of good documentation and makes LLM help reliable.
- Having strong metaprogramming (reflection, expression trees, source generators) that kills boilerplate.
Rust in Gamedev: Promise vs. Pain
- Several devs report “fighting the language” for gameplay logic: ownership/borrowing feels like mental overhead when iterating rapidly on mechanics.
- Others counter that Bevy’s ECS largely hides borrow‑checker pain and that they’ve shipped student games in Bevy without trouble; they see the main blockers as missing engine features, not Rust itself.
- Console/platform constraints (e.g. Sony toolchain requirements) and need for modding/ABIs are raised as practical reasons Rust engines lag behind established ones.
Ecosystem Maturity and Churn
- Broader Rust criticism: lots of 0.x crates, frequent breaking changes, abandoned libraries; this is especially acute in graphics, GUI, and game engines.
- Defenders note that many non‑gamedev Rust ecosystems (web backends, CLI tools, infra) are already very stable and productive.
Iteration Speed, Scripting, and Engine Choice
- Commenters emphasize that indie game success depends more on quick iteration, content, and tooling than on raw language performance.
- Common pattern recommended: engine/core in a systems language (C++/Rust), gameplay and modding in a higher‑level scripting language (Lua, C#, GDScript).
- Several people say Unity/Godot/Unreal are simply safer bets: you’re making a game, not an engine.
LLMs as a New Selection Pressure
- The author’s reliance on AI help resonates with others: mainstream stacks (C#/Unity, JavaScript, etc.) get far better LLM support than fast‑moving, niche frameworks like Bevy.
- Some worry this will discourage adoption of new languages and frameworks; others see it as just an extension of the old “use boring, well‑documented tech” rule.