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.