When you decide to build a game, you take on a daunting challenge. Which engine should you use to build it? The most important considerations will vary between users.
2D games are easier to work with since they use fewer dimensions. 3D games can create more immersive gaming experiences. Need custom tools to optimize development? Support varies in different engines.
Some engines can’t handle low-spec development computers. Others run only in a browser. Some only run on desktop, but require huge amounts of memory. Some are expensive, but powerful while others are free, but restrict your use with inflexible licensing terms.
One engine in particular stands above the rest: Godot Engine.
- It supports 2D and 3D games
- 2D games are a popular choice since Godot’s 2D editor uses pixels for units of measurement.
- 3D games use a nearly identical API as 2D games, and its 3D tools improve significantly with every release.
- The Godot Editor is itself built using Godot Engine. Writing tools is easy!
- It is not uncommon for people to use Godot to build general-purpose software, not just games.
- Godot Engine is free and open-source.
- You don’t have to pay anyone to use Godot, now or ever.
- No company can dictate what you can and cannot do with your products.
- The engine isn’t a blackbox. If something is unclear, and the docs are vague, then the source code can tell you exactly what is happening.
- Godot Engine is designed to run for as many communities as possible.
- It is a Linux-first platform. Both the editor and the runtime engine support it.
- The Godot Editor adapts comfortably to both large and small screens due to its dynamic, context-sensitive interface.
- Godot devs cater directly to developers who want to build games on low-spec machines.
- Godot can be run in a portable version on a flash drive.
- Godot is gaining support for RTL languages like Arabic and Hebrew, and even limited support for vertical rendering of languages such as Japanese.
- Godot is gaining a Web Editor for use in places where downloading the Editor is difficult such as educational contexts.
- Godot Engine supports a wide variety of scripting languages for different use cases.
- The official languages include GDScript, C#, VisualScript, C/C++ NativeScript, and PluginScript.
- Godot is a multi-platform engine.
- It supports desktop, mobile, and web platforms out-of-the-box.
- For information on the process of integrating console support, including how to get in touch with publisher’s for Godot projects, see the documentation.
- Godot Engine’s Node-Scene system is an intuitive and flexible API for building applications.
- Games are broken down into trees of Nodes where each Node has some effect on the world such as drawing a sprite or playing a sound.
- You can use the large library of built-in Godot nodes or create your own with scripts.
- Because games are just one big tree of nodes, changing your game’s structure is easy. Just move nodes around or reuse node trees (called “scenes”) in different places. Nodes provide a simple and elegant solution to game structures.
- Click here to read more about Godot’s features.
Despite the engine already having so much going for it, there are many more reasons to keep an eye on Godot this year, especially with Godot 4 coming soon.
What to look forward to in Godot 4
While previous versions of Godot were tailored for people working on a single screen, Godot 4 has been redesigned to support multiple windows across monitors. In the early stages, various docks within the editor can be popped out and moved to other screens. In the future, even core sections of the editor such as the 2D/3D editors, the ScriptEditor, and the Asset Library, could be viewed in separate monitors.
Godot’s new Vulkan Renderer brings Godot’s 3D and 2D rendering features up to the level of top-tier engines.
What’s more, the entire pipeline has been optimized for the best possible performance.
It includes new particle effect features including collision detection, sub-emitters, and attractors with the API split between CPU and GPU versions to support low and high-end devices respectively.
Ultimately, each particle is just a mesh, so they can be anything, even Suzanne monkey heads.
With 3D rendering, Godot is also getting a real-time global-illumination solution that competes with the likes of Unity and Unreal Engine 4. This means you’ll be able to get great-looking lighting and shadows out-of-the-box with minimal tweaking. The lights and shadows build automatically as you move around the world, even with volumetric fog effects!
Godot will automatically generate low-poly versions of imported models for improved performance with different levels of detail as they grow smaller in the camera view.
It has an improved FBX importer for 3D models, one of the most popular file types, and provides great support for the rising industry standard, glTF 2.0.
The new Vulkan renderer also provides a huge number of rendering enhancements:
var rd = RenderingDevice.create_local_device() # use rd to do all local drawing, compute, etc on any thread you want rd.free()
Godot 4 also grants low-level access to its Vulkan wrapper API, the RenderingDevice, to enable users to implement compute shaders and custom rendering pipelines.
(FYI: compute shaders offload large-scale processing tasks to the GPU for simulation-heavy games, etc.).
The Vulkan improvements have even extended to the 2D engine which has seen the inclusion of new features for improved masking/culling/grouping of textures, 2D materials, 2D lighting, and signed distance fields.
The 2D engine now also automatically batches all textures to reduce draw calls and render thousands of sprites instantly.
Godot 4 is redesigning its navigation systems to have a dedicated thread responsible for calculating, combining, and rebuilding navigation meshes dynamically. These are processed independently just like rendering, physics, and audio so that they do not interrupt the main engine application and its scripted logic.
This means that you can create different navigable spaces and automatically combine them together in real-time. Your game characters will then instantly adapt to the new physical structure of the landscape and update their movement accordingly!
Godot 4.0 will come with built-in tools to encrypt network communications between game instances so that you have better network security in the creation of online multiplayer games.
Tile Map Editor
Godot 4 is completely re-engineering the design of its Tile Editor to vastly improve its usability. The new system will enable the built-in editor to rival that of top-tier industry competitors such as Tiled.
Godot will be able to generate atlases automatically from spritesheets. Users can define collision and occlusion (lighting) regions for any given tile. Tiles can then span any contiguous arrangement of sprites within an atlas.
Planned features include user-defined settings for tiles and the ability to instantiate a scene of nodes as if it were a type of tile.
By combining multiple TileMap nodes together, users can easily create multiple layers of tiles for their game worlds.
Starting from last year, Godot Engine has had a quickly growing roster of large-scale financial support from leaders in the game development community, including…
- An Epic Megagrant for $250,000 for rendering and scripting features.
- An undisclosed grant from Facebook Reality Labs for OpenXR and other virtual reality features.
- A grant of $120,000 from Kefir.
Because all funds are handled by the Software Freedom Conservancy non-profit, everyone has a guarantee that the funds will be used to enhance the product for everyone in the Godot community.
As things stand, combined with Godot’s Patreon, Godot has been able to support a half-dozen developers and staff for the Godot project. That number is bound to rise as investors continue to bet on the growth of the game industry which has seen a sharp spike due to the COVID-19 pandemic.
Reasons to start with Godot now
Godot 4 is set to release some time in the latter half of 2021 (with an early beta expected in the summer). However, that’s no reason to sit tight. There are plenty of reasons to pick up Godot right now.
Godot is a good fit for those starting out with game development. Learning basic programming skills from another source is recommended, as the documentation builds on those. However, as an engine for engaging with game development concepts, it is incredibly intuitive and easy to use. The official docs also provide links to third-party tutorials and learning resources, including for complete programming beginners. The latest version of the getting started guide even directly links to free online academic programming courses for new game developers.
GDScript is as accessible as any game development language can get, and the Node system, with its colorful and visual manner of building content, makes creating game systems easy.
Godot Engine is a community-developed piece of software. Commercial business interests will never interfere with the integrity of your projects. Therefore, you can rest assured that all of your time, money, and sanity poured into a game won’t be for naught.
There is no unilateral service that all Godot users must register with in order to use the product. All other major game engines require you to…
- register an account with their services.
- agree to customized license agreements.
- access the software through a proprietary hub application.
- send usage reports of your activity to their servers.
In contrast, Godot makes no attempt to track who you are (1), hold the application hostage behind its licensing (2) or hub (3), or track what you do with it (4). It is a simple 27MB download that you can unpack and run immediately with no registration or installation.
Commercial projects’ attachment to licensing can also lead to troublesome uncertainties in the security and viability of your projects. The company behind your software can make decisions that prevent certain uses of its software out of nowhere. This can, in turn, have project-ending ramifications. If you’re lucky, the company may decide to backpedal such changes to avoid a public relations disaster, but in the end, you are completely subject to their whims as a commercial entity.
On the other hand, Godot has no stake in any commercial entity and focuses entirely on your success as a developer. It is impervious to all companies’ influence. All investment is returned immediately back to you and the rest of the community of developers.
The engine’s developers are experienced and responsible stewards of the project who ensure that only those features which users need are maintained in the project. This helps prevent excessive bloat accrued by other commercial applications which have financial obligations to support outdated systems and technologies.
Unreal Engine 4 and Unity are good examples of this. Every version of the Unreal Engine 4 editor and the Unity editor take around 12+GB, and they usually have multiple releases each year. On top of that, their features often require the use of external development tools such as Visual Studio and language compilers. At a high level, Godot Engine has a comparable feature set, and yet, the Godot Editor is less than 1% their size. Even with all export templates installed (to export to every possible platform it supports), Godot is only a few hundred Mb. According to the 2020 Godot Survey, almost all Godot games are built with languages that use built-in editors and runtimes with no dependency on external applications (GDScript 79.2%, VisualScript 1%). The tiny Godot binary is all you need to build a game.
Community, Learning, and Contributing
Because the engine is so small, and because it is open-source, the community is a very tight-knit, active group that helps everyone improve each other’s projects. Every Godot community creates a vibrant and helpful space that drives each member toward their own success.
The engine’s C++ code can be surprisingly readable as well, even to people who are only familiar with GDScript. Godot Engine users can develop their own programming ability in a clear progression from…
- Writing Godot games.
- Writing tool scripts.
- Writing tool script plugins for the Editor.
- Compiling Godot Engine.
- Evaluating how Godot C++ classes are bound to the scripting API they see in GDScript (names are bound to C++ methods in a
- Developing an intricate understanding of how the C++ engine works.
Anyone can take these steps to become able to understand how the software they use works, and how it can be modified to meet their needs.
As a result, many in the Godot community not only use but also build and maintain Godot. The number of contributors continues to rise quickly. In fact, roughly one-half of all people opening issues are also contributing code to Godot! The developers ensure that everyone contributing code follows a consistent style, and they encourage new users to participate in the project.
With so many people developing a deep level of understanding of the tools, don’t take the size of the Godot community for granted; it can provide much more support than one might initially expect. Contributors are often regulars in Godot Q&A spaces, so receiving feedback from experienced and knowledgeable users is commonplace.
As mentioned, each Godot community is invested in the betterment of their fellow developer. Every individual’s success leads to improved tools and assets for the whole community. This has lead to the growth of many community spaces for sharing assets, including:
- Public GitHub projects that are written in GDScript.
- The official Godot Demo Projects Repository that provides developers with example uses of its features.
- The official Godot Asset Library which hosts assets that the Godot Editor can directly download.
- The Godot Shaders website which hosts open-source shaders written in Godot’s ShaderScript. ShaderScript simplifies writing shader code and users can compile it dynamically on-the-fly.
It also has popular commercial entities that purposefully share their assets with the community:
- The GDQuest GitHub account. GDQuest is a commercial entity that crowdfunds paid-for tutorials that result in free and open-source code and assets available to everyone. The majority of GDQuest’s content can be found on its Youtube channel and website.
- The Godot Recipes site which sports a collection of snippets to help beginners.
Godot is Constantly Evolving
Godot carefully responds to user-feedback using a proposal system to decide what features, enhancements, and bug fixes are worked on next.
Let that sink in. It doesn’t proactively create features just to satisfy the whims of some of its users. Neither does Godot keep features around if they don’t contribute to the ideal usability and performance it aims for. Every aspect of the engine is constantly evaluated to see if it warrants inclusion or a redesign.
Godot releases major version changes (Godot 2, Godot 3, Godot 4, etc.) more often than its competitors, each with large-scale changes in their content to ensure that every version of Godot is a lean-mean-gamedevving machine. It isn’t afraid to change things up if it brings a better tomorrow for Godot developers everywhere.
Despite that, previous major versions regularly receive updates. Even Godot 2.1, released back in 2016, received a maintenance update in August of 2020 for its 2.1.7 release. Likewise, high-quality Godot 3.2 releases packed with backwards-compatible features pulled down from Godot 4 will continue to come out even after Godot 4’s release.
And because Godot 4 is inherently using the same Godot core, most things you will learn while trying out Godot 3 will be applicable in Godot 4 projects. If you always wait for the next version, you’ll never get started!
What are you waiting for?
I hope you can see that Godot is a terrific project deserving of your attention. Keep a close eye on the continued development of Godot 4 by following the official Twitter account and that of its lead developer, Juan Linietsky, both of which share updates on the official Godot development blog and snippets of recent updates for high-profile features.
In the meantime, download Godot here and give it a shot!
(Note: the only difference between the Standard version and the Mono version is that the Mono version has a larger file size since it includes support for C#.)
(Full Disclosure: author Will Nations is a Godot Engine contributor under the username “willnationsdev”)