Godot Engine

2021-03-29 : previous : next : index


Learning to make a game is a great experience that everyone should try at least once. And if you are not sure where to start, Godot Engine is a good place.

I started playing more video games like many other people during the pandemic, but after the last one, I thought I needed to do something more productive, and making games felt like the logical next step after playing games. With the tools available today, the game making experience is not too different from one of those building type games such as SimCity, except you draw all the graphics and code all the game logic. Actually you don't need to draw or code anything either if you are using specialized software such as Mario Maker, but that to me feels too much like playing games and not enough like making one. I was looking for a more generic game engine, and Godot was one recommended by a coworker who had game development experience.

Before commenting on Godot specifically, I should note that there are great benefits to using an existing game engine rather than building your own game completely from scratch. You would be giving up control over some details that might enable certain types of games, and you might be fighting the game engine because you have a different idea on how things should work. But once you start using an existing game engine, you will realize that there are lots of interesting aspects to making games that are pretty far ahead of those details, and you don't really want to spend your time solving the same problems that someone else already solved.

Godot is an engine that solves a lot of problems, including familiar problems such as drawing and animating sprites. I was definitely expecting a game engine to do a good job at drawing stuff (at least), and Godot provided many tools to make that a smooth experience, including a very capable multi-track animation tool. One thing I especially like is how most parameters can be tweaked via click-and-drag, and also be adjusted with precision by typing numbers into text boxes. This precision is especially useful in games, since development often involve integer pixel units. I wish more graphics tools would come with text boxes.

The less familiar problems solved by Godot including stuff like physics interactions, deploying to WebAssembly, and how to pause a game. I was prepared to do the first two myself but it's nice that they were just a few clicks away. The pause bit though, that was something that I had not thought about at all and would have been tedious to weave that through all aspects of the game, but Godot has that built-in. Even for the physics bits, it's nice that Godot has built-in support for collision layers and masks, without which I might have made a very flat game not unlike the original Mario Bros. These are problems that I probably would not have noticed until much later into the development process, but many game developers have already solved these problems and made them features in game engines, and show us how to use them through extensive tutorials and examples. We stand on the shoulders of giants as we use these tools.

These features mentioned above are also available in Unity and Unreal engines, but Godot had at least two things going for it that made the difference for me: it had a very permissive MIT license, and it seemed more friendly for 2D games. Legal hurdles are real showstoppers that might have deterred me to pick a different hobby, so I was glad to find Godot's MIT license, which is roughly my favorite free software license. And the extra support for 2D was especially encouraging, since I was never keen in playing 3D games in the first place. Actually, my first impression of Unreal was that it's clearly targeted at commercial clients, and Unity was slightly better but wasn't exactly user friendly. Godot was definitely the most beginner and hobbyist friendly of the three, and comes with a reasonably complete set of tutorials. Godot was indeed the game engine I have been waiting for, and it was a good place to start.

Learning to make games gives you a new appreciation for games, in the same way that learning to play any musical instrument gives you a perspective on music. I have heard lots of horror stories about game development as a job, but as a hobby, it has definitely been a rewarding experience.


Previous (2021-01-15): Final Fantasy IX
Next (2021-07-12): ICFP 2021

Index

uguu...