The Aspen's Devlog

The backstory with me and Godot Engine

The game engine of the project


How I found Godot?

The first time I ever heard of Godot Engine was when I was studying at the Kajaani University of Applied Sciences (referred to as "university" later in the text.) and I was searching for a game engine for mobile development on the internet. Basically, I just accidentally found the engine by browsing, and something just got me when I opened Godot's website. At that time, the newest Godot version was 2.1.

I downloaded the engine when I got back home and started studying it a little bit. I found the first tutorial in the official documentation; if I remember correctly, it was some sort of pong game. I made the tutorial, and already I noticed how simple GDScript was to understand and the whole hierarchy of the game objects in the process. At least back then, I had issues understanding how every object communicates through the game engine and how I, for example, trigger an event from another object to another. With Godot and its tree-like hierarchy, it was very easy to understand the relationships.

Also, the engine was very easy and fast to install and get up and running. In the university, we mostly use Unity or Unreal Engine, and Unreal Engine took ages to install from scratch. Of course, Godot was in a very early stage back then, and you could not do very complex games with it compared to Unity or UE.

The time passed, and when it was time for my thesis work, I decided to do it with Godot Engine 3.0. The thesis name was "2D game development with Godot Engine" Back then, I did a simple game demo; it was an RPG game that took lots of influences from the first Zelda from Nintendo 8-bit. Basic movement, fighting, inventory, and very simple enemies. I also added a dialogue system from scratch, and that was kind of a mess. If you are interested in the code base (I don't recommend using it as a reference or as is in the real project!), it can be found on GitHub

Thesis project Overall scene

Hit animation Fighting scene

That was the time when I really got into the Godot Engine. Godot 3.0 was a very advanced engine compared to 2.1. and again, it was much lighter than Unity or Unreal Engine. Simple to use—that was and still is my favorite thing in Godot.

Choosing the game engine

When I restarted the Star Defender project, I had to make a hard decision. The original project was started with the Godot 3.x version; I can't remember which one, but Godot has already released the 4.0 version (and also 4.1, but that engine has just been released, and I think it is a bit risky to select an engine version that has just come out.). Which, of course, has some advantages over graphics and many other things. In the first post, I mentioned the horror game project that I have started; that one was created with the Godot 3.x version, but I imported to the 4.0 version at some point. And... that did not go so smoothly.

I had to reconnect all signals, which itself was a huge manual labor, but some function names, parameters, or return values had changed too. So there was plenty of work, even if the project wasn't that huge. Major engine changes usually take some import work for your project, and that switch from Godot 3.5 to 4.0 was not that bad, but extra work is always extra work.

So with that import experience in mind, I thought it was best to keep up with the 3.5, and it has long-term support anyway.

For now, 3.5. is more reliable and stable compared to 4.0. On Linux, I have gotten some random crashes on 3.5., but nothing major there either. The game that I do is very simple in the graphical sense, so I do not need the fancier graphical systems that Godot 4.0 has. Which again takes us to that 3.5. is a bit lighter game engine, and I like game engine runs smoothly. Of course, the experience I gained doing my thesis helped the selection too. I could go with 3.5, which uses the same functions, or go with Godot 4.0, which has changed some functions working logic. Nothing major, but all the little errors or problems could be caused by the wrongly used function (which has worked before) and therefore slow down the project.

A little disclaimer

When I wrote this, I got the feeling that I'm saying that the 3.5. version is superior compared to the 4.0 version (or any 4.x version), which it is not. I want to point out that these were just my personal opinions, not absolute facts. Godot 4.x has taken the engine in a good direction in general, so it is not a bad engine to be selected for your project if you decide so.

In the end

I think it was a pure coincidence that I ended up working with Godot. One internet search changed so many things. I used to prefer Unreal Engine when doing games (which is a good game engine too.), but today I use Godot for basically every game engine project I do.

Let's see what the future throws at us, but I'm pretty sure Godot is here to stay!

-Teemu, TheAspen

20.02.2024