This past month, my friend and colleague Yibo invited me to the latest Global Game Jam, at a site which was hosted by Microsoft in New York City. The Global Game Jam is a worldwide game-building hackathon, with hundreds of locations worldwide, and thousands of participants. There are several awards given for best games produced in popular game engines like Unity and Unreal, and games that make use of technologies like AR/VR or the Azure platform. Yibo had a lot of experience using Unity and Unreal, but he was interested in building a game using the open source engine, Godot.
Godot has been gaining a lot of popularity lately, especially amongst indie developers. It comes with a lot of tools out of the box, with it’s recent 3.0 release making it competitive with the other major game engines. It has support for both 2D and 3D and uses its own python-like language GDScript. It also supports C++, C#, and Visualscript. The engine is written in C++, completely open sourced, and uses a free and permissive MIT license.
I’ve tried personally to pick up the Unity engine a few times, but initially had some trouble embracing the component based architecture. Godot’s engine appeared to be much simpler by design, in which objects are nodes, and scenes are trees of nodes that can be reused and instanced within other scene objects. As a result, (at least for me) it was much easier to get the hang of the engine editor and its components. Having also spent a lot of time writing Python, the GDScript language was easy to pick up.
For the Jam, we decided on building a 2D top-down shooter. Having never made a game before, and with little preparation in practicing using the engine, I spent a lot of time learning and reading documentation and little time actually building the game. I was, however, able to contribute some of the functionality, including getting a character to move around using an XBox360 controller. I also built out the targeting system and set up the randomly generated tiling used for the world space within the game.
Overall it was a fun experience, but I don’t think the game is polished enough to share here in its entirety. I would have liked to build out a more complete game, so I should have spent more time preparing by learning the engine a bit more. Hopefully for the next jam I will have something more complete to show off.