About nine months ago I found an interesting post on /r/gamedev about the Godot Game Engine. It was dubbed as an open source 2D/3D game engine. I thought to myself “What makes it difference from the thousands of open source game engines that are left abandoned?”. As I read through Godot’s website my question was answered. Godot is not a one-trick pony. Becoming productive in the engine did not take long, in fact, maybe it was two hours for me to learn the workflow and go through the documentation. As I worked with Godot I noticed the engine is really well thought out, because the engine was used to create many games by the original developers. This is great because Godot isn’t just a student project hacked up in a couple months, it has been used and tested for years in-house by Okam Studio.
So why am I using Godot for my next game?
The nearly all-in-one development environment that Godot provides is really impressive. The editor has a powerful animation tool for sprite sheet animation and cut out animations. I’m always surprised how many tools are built into the editor. The best thing about the editor is that it actually uses the engine to make the GUI and it’s really extendable. Making your own modifications to the editor is stupidly easy because the API is the same as the one you use for your own game in Godot.
Godot has an interesting idea of a scene graph. There are Nodes, which is the base object for games in Godot (think GameObject in Unity). Scenes are a collection of nodes, and what’s cool about Godot is that scenes can be instanced. When you get used to this workflow it feels really efficient and organized.
There’s no doubt that Godot has a smaller community than some of the more popular game engines. I didn’t jump on Godot as soon as I discovered it. I let the project simmer for a few months to see if the developers can stay active and improve it. I was pleasantly surprised at how much they improved the engine in less than four months. That’s when I knew the developers cared a lot about the project and the community was big on reporting bugs/issues.
Godot’s community may be small, but it’s active and extremely helpful. The lead developer is always open to merge pull requests and consider community feedback. I’ve made a couple of pull requests myself like fixing a couple bugs with the editor and adding functions. They usually get merged in no time. Godot really feels like a community effort, which ironically is rare in open source projects.
Godot’s 2D engine is truly impressive. It has shaders, 2D lighting, shadows, feature-packed Particle system, and Parallax layers. Everything feels extensible, and if I need more power I can always drop down to pure C++ which is great. Picking the right game engine for your game is hard, but for my next game I have found Godot to fit really well for my needs.