The Godot game engine is an open-source software used for creating 2D and 3D video games. It ranks as the third most popular game engine, following Unity and Unreal Engine. Because it is open-source, there are no royalties, subscription fees, or any other payments required to use the engine.
The purpose of this article is to provide a general overview of this powerful software. We will cover the features that Godot offers to developers, the pros and cons of using the engine, and considerations for choosing it over a different game engine. The article concludes with answers to common questions about the engine.
This article is updated to reflect the Godot 4.0 version of the engine. You can download the latest version from the official Godot website at https://godotengine.org/download.
Main Features of the Godot Game Engine
The Godot game engine is a fully featured engine that provides a rich and diverse set of features for creating games. Although it is not as large and extensive as Unity or Unreal, Godot includes many features such as: 2D scenes, 3D scenes, animation tools, audio, file access services, input systems, physics engines, user interface system, networking, scripting, and many more.
Godot is Considered The Best When It Comes to 2D Scenes
Godot Features a Versatile and Efficient 3D Scene Builder
It provides features such as a material system, 3D lights and shadows, occlusion, grid maps, custom 3D shaders, mid-processing and post-processing effects, lightmaps, constructive solid geometry, procedurally generated geometry, 3D text, and more.
Creating Animations with Godot is Really Easy
The Godot editor contains several tools for creating animation sequences from individual images or sprite sheets / atlas images. The individual frames of the animation are easily defined in the editor. Additionally, the editor allows you to see the actual animation playing within the editor itself, without running your game.
If coding is not your strong suit, it also features an animation player and other nodes for visually defining your animations. This is also helpful for quick experimentation and iteration of different animations for your game.
Godot Supports Various Audio Formats and Playback Tools
You can manage audio streams, control sound using effects and equalizer parameters, and even record sound from your microphone.
Godot Features Robust File Access and File Encryption Services
Godot allows you to import and export data from the file system in a synchronous or asynchronous manner. It also provides APIs for using multiple threads to perform disk I/O operations.
In addition to the robust file access capabilities, Godot also features a user-friendly interface for reading and writing files with encryption. Using this feature, you provide a password, which encrypts and decrypts files, enabling you to store data on the disk without the risk of users attempting to outsmart and manipulate your game’s files.
For example, this mechanism can be used to build a save/load game system that writes and reads saved game files with encryption, preventing the player from directly editing the files and influencing the data in their favor.
The Input System in Godot is Easily Configurable for Almost Every Platform
Godot supports a wide range of controllers, including keyboards, mice, gamepads, joysticks, and other controllers. Godot’s clever ‘Input Action’ system allows you to define input actions, instead of direct controller inputs. Each action is mapped to a group of controller inputs. Using this method, you can define several controller inputs for the same action, removing the need to refer specifically to each controller type from the game’s code.
For example, a ‘Jump’ action can be defined in the project with several inputs mapped to it, including the ‘A’ key on the keyboard, the right mouse button, the ‘Up’ arrow button on a console controller, or a swipe up on a mobile device. Once defined, the game’s code does not need to know the specific controller input it has to use; it only refers to the ‘Jump’ action, and the engine takes care of the rest.
During game runtime, the underlying Godot engine code will recognize the platforms on which it is running and the connected controller, and will apply the predefined actions based on the correct controller type and user input.
Godot Includes Efficient 2D and 3D Physics Engines
Includes rigid-body physics, soft-body physics, kinematics, ray casting, 2D/3D collision detection, and physics interpolation, which runs the physics engine to match the speed of the engine.
Godot Has A Diverse User Interface System
Godot has a fully-featured user interface system, with built-in GUI elements such as buttons, labels, sliders, containers, progress bars, and many more UI elements. If that’s not enough, you can create your own user interface elements and customize their theme, layout, and functionality.
Godot’s Networking Capabilities Allows Developing Multiplayer Games
Enables online multiplayer games and web page access through WebSockets.
Godot Has Two Main Scripting Languages: GDScript and C#
Godot’s scripting system allows you to add logic and functionality to your game by writing code. The main language is GDScript, which is a unique language developed for the Godot engine (similar to Python). GDScript is so tightly integrated into the engine that you can define classes and objects to compile instantly and see immediate changes in the Godot editor, without running the actual game!
In addition to GDScript, the engine also supports the C# language. To use the C# language for your games, you will need to download the .NET version of Godot, which supports the code execution in C#.
Advantages of Using Godot Game Engine
1. It Includes a Large Set of Features
From basic scenes to the most complex nodes and data structures, Godot provides you with an extensive set of features that can be used to develop any type of game you wish to build. If you have never used a game engine, it might feel intimidating because there are so many buttons, options, and things to learn. But once you get the hang of it, you can create a masterpiece!
2. Download and Use Godot at no Cost
Godot is an open-source software with no fees, no membership payments, and definitely no cost per user installation. Simply download the engine and start building your games. Any revenue generated from selling games built using Godot goes to you (minus publishing platform fees, taxes, and other payments you might have to make). In contrast, some commercial engines charge fees for accessing advanced features or when you earn over a certain amount of revenue per year from selling a game.
3. Godot is an Open-Source Software
As Godot is open-source software, anyone can see, download, and change the source code of the engine. More and more companies and indie developers are taking existing code and adding the specific features they require for their games. If you have good programming knowledge and need to develop your own features, that’s also possible.
You could also remove code and systems from the Godot source code. This comes in handy in an area not many people talk about: exporting a project. Exporting a game from an engine (as opposed to compiling the game with the engine) will create an executable file that contains the entire engine’s internal logic in addition to the game. This is not ideal, as every game only uses a fraction of the features and functionality the engine provides. What is the point of exporting a full 3D engine with physics when you create a 2D animation-based game?
Removing the unneeded systems and compiling the Godot source code with partial code is not only possible but also quite common. It is called a Godot engine ‘template,’ which you can specify when exporting a project. Exporting a project this way will create a much smaller executable file and might sometimes improve the game’s performance. This is only possible due to the fact that the engine’s code is completely free and open-source.
You can even contribute to Godot by helping develop the engine, fixing bugs, and writing documentation. This is a great way to quickly learn game engine development. You can read more at https://docs.godotengine.org/en/stable/community/contributing/index.html.
4. It has a Large and Dedicated Community
Many people worldwide use the Godot engine to develop games. There are various forums, such as Godot’s Community Forum, Reddit pages, and more, where you can always ask questions if you’re having trouble, especially in the beginning.
Following the Unity pay-per-install debacle, a large number of developers and game studios switched from Unity to Godot. I suppose that after such a painful experience, developers are willing to pivot drastically and opt for the free engine, even if it means learning and building everything from scratch.
5. Godot is a Very Lightweight and Fast Engine
The engine is highly optimized and lightweight, so your PC will not overheat when running it, unlike other engines that might cause your PC to catch fire. Loading, saving, and running projects is extremely fast in the Godot editor, which is quite surprising considering that Godot is a large-scale and complex software. The efficiency of the engine is remarkably high, and the developers should get a ‘Most efficient game engine ever made’ medal if such a thing existed.
6. Proprietary Scripting Language: GDScript is Simple and Robust
The official scripting language of Godot is GDScript, a simple scripting language similar to Python and designed specifically for the engine. The benefit is that it’s very easy to learn, even if you don’t have years of programming experience.
Another great thing about it is that it’s tightly coupled with the Godot editor. In fact, it is so tightly coupled that you can define scripts as a ‘tool’, and they will be compiled and executed instantly in the editor. You can actually see the script’s result without running the entire game! This might not sound like a big deal, but for large games, this can save you a lot of waiting time, playing time and frustration.
7. Detailed Documentation of All Features The Engine Offers
There is a large database of documentation, including explanations of the inner mechanics of the engine, as well as details of each feature and object you can use in your code. Read more here: https://docs.godotengine.org/en/stable/getting_started/introduction/index.html.
8. Many Example Projects To Learn From
Example projects are available to get you started. You can easily download and play example projects through the Godot application to get a feel for the engine’s capabilities.
Disadvantages of Using Godot Game Engine
1. The Godot Engine is a Complex Software
The engine is a full-scale game engine application with many basic and advanced features. It may be overwhelming if you have never used a game engine before or if you don’t have programming skills. Every game engine has its own way of structuring scenes and implementing code, so knowledge from other engines may not be transferable. The engine’s complexity can be mitigated by the detailed and clear documentation. If you still need help, you can always reach out to the community and ask any questions you may have.
2. The Godot Asset / Plugin Market is Relatively Small, Compared to Other Engines
Godot has several small asset libraries and marketplaces that seem to be growing at a good rate. However, the assets appear to be too simple for serious games, but that’s just my view. There are some exceptions to this, but they can cost several tens of dollars, which, in my opinion, is relatively expensive. You can check out the assets at: Godot’s Official Asset Library, godotassetlibrary.com, godotmarketplace.com and godotassetstore.org.
3. Limited Support for Some Platforms
Godot does not support most console platforms, such as PlayStation, Xbox, and Nintendo Switch. It only supports Steam Deck. This is because Godot is an open-source and free-to-use engine and cannot develop for consoles without being licensed as a company or integrate the development tools and code of a paid service under an open-source license. If you need to port your game to another platform, you can always pay a third-party to do so. For more information, go to https://docs.godotengine.org/en/stable/tutorials/platform/consoles.html.
Considerations for Using Godot Game Engine
1. Game Engine Experience
Do you have experience working with game engines? If not, you might want to consider using a simpler tool like GameMaker. You can set up a project in GameMaker very quickly and test your prototype. Please note that an engine like Unity has vastly more video and written tutorials than Godot or GameMaker, so you might want to explore the tutorials available for the engine you choose. On the other hand, if you are experienced, Godot might be a good fit.
2. Programming Knowledge
GDScript is easy to learn if you have a basic knowledge of programming. You can also use C# if you wish. But if you don’t have any programming experience, you might want to use a visual scripting tool at first, to help you generate the code for your game. Unfortunately, visual scripting was removed in Godot 4.
If programming is your pain point, I recommend you check out GameMaker’s visual scripting, as its drag-and-drop simple user interface is a great introduction to programming. Using GameMaker’s visual scripting tools, you can see the graphic representation of the game logic and the underlying code generated by the software.
3. Required Features
Godot has many basic and advanced features, but sometimes it’s just not enough. You need to consider whether the existing features within Godot satisfy the requirements of your game. If they don’t, you might be better off using a more mature engine like Unity or Unreal.
4. Cost and Budget
Godot is free, while other game engines might cost several hundred dollars per month for a license. I advise you to check the licensing fees and other costs of all relevant game engines and compare. If you have funding to spend on a more advanced engine, go for it. But if not, Godot is completely free.
5. Time Investment
How much time do you have to learn a new programming language? Do you have time to learn all the features and functionality of a new engine? If you have the time, go for it and learn everything from scratch. But for most people, they don’t have the time to learn so many new skills. My recommendation is to leverage the skills you already have to create your game.
If you already know C#, you can use the C# version of Godot. If you already know how to use a different game engine, use that instead of practicing on a new engine. Don’t forget that making good games takes a lot of time, so don’t waste time by acquiring unnecessary skills that won’t serve your purpose.
6. Performance and Graphics Requirements
Many modern games have very high performance requirements which are not possible in Godot or any commercial game engine for that matter. That’s why the largest and most complex games are made with proprietary engines developed in-house. For example, Half-Life 2 and the Portal series were made with the “Source” game engine developed by Valve. But if you’re looking for high-performance games, your best bet will be to use Unreal since it has the most advanced rendering engine, and you can use C++ for scripting, which is far and away the best language for high performance.
The reason C++ is so high-performance is that the code is compiled and optimized to be very fast at runtime. In contrast, a language like GDscript, which is not compiled or optimized at all, will have to perform all written logic at runtime, causing performance degradation for complex games.
Most Common Questions About Godot Game Engine
If you still have questions, you can find some of the most common ones below.
Is Godot Engine Completely Free?
Yes, Godot is a free and open-source game engine. It can be downloaded and used for any purpose, whether it’s personal, non-profit, commercial, or otherwise. The Godot code can also be modified and distributed freely for any reason. However, with that said, you should always check the license of any software or asset you are taking from someone else.
You can see the latest version of the engine and download it from the official Godot website at https://godotengine.org/download.
What Platforms Does Godot Engine Support?
- Desktop: Windows, Linux and MacOS.
- Mobiles: iOS and Android.
- Web: using HTML5 and WebAssembly
- Console: Steam Deck
- AR & VR: Meta Quest, Valve Index, HTC Vive, Oculus Rift, all Microsoft MR headsets
Godot engine does not directly support deployment on consoles (excluding the Steam Deck) such as PlayStation, Xbox and Nintendo Switch. It is possible to port games from Godot to console using 3rd-party services.
What Scripting Languages Does Godot Game Engine Support?
- GDScript: A programming language designed specifically for Godot. It is object-oriented and interpreted, similar to Python.
- C#/.NET: A compiled language that manages memory internally. To use C# as the scripting language, you need to download the “Mono Version” of Godot engine, and an external IDE like VSCode to write your code.
- GDNative: A technology that allows the Godot engine to run custom C/C++ code and interact with shared libraries at runtime. This allows developers to write code in C/C++ without recompiling the entire engine. There are also unofficial languages developed by the Godot community that you can use. For more information on GDNative, please visit https://docs.godotengine.org/en/stable/tutorials/scripting/gdnative/index.html.
Does Godot Game Engine Have a Visual Scripting Tool?
Godot 3 supported visual scripting, but it was removed when the engine’s code was redesigned for Godot 4. If you are still using Godot 3, you can generate code by visually building and connecting blocks that represent the logic of your code. The visual scripting feature may be reimplemented as an extension in the next versions of Godot.
Can You Import 3D Models From Blender to Godot?
Yes. Godot supports several file formats which you can use to import 3D models from Blender: dae (Collada), glTF 2.0 and obj (Wavefront). In addition it is possible to use FBX and ESCN formats with a specific plugin for each format. You can read more here: https://docs.godotengine.org/en/stable/tutorials/assets_pipeline/importing_scenes.html.
Godot is a great game engine for both beginners who are willing to invest the time to learn it and experts building and selling full games. It has an extensive set of features, allowing you to create 2D and 3D games in various genres. I recommend trying and experimenting with it just to get a feel of the process of making games. The thing I like most about it is that it’s lightweight (a single file for the entire application) and very fast, yet it is very robust in terms of features and functionality.
I hope you found this article informative and helpful. To learn more about game engines and game development, continue reading at Night Quest Games Blog. Good luck!