Going Godot

When I code for fun (versus for work), I like to pick up something esoteric and unlikely to be used in the workplace. Rarely would I make something for fun in C# or JavaScript, for example. But the video game in my spare time must see release. I don't want to toy around with something and throw it away, as I often do. While exploring game engines that allow me to use tools I am intimately familiar with, I came across Godot.


My first choice would have been Microsoft XNA., which is no longer maintained. There are forks of it floating around, like FNA. Then there is MonoGame, which is XNA ported over to the Mono runtime and framework. I got the feeling that development for these frameworks is in some disarray, and decided to move on.

Unity 3D: $$$

Then there was Unity 3D. That presented as a pretty good solution. Familiar tools, although with a hard dependency on Mono. Out of the box however, you aren't given the sort of tools you'd expect to see in Unity 3D. A lot of games are made by combining plug-ins to get to the (admittedly) impressive end result. These plug-ins are often encumbered under some commercial license. I am old fashioned, and prefer to lean on open-source or Free technologies. Besides, the goal with a first video game is to spend nothing on it, and see if it has any value on the market. I knew spending thousands of dollars on the platform, coupled with potential licensing fees, only to pay even more money for proprietary, commercial plug-ins (with potentially their own licensing fees) was going to get ridiculous. Everyone wants a piece of your pie.

Unreal + Crytech: $$$$

The Unreal and Crytech engines were pretty low on my list of considerations, especially given that they ask for money in the future. So they weren't under consideration. Maybe we'll use real-time ray tracing in the future. If that ever happens, I'd love to implement that myself! (Oh, and maybe in Rust...)


Ogre3D is a very solid choice, especially for folks who write C++ every day. But I wanted something with a faster concept-to-market velocity. Also, as an engine, it had to have some pretty solid 2D functionality.

Final Thoughts

Godot is free to use, has no licensing fees, and is open-source with a very permissive license. It has some pretty good documentation. You can even cobble together your game's interactivity without any coding. The biggest downside is GDScript, its very own scripting language. I don't particularly enjoy learning a new language that is only ever going to exist in a singular ecosystem, such as ActionScript. However it is an extremely easy to use language, so learning it wasn't an issue at all. You can always drop down into something Godot likes to call GDNative. (Documentation for that remains a little spotty, but if you're comfortable with C, you'll manage.) There already exist some repos for bindings to Rust, D, and C++. So you can imagine writing a plug-in that performs some expensive rendering operation in C++, and then making it available to GDScript and VisualScript.

#gamedev #videogame #gameengine