Mia: So, we're diving into this whole saga of why you guys bailed on Rust and Bevy, and jumped ship to Unity for Architect of Ruin. That sounds like a huge pivot. What was the initial spark?
Mars: Yeah, it was a pretty big decision. At first, Bevy and Rust seemed perfect. We were all hyped on Rust's memory safety, and Bevy's Entity Component System (ECS) felt super modern. Plus, the community was awesome, the documentation was getting better... it was like a fairytale.
Mia: I figured as much, knowing your love for Rust. So, where did the fairytale turn into a nightmare?
Mars: Well, about a year in, we kept running into what I call emergent problems. The big one was collaboration. Our project lead, my brother, had never touched game dev and barely knew Rust. Trying to teach him all the quirky Rust stuff on top of game logic was a massive drag.
Mia: Ouch, that sounds rough. Like trying to teach someone to juggle chainsaws while riding a unicycle?
Mars: Exactly! And because Rust is so low-level, just prototyping simple gameplay ideas felt like writing assembly code. We just wanted to throw together some fun mechanics, fast! It felt like we were building a cathedral instead of a lemonade stand..
Mia: So, you couldn't iterate quickly?
Mars: No way; it was more like trying to build a mansion out of Lego bricks, you know? Rapid iteration was a huge pain. And Bevy itself was constantly changing—APIs would break, and we'd spend ages chasing down these tiny regressions. Then, one day, a sprite renderer bug cropped up, and that was it; we were done.
Mia: API changes always seem to hit at the worst possible moment, eh? Were there other issues?
Mars: Oh yeah, tons. The AI tools and autocomplete hated the constantly shifting APIs, which made debugging a nightmare. And modding? Forget about it! Rust's unstable ABI made creating scripted mods practically impossible. It was a house of cards.
Mia: Got it. So, things were starting to fall apart. But why Unity? I thought you'd sworn it off after all the pricing craziness, and I always thought C# was too clunky for 2D.
Mars: We pretty much did write it off, yeah. But then, we sat down and did a proper cost-benefit analysis, you know? We looked at Unreal, Unity, Godot, sticking with Bevy, even rolling our own engine from scratch. We scored each one on collaboration, abstraction, migration, ease of learning, modding... And Unity just blew everything else out of the water.
Mia: Interesting. Did you just blindly trust the spreadsheet?
Mars: No way. We set aside 10% of our time - about three weeks - and focused on three key features in Unity: tilemaps, character skeletons with Spine, and a moddable UI using Noesis.
Mia: And...? Let me guess, you cruised through it?
Mars: Dude, it was insane. All three tasks were done in three *days*. One day for the tilemap, one day for the menu and HUD in Noesis, and one day for hooking up Spine. My brother, who had never touched C#, was coding by the second day!
Mia: Wow. So, you had a proof of concept – what then?
Mars: The next six weeks, we migrated everything. The code got cleaner, the gameplay systems were less verbose, maintaining it all became way easier. And no more freaking out over engine updates! You know – Unity is a stable ecosystem so we had constant progress.
Mia: And were there pre-built tools?
Mars: A ton! A* Pathfinding Project, asset store plugins. The only true problem was localisation.
Mia: So what’s the take away?
Mars: Well, we learnt burning some time upfront gave great results – burn time to earn time. Unity isn’t perfect, but for our needs, speed and moddability it is so much better. We still respect Rust and Bevy, but ‘Architecht of Ruin’ looks so much brighter in C#!
Mia: Sounds like a tough decision, but clearly the right one for your team. Thanks for sharing, it has been nice unpacking it!