So I've tried to get into game programming for a long time; I even learnt programming by reading thru the code of gorillas.bas, though I didn't understand much of it
I tried and retried to get into games many times, and each time I realised the same thing: Making games is work. Hard work :) Plus, 10-15 years ago, the tools weren't very good.
What I wanted
Where I got stuck– I wanted to build 2d platformers (to start with), and the problems I hit with the different Python libraries were:
- Designing levels is hard. There is Tiled, a free tool, and it works great. But if you go beyond the simple stuff, things become mushy, documentation is hard to find. Arcade had the most examples with it but was unstable
- Things a player expects, like character animation, while possible, are not intuitive or easy.
- Physics support is basic, and you have to depend on more poorly documented libraries
- As you add more levels, enemies, hazards etc, the game becomes harder to manage
This may be because Python wasn't built for gaming; you can build simple games with it, and they are great. But if you want to build full-fledged games, it becomes hard, and I spent all my time fighting the gaming libraries.
Arcade could be the library that finally makes Python gaming easy and possible, but I found it too unstable, and the developers too eager to break backwards compatibility.
So I decided to move to a proper gaming tool. Unity was my first thought.
Why I didn't like Unity
Unity is the standard for professional gaming. Easier than Unreal, almost every game I play on my phone has the Made in Unity logo.
But I found Unity to be a big monster. Its user interface is big and ugly. Heck, even installing Unity is a full time job. I bought many paid courses for Unity, but every time came back overwhelmed with even how to start. The programming part (C#) is easy, but everything else around is complex and hard to understand.
Other game engines I looked at
I tried a few other game engines. They were either too basic, click and drag, or they were big commercial tools, complex like Unity. There was nothing to sell them over Unity, or even plain Python programming
Waiting for Godot...
Then I heard about Godot. It has a lot of enthusiastic proponents, and people were recommending it as an alternative to Unity.
Unlike Unity, Godot is:
- Super easy to install
- Very lightweight
- Free and open source
I particularly didn't care about the open source part, but many people prefer it for this reason.
And I'm not kidding about the easy install part– it's literally one 60MB file you unzip, and it just works! Compare to 6GB installers for Unity/Unreal. And because it is so small, it runs really fast, even on old machines.
Godot offers a good mix between programming and a graphical interface for planning levels etc. The programming language, GDScript, is very close to Python. About 80-90% similarish, so much so that Python developers can just start coding with little or no introduction.
The downside of Godot is: It isn't as popular as Unity, so fewer tutorials for it. But I found the few there are, are very good.
The quality of Godot tutorials more than makes up for lack of quantity
That said, if you go off the beaten track, or want to try advanced stuff, the lack of tutorials will haunt you, and you will need to go thru some half baked forum posts.
Also, Godot cannot currently target consoles like Playstation. At least, not directly, but there are consultancies that will port your games for you. That said, even with Unity, you now have to buy a commercial license to target many consoles.
Besides, as a beginner/hobbyist, I don't care about consoles. The big platforms– computers (Windows/Linux/Mac), Web (browsers) and phones (iPhone and Android) are covered by Godot.
Finally, 3d support isn't as great as Unity/Unreal, but that is less important to me as I'm starting with 2d games.
I tried Godot via a few free tutorials and paid courses, and love it. It makes it easy to create 2d platformers, which is what I was targeting.
In the next few blogs, I will be writing a few Godot tutorials. Click here to look at the Godot games tutorials.