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 entryWhere to start
- New to the codebase: read Architecture for the big picture, then Getting started for build instructions.
- Looking up a term: Glossary.
- Picking a contribution: How to contribute.
- Trying to find where a feature lives: see the Systems and Modules lenses.
Quick links
- 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.