Switching from Unreal Engine to Godot: Why I Made the Change
It’s been about a month since I wrote a post explaining why I chose Unreal Engine 5 to develop my game. Now, after several frustrating months of trying to overcome engine-specific barriers, I’ve made the difficult decision to switch to Godot. It’s a bit embarrassing to admit this after all the time I spent learning Unreal, but some issues with the engine, particularly with 2D development, made it impossible to continue.
I want to clarify that I’ve been learning Unreal Engine for a few months, mostly for 3D game development, which Unreal excels at. There’s no doubt that for 3D, Unreal is one of the best engines out there—if not the best. However, when it comes to 2D games, the situation is entirely different. Unreal Engine has so many issues handling purely 2d games that make the engine impossible to use. Let me try and explainthe roadblocks I’ve faced over the past few months to better understand why I’ve decided to switch.
Camera Bounds
The biggest challenge I encountered from the beginning was the setup of camera boundaries. While most top-down 2D games don’t require strict camera bounds, it’s a crucial part of my game’s design. I searched everywhere but couldn’t find a ready-made solution for Unreal. For an experienced developer, this might be a manageable problem, but for someone like me, just starting, it was overwhelming. It took me nearly a month to create camera bounds, and even then, I only managed it after finding a 3D tutorial and adapting it to my 2D game—a painful process. What's worse is that these bounds don't work properly in smaller locations where there's not much room. The camera loses focus and makes the game look bad.
Texture Handling & Sorting
Another major hurdle was handling textures. In Unreal, creating translucent textures for 2D sprites often leads to bugs, with sprites disappearing entirely. You won’t find this issue mentioned in YouTube tutorials. The recommended fix—switching to masked materials—solves some problems but ruins the ability to sort textures properly. I had to develop a workaround by layering sprites and adding triggers to toggle visibility based on their position. It worked, but applying this to every single background was incredibly time-consuming. For other engines, this is default behavior that comes out of the box since it's so commonly used.
Texture Flickering, Pixel Warping, and Jagged Lines: My Breaking Point
The final straw came with texture flickering and jagged lines. For over a week, I’ve been stuck trying to fix an issue where my backgrounds, which are hand-drawn, look fine in the editor but become distorted and uneven when I build the game. I’ve tried everything—changing filters, tweaking settings—but nothing has worked. This pushed me to reconsider whether Unreal Engine was right for my project.
Why Godot?
Given the struggles I’ve had with Unreal Engine and the fact that most of these issues don’t exist in other 2D-focused engines, I decided it was time to make the switch to Godot. Here’s why:
- Collaboration: Many of the people I collaborate with are already using Godot. If I run into trouble, they can help me much more easily than if I stick with Unreal.
- Resources: The resources available for 2D games in Godot are far more extensive. Even if I can’t find an exact match for my problem, the knowledge from other engines like Unity is often transferable to Godot—something I couldn’t do with Unreal.
- Indie-Friendly YouTubers: Godot has a growing presence in the indie game community, with several YouTube channels that highlight unique, artistic games—exactly the type of attention I’d like my game to attract.
- Upcoming Console Support: Godot will soon have full console support, and its pricing is accessible for indie developers who want to port their games to multiple platforms. This was a deal breaker for me before.
- Community: The Godot community is very supportive and quick to offer solutions and advice, which is essential for a beginner like me. While Unreal’s community is large, the vast range of projects and edge cases make it harder to get specific advice.
In conclusion, I probably should have followed the advice of other developers and chosen an engine like Godot from the start. Unreal Engine is a fantastic tool, and I’d definitely return to it for 3D projects in the future. But for now, I need to take a different path and focus on completing my game in an engine better suited to my needs. It may come with delays, but I’m confident it’s the right choice.
Comments
Post a Comment