Lets talk game engines!
Before we start I want to add a disclaimer that this post is a mixture of facts and my opinion. I’m sure there is going to be a number of people which don’t agree with me or have a different view but I’m not looking to write to be challenged (happy to be corrected though).
So Unity is one of the most popular engines out there, many commercial and indie games have been created with this engine. It comes with a full GUI interface for both 2D and 3D, an asset store (with both free and paid assets) and uses C# for scripts.
The engine itself is a commercially licensed engine from Unity Technologies. It is free to use up to a certain level (Personal).
The engine itself can be downloaded from their website https://unity.com/, it can take a while to download as it is a reasonable size.
- It is one of the most widely used engines out there.
- It has a full large development team and company behind it.
- One of the largest asset stores out there with both free and paid assets.
- You can extend the editor itself by creating assets or downloading them.
- Lot of built-in editor tools.
- Support for both 2D & 3D games.
- There are a crazy number of tutorials out there as it is a so well used engine, plus a number of built-in getting started tutorials.
- C# scripting (a well know language) – need to do some learning then try freeCodeCamp.
- You can easily overuse assets meaning you end up developing less yourself and plugging in pieces which other have written. To me this is a con but for others it might make it easier.
- The engine is extendable but you can paint yourself into a corner if you find it can’t do something which you need (but this tends to be rare and you can write extensions to a certain extent).
- Load times are pretty slow, well maybe if you have a great PC it isn’t but I have a reasonable spec gaming PC and it can take a while. The more assets/plugins you have the longer it is going to take.
- Building and running your game also can be a bit slow, you hit play and then have to wait a while before you can start playing.
I obviously like this engine as my friends are now starting to see me as the guy which comes round and wont stop going on about it. Godot is a free and open-source game engine (MIT license) which has been created by developers for developers. It was initially released in February 2014 and has just picked up more momentum since the word go (no pun intended).
The engine itself is on GitHub and is written in C++, it has a full UI experience (including a code editor for GDScript, more to come on that later). It does have an asset store with only free assets but compared to Unity they are very limited. New tools are being added to the engine all the time by the developers and there is both full support for 2D and 3D games.
GDScript and more…
So to quote from the Godot docs:
GDScript is a high-level, dynamically typed programming language used to create content. It uses a syntax similar to Python (blocks are indent-based and many keywords are similar). Its goal is to be optimized for and tightly integrated with Godot Engine, allowing great flexibility for content creation and integration.https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_basics.html
You can edit GDScript right inside the editor, or you can use a number of external editors (e.g. VSCode). I’ve tried both and have found editing in the game engine itself is my preference and the IDE is pretty good. Want to see how simple it is with a hello world example, then head over to our hello world post.
You might be thinking, “GDScript not another language to learn” and that was my thinking first and was what put me off using the engine at first. If you can develop in Python then you’ll be right at home. Obviously there are differences but a lot of the syntax is shared. Don’t “do” Python then you have a world of choice (one of the benefits of being created by developers), there are support for a lot of other languages on an ever growing list:
- C# (out of the box with the mono edition of the engine)
- any many more
The engine itself can be extended in C++ and you can create extensions. I haven’t found the need for this yet and am now sold on GDScript (I’m from a C# background with a smidge of Python).
Lets have a bit of a review:
- It has been written for games development by developers who are passionate. The engine has new features added all the time and there is a great support community.
- It’s free and I mean fully free forever. You don’t have to pay when you earn, no splash screen, you don’t even need to mention you used the engine but if I end up actually finishing a game I’d be happy to shout about it some more.
- GDScript is nice and simple but as I mentioned above it has support for many languages.
- The documentation is great and all examples are both in GDScript and C# (https://docs.godotengine.org/).
- The download size of the engine is tiny compared to others (go on, go get it https://godotengine.org/, no sign up required).
- The engine isn’t well known as Unity or Unreal so there are less tutorials out there but the list is ever growing as Godot becomes more popular.
- There isn’t the large asset store which comes with an engine like Unity, so if you don’t want to do code yourself then this isn’t the engine for you (but I see it as a part of fundamental development).
- I haven’t seen many big commercial games developed using the engine (please correct me if I am missing any).
- 3D support is a lot better than it use to be but there are still tools in development.
Only 2 Engines?
So you are probably wondering why have I only compared 2 engines and where is my review of Unreal, surely that is missing from the list? You would be right of course and I have missed some of the big and lesser known engines intentionally. Unlike some other blogs I have seen (or Vlogs) I will avoid writing about areas I don’t feel I have enough knowledge of. I haven’t tried out unreal and the need to use C++ has put me off, I have used other engines but never got that far with them and don’t feel comfortable giving them a review.
That said, I am interested in the differing engines out there so if you have any specific one you would like to rave about please do leave a comment with your thoughts. If you feel passionate enough then you are welcome to write it up, fire it over and I will make sure it is featured.