
ListenHub
0
4-29- Initially chose Bevy (Rust) for "Architect of Ruin" due to love for Rust and Bevy's ECS and community.
- Switched from Rust/Bevy to C#/Unity in January 2025 after about a year of development.
- Switching engines is a classic project killer, potentially causing nosedives in productivity and regressions.
- Despite positive experiences in Bevy (learning about Spine, custom render pipelines, good community), practical challenges emerged.
- Anticipated some challenges using an early-stage engine, but they "bit harder than expected."
- Emergent Problems:
- Collaboration: Difficult to onboard a new coder (brother) with Rust's unique aspects on top of game dev.
- Abstraction: Rust's low-level focus didn't suit rapid, high-level gameplay iteration. Desire to ship "fun gameplay" outweighed building with Rust.
- Migration: Bevy's rapid evolution caused API thrash with each update, leading to significant debugging effort due to common minor regressions in core systems. A specific sprite rendering issue was a tipping point.
- Learning: AI tools were less effective with rapidly changing Bevy/Rust compared to stable C#/Unity documentation.
- Modding: Concerns about Rust/Bevy limitations for modding (lack of scripting solution, unstable ABI).
- These factors (smoother collaboration, high-level abstraction, productivity, modding) led to a re-evaluation.
- Initially "disregarded Unity" due to past pricing crisis and assumptions about C# and 2D support.
- Did a cost-benefit analysis comparing Unreal, Unity, Godot, staying in Bevy, and rolling own engine based on criteria: Collaboration, Abstraction, Migration, Learning, Modding.
- An afternoon of research showed Unity scored high.
- Decided to run an experiment: spend 3 weeks (10% effort) on three core features in Unity to see if the other 90% port was worthwhile.
- Experiment features: Tilemap, Characters (Spine, customization), and UI (moddable, focused on Noesis).
- All three experimental tasks were completed in just 3 days.
- Tilemap implemented in one day; main menu and HUD implemented using Noesis the same week.
- Demonstrated a significant boost in the brother's ability to contribute quickly in Unity (never having written C# before).
- Finished rewriting remaining systems in C#/Unity over the next six weeks.
- Porting validated experimental findings: gameplay systems less verbose, code size shrank substantially, maintainability improved.
- Less update migration anxiety; progress was constant.
- Past three months of development in Unity have measurably improved day-to-day work, with faster iteration.
- Able to leverage ecosystem tools like A* Pathfinding Project.
- Localization is an unsolved area in Unity compared to Rust's Fluent.
- Key conclusions: Failed to fairly evaluate options initially; "burn time to earn time" - switching put them ahead; still respects Rust and Bevy but Unity was better for "Architect of Ruin"'s needs (collaboration, iteration speed, stable ecosystem, modding).
- Difficult decision, but put the project in a stronger position.