EP. 0 — Introduction: Why Godot Engine, Why C#
List of episodes:
Many years have passed since my first attempts to develop a video game, I have tried many graphics engines, I have studied the documentation of each of them a lot, and this has led me to have the knowledge, albeit small, of many of the graphics engines that are used today for the development of most indie and non-indie titles.
Among all my wanderings, I tested:
- RPG Maker
- Unreal Engine
- Unity
- Defold
And finally, Godot.
We assume that Godot is not the perfect graphics engine, but it has many advantages, which are very important to me, and that made him my favorite.
Let’s start with some general information easily retrievable from the official site or from wikipedia.
Godot Engine is free and open-source, all development is community-driven since no company controls its evolution, and the primary sources of funding derived from donations through Patreon, or by companies such as Mozilla, Microsoft or Epic, which finance the development of certain engine functions.
All very clear so far, right? But why should I use Godot to develop my video games?
Over the years, as I said, I had tried different engines, with alternating results, I will try to write here, for each one of them the pros and cons that I found during their use. Still, I state that they are personal opinions, and some of them may also no longer be true, having spent some time since my tests.
RPG Maker
Pro: Simple and immediate to use. Anyone can develop their RPG, draw levels, create dialogues and battles without having to write a line of code, using a straightforward and intuitive interface.
Cons: It is explicitly designed for a specific purpose, the turn-based RPG development, so it is a waste of time trying to develop other types of games with it.
Honorable Mentions: To The Moon, there is little to say about one of the most touching experiences you can try in the world of video games.
Unreal Engine
Pro: Completely free, without the limitations of the free version of Unity. Also, the source code is available. Blueprints are great for rapid prototype development. Unreal is the only engine among all those on this list that is suitable for the development of AAA titles.
Cons: The first editions were developed to be the graphics engine of the Gears of War, therefore for the development of third-person fps, with the latest versions, it has become universal, even if it’s mainly oriented to 3D. If you want to develop in 2D, choose another game engine.
Honorable Mentions: Gears of War, Batman’s tetralogy, Fortnite, have you ever heard them? 😜 Seriously, there would be an endless list of indie and AAA titles developed with this engine.
Unity
Pro: It is practically the standard in the development of games by independent teams, increasingly used and requested by the industry, versatile, and highly supported. It has an almost infinite list of tutorials, video guides, and manuals. Furthermore, the use of C# is an excellent pro for me, being one of my favorite languages.
Cons: Unlike the other engines mentioned here, the free version, unfortunately, has some shortcomings, although honestly apart from the night mode, the others for an independent developer are not very important. The source code is not available, and, unless you pay for a pro version, you are forced to show the Unity splash page when the game starts, which is associated with low-quality games by many players.
Honorable Mentions: Hearthstone, Escape from Tarkov, Monument Valle, Hollow Knight, Cuphead, Pillars of Eternity.
Defold
Pro: Completely free, supported, and developed by King, a very active forum and a genuinely user-friendly community. The documentation, however small, is done very well, and there are examples for anything.
Cons: The pros are many, but the cons for me, even if few, are cumbersome. The main one is the use of Lua as a programming language, and I really can’t like it. It seemed excellent for a neophyte or a prototype, but not suitable for the development of complex games.
Honorable Mentions: It is the engine behind some of the most commercial successes in the mobile sector, the games by King, I would say that this is enough.
So why did you choose Godot?
Godot, as I said before, is both free and open source and is released with MIT license:
- If we need any missing function, we download the source code and adapt it to our will.
- We must never and will never have to pay a license to use or release a game.
- The developer community is very active, and it’s getting bigger and bigger
- It is cross-platform, and the deployment can be done to practically on all major platforms, and through third party services also on the console.
- It allows you to use C# and all the millions of libraries or tools developed for this language.
- The “Nodes” system is really intuitive and well done (we will deepen it in the next episodes)
Let’s talk about the two main programming languages with which it is possible to develop with Godot: GDScript and C#.
Using GDScript compared to C# makes sense for several reasons, indeed to get started and make your bones, I also recommend it because it has the following advantages:
- Easy to use and learn, everything we need to know to get started can be learned in one page of the official documentation.
- Designed and developed for Godot, it is inspired by Python, so if you already know it, you are ready to start.
- Support for this language has been funded by Epic for $250k, and therefore there will be dedicated developers to support and improve it for the next years.
- Most of the guides and tutorials are written in this language, and the same documentation mainly contains examples of code in GDScript.
So you think why a person should use C# over GDScript:
- C# is resellable, Unity as I said before, uses it as the primary(only?) programming language, and this means that it will be straightforward to switch from one graphics engine to another.
- C# has a practically immense bibliography, including books, courses, tutorials, and libraries already developed and easy to use.
- The C# developer community is much larger than the GDScript community, so for most problems, it is easy to find the solution, having someone already thought about it.
- In the development of simple games, GDScript is enough, but if we want to develop very advanced games, we need a more powerful, flexible language.
- The development tools are much more mature (we will see this in the next episode)
That said, if I managed to interest you, I invite you to read the next episode as soon as it is ready, in which we will talk about how to install and configure a development environment for Godot and C#.
See you!