Hello Ducklings!
It's been almost a year since we've last posted on this blog. In our previous post, Game Engine Drama, we revealed that the team was swapping over from the Unity Game Engine to the open source alternative, Godot. For the past year, the team has been working to move all of our core systems over from Unity (C#) to Godot (GDScript) and learn about the engine in the process. Now I think it's time to discuss what we've learned after a year in Godot.
New Engine, New Me
Our UI/UX team member, Mickey, talks a lot about how much he's loving the Theme system. It enforces a consistent style through out the project regardless of who's creating the UI/UX. This has helped speed up the process in creating UI without having to generate "prefabs" or in this case extra nodes just to hold a particular button. There were some hurdles at the beginning learning the differences between how Unity's Engine interface is set up compared to Godot.
Mickey's Pros
Themes are a powerful UI/UX tool to maintain consistency within a project easily.
Tiling textures are easier to set up and maintain than in Unity
Intuitive Sprite editor
Don't have to use a "weird html editor" to implement responsive GUI
Mickey's Cons
Missing the Shader Node system in Unity
Missing utilities from the Package Manager/Asset Store Unity provides
Godot's Engine GUI is more cumbersome to manage and at times makes it difficult to find elements within the Inspector.
Our Software Architect, Joe, talks a lot about GDScript and how it has a lot of built in functionality that has made implementing Game Specific Systems easier. However, there will always be differences between scripting languages and non-scripting languages. Some of these differences are more strongly felt which has caused pain points. Regardless, Joe has come forward stating that he actually prefers working in Godot for our current project.
Joe's Pros
GDScript is easy to learn, runs quick, and has a lot of built in support for standard game processes that Unity lacks.
Godot was faster to learn and understand for a non-art focused person.
Godot's documentation is all accessible in Engine without opening an external window.
Godot generates documentation for your scripts based on comment markup which saves us a ton of time.
Joe's Cons
GDScript is not strongly typed and is purely scripting which has it's own limitations.
Debugging could be better.
Hooking into external IDEs is not easily accomplished or supported.
And lastly, Me Myself & I, feel that the transition to Godot has overall been positive. The benefits of having people who actively use the tool contribute to it (Open Source) are easily apparent. There are methods we had to manually code in Unity that are simply a checkbox and built-in to certain nodes within Godot. For example, Godot has a built in method called move_and_slide that handles all movement calculations while considering whether the user is grounded or floating. You simply have to set a velocity and it will handle moving the character. There are built in methods for checking if a characters is against a wall, on a floor, or on the ceiling. No more manual ray casting! There are a lot of processes that we no longer have to manually calculate. Godot also launches projects within record time because of how lightweight the engine is.
Amanda's Pros
Built in functions reduce how many manual calculations the team has to do
Lightweight engine allows for launching the project quickly
Access to engine code to write in depth tools and pipeline assists
Signal System is an easy way to learn how to utilize events without requiring an entire manager built up for it.
Amanda's Cons
No asset store for support or income generation
No official SDKs for common third-party tools to implement their functionality within Godot.
In the End...
Overall the team has been pleasantly surprised with Godot. While there are limitations with the scripting language and it has less support due to it's lack of industry support, Godot has solid foundations. It truly does feel like it's built by people actively utilizing the tool and well...it is since it's Open Sourced. Because of this, learning a whole new engine and new language on top of it has been exciting and not as frustrating as initially feared! As of today, all of our core systems that were in Unity have been fully transitioned or replaced within Godot. We've even made progress further within this year than we had in Unity. Overall this switch has been beneficial to the team and a pleasant change.
Hope to have more for you all next time and as always thanks for the support!
Madame Evil
Comments