Develop and publish your project on any modern desktop platform. Let everyone play your game by deploying to web and mobile. Make your game handle various forms of inputs and share the same project between every release.

Godot is free under the MIT license. This means you don't owe us anything (other than a friendly mention), and can do with your project or even the engine itself whatever you want. Build your game or build your own engine on top of it – it's all in your hands.

Godot 4 is the latest stable version, but, if you want to stick to the true and trusted Godot 3, download the long-term support version.

Features

Build your game from simple blocks

Use building blocks called nodes to create more complex and reusable scenes. Add scripts to your scenes and customize built-in behavior to implement your unique game mechanics. Rely on composition and node hierarchy to make game logic clear at a glance.

Extend beyond features provided by the engine

Make your scenes into full-featured components, with tools for your designers to tweak and adjust the look and function. Share your components with the community of like-minded developers as addons and templates.

Write code without hurdles with a high-level scripting language

Get things done quickly with Godot's built-in scripting language GDScript. Inspired by Python and other languages, it is easy to pick up even if you are a beginner. Tight engine integration allows it to express game logic in a clear and natural form.

Leverage your C# experience to feel right at home

If you're an experienced C# user, Godot offers you first-class support for the .NET platform. Power your game with familiar libraries and give them performance boost, while still benefiting from close engine integration.

Note: .NET support is provided as a dedicated engine executable. C# support is currently only available for desktop platforms in Godot 4. Use Godot 3 to run C# on Android, iOS and Web.

Pick from a variety of community-supported languages

Godot is built to be extended, and that means you can choose a programming language not provided by the Godot team itself. Thanks to our community there are many language bindings for popular tools like Rust, Nim, Python, and JavaScript.

Modify the engine itself and integrate with 3rd party libraries

Thanks to the modular structure and a straightforward build process of Godot you can create your own engine modules. Gain every last drop of performance or integrate with many 3rd party libraries with low-level C++ code.

Support both high and low-end devices

Make beautiful 3D games for a range of devices, starting from desktop computers and ending with mid-range Android phones. Powered by OpenGL, Godot allows your projects to run on most modern GPUs, including integrated graphics.

Seamlessly integrate with your asset pipeline

Bring your 3D models into your game world with a robust importing pipeline. Take entire scenes – with animated models, lighting, cameras, and physics objects, – and customize how the engine views them. Modify your assets and see changes in the engine immediately.

Specialized 2D workflow for games and apps

Thanks to a dedicated 2D pipeline you can forget about Z axis, and simplify your game logic. Think in pixels and screen coordinates, while the engine does the rest.

Save time creating 2D worlds with a tile map editor

Whether you want procedural generation or a meticulously hand-crafted level, with Godot's built-in tile map editor you can achieve every goal. Import a sprite and convert it into a database of building blocks for your 2D worlds.

Master usability with a flexible GUI system

Build scalable and adaptive user interfaces with Godot's unique GUI system. Created specifically to power layouts common to games, it is also capable of handling complex UI applications and tools.

Partner with a publisher to target consoles

If you want to release to a console, you can find several 3rd party publishers which specialize on that. Godot games can run on any modern hardware, all you need to worry about is your performance and controls.

Find the logic behind any system in an open source codebase

No need to wait for a support team to respond when you can read the source code. Godot is an open book, and you can figure out everything that is not yet documented after a single git checkout. If you find and fix an issue, we will appreciate a PR upstream too.

What's New

Complete release notes can be found here.

With over 3,500 commits authored by over 500 contributors, the latest Godot Engine release comes packed full of new features and improvements.

Looking back at the amount of blood, sweat, and tears that went into this one, we can almost guarantee that there's something for everyone in here.

Discover new node types, quality of life changes, and of course many bug fixes in the release overview below.

Set the scene with new audio resources

The new resources AudioStreamInteractive, AudioStreamPlaylist, and AudioStreamSynchronized enable you to create complex, layered music and transitions.

This allows you to build your own dynamic music system, which reacts to the context of your game.

Now that we call smooth

Physics interpolation is used to decouple physics ticks and display frame rates. It creates additional frames between the last physics position and the current one. This reduces jitter, effectively making for a smoother appearance overall.

This is useful for two things:

  • Your games will look better on displays with a high refresh rate
  • If you are making a mobile game, a lower tick rate is less taxing on the hardware you develop for, but normally would have meant compromising on smoothness. Not anymore!

3D physics interpolation is already in the making, as you can see in this PR.

Declutter your shader nodes

The visual shader editor has been revamped from the ground up, to be more visually appealing and to enhance the readability of large, complex shader graphs.

Nodes are now colored based on their category and the colors of connections have been adjusted to be easier on the eye. Clicking on a node now highlights it for better visibility.

