Open-Source Wikis

/

Godot

/

Godot Engine

godotengine/godot

Godot Engine

Godot is a feature-packed, cross-platform 2D and 3D game engine written primarily in C++. It bundles an editor, a scene/node-based runtime, multiple scripting languages (GDScript, C#, plus a C/C++ extension API), and rendering backends spanning Vulkan, Direct3D 12, Metal, and OpenGL ES 3.

The repository at https://github.com/godotengine/godot contains the engine, the editor that ships with it, and the platform/driver code that produces binaries for Linux/BSD, Windows, macOS, Android, iOS, visionOS, and the Web. It does not contain the user-facing documentation (which lives in godotengine/godot-docs) or the demo projects, but it does contain the XML class reference under doc/classes/ that the editor consumes.

What it does

Godot is a single-binary tool that operates in two main modes:

  • Editor mode (a "tool" build) — the binary launches the project manager and editor. Users open or create a project, edit scenes (*.tscn/*.scn), import assets, and run the project for testing. Source: editor/.
  • Runtime mode — the same binary (or an "export template" stripped of editor code) runs an exported project. The runtime owns the scene tree, drives the main loop, and forwards rendering, physics, audio, navigation, and input through a set of "servers" backed by platform-specific drivers.

Both modes are driven from main/main.cpp (the largest file in the codebase at ~209 KB). Setup proceeds in two phases — Main::setup() parses CLI options and brings up core/I/O, and Main::setup2() initializes the display server, rendering, physics, audio, the scene tree, and the editor (when applicable).

Tech stack

Area Technology
Engine core C++ (C++17), templated containers, custom RTTI via Object + ClassDB
Build system SCons (Python), see SConstruct, methods.py, *_builders.py
Editor scripting GDScript (built-in), C# (Mono module), GDExtension (native)
Rendering Vulkan (primary), D3D12 (Windows), Metal (Apple), OpenGL ES 3 (compatibility/web/mobile)
Physics Godot Physics (built-in), Jolt Physics (preferred for 3D, in modules/jolt_physics)
Text/Fonts HarfBuzz + ICU + FreeType via modules/text_server_adv (default) and a fallback text_server_fb
XR OpenXR (modules/openxr), Mobile VR, WebXR
Networking ENet, mbedTLS, WebSocket, WebRTC, Multiplayer extension API
Scripting GDScript VM, Mono/.NET 8, GDExtension C ABI for native libraries
Audio RtAudio-like drivers (ALSA, PulseAudio, WASAPI, CoreAudio, XAudio2), with effects and AudioServer abstraction

Repository layout at a glance

godot/
├── core/        Engine core: Object, Variant, math, OS, IO, containers
├── scene/       Scene tree and built-in nodes (2D, 3D, GUI, animation, audio)
├── servers/     Rendering, physics, audio, navigation, display, text, XR servers
├── modules/     Optional engine modules (gdscript, mono, gltf, openxr, jolt_physics, …)
├── editor/      The Godot editor (project manager, docks, plugins, exporters)
├── drivers/     Graphics, audio, input drivers (vulkan, gles3, d3d12, metal, alsa, wasapi, …)
├── platform/    Per-OS application code (linuxbsd, windows, macos, android, ios, web, visionos)
├── main/        Engine entrypoint and main loop
├── tests/       doctest-based unit tests
├── doc/         XML class reference (consumed by editor + docs site)
├── thirdparty/  Vendored dependencies (freetype, harfbuzz, vulkan headers, …)
└── SConstruct   SCons build entry

Where to start

  • Engine code-of-conduct + contribution rules: CONTRIBUTING.md
  • Versioning: version.py (current development version is 4.7-beta)
  • Build entry: SConstruct
  • Pre-commit + clang-format config: .pre-commit-config.yaml, .clang-format
  • License: MIT (LICENSE.txt)

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

Godot Engine – Godot wiki | Factory