Godot Engine is a free, open-source engine for making 2D and 3D games and other interactive applications. Its editor runs on Windows, macOS and Linux, with experimental versions for web browsers and Android. Godot exports finished projects to Windows, macOS, Linux, Android, iOS and the web, and console releases go through third-party publishers. The MIT license charges no fees or royalties. Developers can sell games made with Godot under any license, provided they include Godot’s license text somewhere such as the credits.
Building games from nodes
Developers assemble every Godot project from nodes. A node does one job: a sprite draws an image, and a camera follows the view. A collision shape marks where an object can be touched, and a timer counts down. Nodes sit in a tree, and each one inherits the features of its parent classes.
A group of nodes saved together becomes a scene, which can be a character, a door, a menu or a whole level. Scenes nest inside other scenes, so one enemy scene can appear in many levels, and editing the original updates every copy. A scene can also inherit from another, so a magician can extend a general character scene with its own nodes.
When a game runs, its scenes join into one scene tree, and nodes communicate through signals. A button emits a signal when pressed, an area emits one when a body enters it, and connected code reacts by opening a menu or applying damage. Godot Engine also lets developers declare custom signals and tag nodes into groups, such as every enemy in a level.
The Godot editor
The Godot editor is built with the engine’s own interface system. Its Scene dock shows the node tree being edited, and the FileSystem dock lists project files. The Inspector edits the properties of the selected node. Main screens switch between 2D layout, 3D level design, the script editor, the running game and the Asset Library of free add-ons. A searchable class reference is available offline inside the editor.
Testing a running game
A project can run in its own window or embedded in the editor. In the editor, the developer can select objects, override the camera, change the time scale and advance frame by frame. Script and scene changes reach the running game without a restart. Godot provides breakpoints and step-by-step execution, a remote inspector for the live node tree, and overlays for collision shapes and navigation meshes. A profiler measures CPU and GPU time for each rendering step.
GDScript, C# and native code
GDScript is Godot’s built-in language. Its syntax is inspired by Python, but the language is designed around the engine. It offers optional static typing and built-in vector types for game math. Its code completion knows the nodes and signals of the scene a script belongs to.
C# requires the separate .NET edition of Godot Engine and an external code editor such as Visual Studio or VS Code. C# projects run on desktop systems and have experimental support on Android and iOS. Developers cannot export them to the web. GDExtension loads compiled libraries without rebuilding the engine, with official C and C++ bindings and community bindings for languages such as Rust. One project can mix languages, for example GDScript for gameplay and C++ for a heavy algorithm. A GDScript file marked with @tool runs inside the editor, which allows custom panels and level-design tools.
Pixel-based 2D toolset
2D in Godot runs on its own renderer rather than a flattened 3D scene, and positions are measured in pixels. The toolset covers sprites, animated sprites, textured polygons, parallax backgrounds, a smoothing camera, 2D lights with soft shadows and GPU particles. Developers can combine 2D and 3D, such as a menu layered over a 3D world.
Developers can paint levels from a tile set onto separate layers. Tools include a brush, lines, rectangles, bucket fill and a picker that copies existing tiles. Random placement adds variation, saved patterns reuse common arrangements, and the terrain system connects neighboring tiles automatically.
The same control nodes that make up the Godot editor are available for game menus and desktop tools. Containers arrange buttons, text fields and lists in rows and grids that adapt to the window size, and a theme editor sets fonts, colors and box styles. Godot supports translated text, plural forms and mirrored layouts for right-to-left languages such as Arabic.
3D rendering
Godot Engine has three renderers, chosen according to the target devices.
| Renderer | Intended devices | Graphics backends |
|---|---|---|
| Forward+ | Desktop, most complete feature set | Vulkan, Direct3D 12, Metal |
| Mobile | Phones and tablets, fewer features | Vulkan, Direct3D 12, Metal |
| Compatibility | Low-end hardware and the web | OpenGL |
Materials follow a physically based model with roughness, metallic and normal maps. Lights include directional, omni, spot and area types with adjustable soft shadows. Indirect lighting can be baked into lightmaps or calculated in real time. Environments add skies, volumetric fog, depth of field, glow and several antialiasing methods. Models arrive through glTF 2.0, Blender files, FBX, Collada and OBJ. A 3D import can bring whole scenes with animations, lights and cameras.
Animating any property
Godot’s AnimationPlayer can animate any property shown in the Inspector, from a sprite’s position to a light’s color or a script variable. Each track points to one node property, keyframes set values at specific times, and Godot fills the gaps with nearest, linear or cubic interpolation.
AnimationTree mixes those clips. Blend spaces shift smoothly between animations such as walking and running according to a value. A state machine moves between states when conditions in the game become true. Root motion turns movement inside an animation into data that code uses to move a character.
Physics and movement
Godot includes static, rigid and character bodies, joints and detection areas in 2D and 3D, with vehicles, soft bodies and ragdolls in 3D. Collision shapes can be simple primitives or generated from a sprite outline or mesh. Navigation meshes let characters find paths around obstacles. The input system maps keys, mouse buttons and gamepad controls to named actions. Developers can remap these actions, while touch input arrives through its own events.
Audio plays in 2D or 3D space through mixer buses with effects. The multiplayer system connects a server and clients over ENet, WebSocket or WebRTC. Functions marked as remote calls run on other players’ machines.
Exporting to target platforms
Each platform gets an export preset. Godot Engine combines the project data with a prebuilt export template for that platform, and some platforms also need their own SDK. An export can produce a playable package or only the data as a PCK or ZIP file. It can also produce a dedicated server build that replaces textures and meshes with placeholders. Extra PCK files can deliver mods and downloadable content.