Two new node types have been added: a reroute node and a frame node. Neither of them influence your shader code, rather than being useful to organize your workspace.
You can add a reroute node to any existing connection between nodes and move it freely. A frame node is used to bundle related nodes visually.

Worry less about edge cases

Internal engine components have been reworked to improve the performance of multi-threading across the board.

By reducing the chance for edge cases causing deadlocks, loading resources is now much more reliable overall. This effect is noticeable even during runtime, no matter the complexity of resources and dependencies!

Back to the basics

Godot 3 supported both single- and multi-threaded Web exports. When we released Godot 4, we assumed that browser technology would soon improve enough to only focus on multi-threading. Since that did not happen, we are adding back the option to export single-threaded applications.

By doing so, we achieve better browser compatibility, making it easier and faster to upload your games to the Web platform. This also removes the need for complicated server-side configurations and other limitations users experienced before.

Improved command line export pipeline

A lot of users use CI/CD pipelines such as GitHub Actions or GitLab CI to export their game to all their supported platforms automatically. This implies checking out the source repository of the project, and running Godot from the command line (in so-called "headless" mode, i.e. no graphical display) to perform the export with the --export-release or --export-debug commands.

For a long time now, users have been struggling with some associated issues, such as:

  • Source repositories typically don't include the .godot folder with imported resources, so before exporting, the editor needs to run once (still in headless mode) to properly import everything, generate the GDScript class_name cache, etc. This is now much easier to do thanks to a new --import command which does exactly that and then exits, without having to jump through hoops (GH-90431). This command is also implied in --export-release/--export-debug, so you don't even need to call it explicitly unless you want to (e.g. to run unit tests before exporting).
  • The "headless" mode of Godot for command-line use relies on a no-op rendering backend which implements the API without requiring an actual GPU and display to run their logic. Some scaffolding was missing there to properly support MultiMesh data and shader parameters, which should now be fixed too (GH-87390, GH-87392).
  • The exit code is now properly set when the command line export fails, so your scripts can react accordingly (GH-89234).

Fixed audio crackling issues on Windows

A now infamous issue (GH-75109) has been affecting a number of Godot users on Windows with more advanced audio setups, which caused seemingly random audio crackling or distortion issues. This was particularly bad as it also affected published Godot 4 games, which could be quite annoying for players.

Thanks to a lot of testing and experimentation by the community, the issue was finally fixed in Godot's WASAPI driver (GH-89283), and the fix is now included in 4.2.2 and 4.1.4.

Workaround for some types of "corrupted scene" load errors

We are well aware that a lot of users routinely run into issues when refactoring their project by renaming or moving files around. There are multiple reasons for these errors, some which have been fixed already in the 4.3 dev branch, and we will backport what we can to also address the most egregious problems in 4.2 too.

One such improvements is to allow loading scenes with missing external resources (due to having moved them around, especially from outside Godot) instead of reporting the scene as corrupted (GH-85159, GH-90269). This isn't perfect, but should already help significantly when this happens.

Fixes to animation features after the move to AnimationMixer

The Godot 4.2 release had a major refactoring of AnimationPlayer and AnimationTree on top of a common AnimationMixer base class, to share the base implementation for many common features. There were still some regressions we didn't have time to solve before the 4.2 release, but work continued afterwards. A number of those issues are now being fixed in 4.2.2, and old bugs have also been fixed at the same time. Please check the "Animation" category of the interactive changelog for details.

And a lot more!

There are many other important changes! We strongly suggest giving the interactive changelog a good read, especially in areas which are particularly relevant for your projects. Here's a few more noteworthy focus areas:

  • Android: Target SDK changed to API level 34 (Android 14) (GH-87346).
  • Animation: Many fixes to animation features after the move to AnimationMixer in 4.2.
  • C#: Fixed duplicate key issue on reload (GH-87838), and many other C# bugs.
  • Documentation: A metric ton of class reference improvements!
  • Editor: Improve 3D visualization of origin lines (GH-83895) and Curve3D-related debug information (GH-83698).
  • Editor: Fix editor profiler script function sort order (GH-87661).
  • GDScript: Faster LSP message processing to use with external editors (GH-89284), as well as many code completion improvements.
  • Import: Fixed multiple issues with mesh compression (GH-88738).
  • Rendering: Fix Camera2D frame delay (GH-84465).
  • Rendering: Fix Volumetric Fog VoxelGI updates (GH-86023).
  • Rendering: Significantly improve the speed of shader compilation in compatibility backend (GH-87553).
  • Thirdparty: Mbed TLS 2.28.8, ThorVG 0.12.10.

Requirements

  • Recommended: Vulkan 1.0 compatible hardware
  • Minimal: OpenGL 3.3 / OpenGL ES 3.0 compatible hardware
  • Additional requirements for the .NET version: .NET SDK