HyperAI超神経
Back to Headlines

Why We Switched from Rust and Bevy to Unity for 'Architect of Ruin' Development

11時間前

In December 2023, the development of the game "Architect of Ruin" began using the Bevy game engine, powered by Rust. The initial choice was driven by a personal passion for Rust and the Bevy engine's Entity Component System (ECS) model, which offered flexibility and robustness. Moreover, the Bevy community provided valuable support and a vibrant atmosphere for game development. Significant progress was made, including the implementation of the tilemap, scene composition, character logic, and gameplay mechanics. During this period, the developer delved deeply into skeletal animation and custom render pipelines, enhancing their skills and contributing to various community crates. However, by January 2025, the project faced several critical challenges that necessitated a re-evaluation of the technology stack. These issues included: Collaboration: The project involved the developer's brother, who was new to coding. Navigating Rust’s nuances alongside game development proved to be a steep learning curve, slowing down his contributions and affecting the team's overall productivity. Abstraction: As the game's complexity grew, Rust's low-level focus hindered the rapid iteration and prototyping of high-level gameplay mechanics. The process became tedious, frustrating, and less efficient. Migration: Bevy's rapid development cycle led to frequent API changes, which required substantial time to migrate code. Minor bugs in core systems, such as sprite rendering, frequently interrupted progress and led to unexpected debugging sessions. Learning: With the rise of AI-assisted development, tools like Gemini provided highly relevant guidance for C# and Unity but lagged for Rust and Bevy. This reduced the developmental efficiency gained from using modern AI tools. Modding: Modding is essential for the game's design, and the developer, who started in the industry as a modder, found that Rust and Bevy lacked clear solutions for scripting and maintaining a stable Application Binary Interface (ABI). This uncertainty was particularly concerning for a game aiming to be highly moddable. These factors collectively indicated that continuing with Bevy and Rust would impede the project's progress and goals. Therefore, the team decided to conduct a cost-benefit analysis, considering options like Unreal, Godot, and rolling their own engine. Initially dismissing Unity due to perceptions of outdated C# and a recent pricing crisis, they revisited the engine to find it scoring high on crucial criteria. To test Unity’s feasibility, the team embarked on a three-week experiment, focusing on implementing three core features: the tilemap, character system, and user interface (UI). Surprisingly, they completed the initial tasks in just three days, achieving a functional tilemap, customized characters, and a basic UI setup. This rapid progress demonstrated significant improvements in productivity and ease of collaboration, especially for the developer's brother, who quickly adapted to C# despite having no prior experience. Based on the success of the experiment, the team decided to proceed with a full port to Unity. Over the next six weeks, they rewrote the remaining systems and content, validating the initial findings. The transition resulted in a more maintainable codebase, with a reduction in code verbosity primarily due to the elimination of ECS boilerplate. Development became smoother, and the team could leverage a stable and well-documented ecosystem, including tools like the AStar Pathfinding Project. Since switching to Unity, the team has experienced measurable improvements in day-to-day development. Iteration speeds have increased, enabling rapid testing and refinement of gameplay ideas. The developer also noted that while localization remains a challenge (as no equivalent to Rust's Fluent project exists in Unity), the overall benefits far outweigh this single issue. The team is now three months into the Unity development phase, and the project is on track to meet its ambitious goals. Industry insiders and developers alike acknowledge that such a significant switch can be risky, often derailing projects. However, the experience of the "Architect of Ruin" team shows that sometimes taking a step back can lead to significant forward progress. The developer's deep understanding of Rust and Bevy, coupled with their willingness to adopt new tools, highlights the importance of flexibility and pragmatism in game development. Unity’s mature ecosystem and C#’s accessibility have proven to be valuable assets, aligning well with the project's needs for smooth collaboration, rapid iteration, and robust modding support. For more updates and early builds of "Architect of Ruin," interested readers can join the project's newsletter to stay informed.

Related Links