Recently, I finished Lies of P and absolutely loved it. I loved it so much that I decided to make my own game with similar gameplay. But how would I do that? I first had to choose an engine, and I wanted it to be 3D, so my options were Unreal, Unity, and Godot. Godot was the only completely free option, so I went with that, and I’m glad I did.
Godot is a completely free and open source game engine, and unlike most open-source alternatives to massive corporate software, it’s a real alternative that has a nice UI. Because it’s open-source, you take 100% of the profits your game makes and don’t even have to mention it was made in Godot if you want. Godot is becoming increasingly popular after a recent Unity controversy involving pricing. Some games that were made in Godot are Your Only Move is HUSTLE, Brotato, and WEBFISHING.
Godot has a great, customizable UI similar to Unity, but with an overall cleaner interface. There are four main tabs you can use in Godot: 2D, 3D, Script, and Asset Library. 2D and 3D are for editing 2D and 3D scenes in your game, Script is for writing the code, and Asset Library is where you can install plugins for Godot, like different physics engines and other tools. Speaking of scenes, they’re like the individual pieces of a game, like the player, enemies, weapons, the world, etc. Inside these scenes are nodes, which could be meshes, collisions, or sound effect controllers to name a few. There are also three different types of nodes: 2D, 3D, and Control. 2D and 3D are self explanatory, but Control is a bit different. You could make a 2D scene for the UI of the game, but Control is built specifically for UI like the HUD and main menu.
By far my favorite part of Godot is its built-in script editor. In other game engines, you would have to bring your own code editor like VS Code to have a good experience, but with Godot, it’s built right into the game engine. You can attach a script to any node in Godot and have the script control it with functions. To declare a function in Godot, you just put func function_name_here(parameters_here)
in the script and it runs whenever you call it. Godot also has built-in functions for things like physics and input, and those run every frame. For optimization, I made functions for actions like rolling, attacking, and blocking outside of the physics function so they would only run when needed.
Godot is, in my opinion, the best game engine for indie games and projects. It’s robust, open-source, and all the other buzz words, minus AI. Being an open-source project though, there are AI extensions if you want worse code written for you instead of just writing it yourself. Godot has a low enough skill floor to be the easiest engine to learn other than Scratch, and I expect it to keep growing as the userbase grows.
Leave a Reply