Skip to content

Godot's architecture overview

The following diagram describes the most important aspects of Godot's architecture. It's not designed to be exhaustive, with the purpose of just giving a high-level overview of the main components and their relationships to each other.

Diagram of Godot's Architecture; divided into three layers (from top to bottom: Scene layer, Server layer, and Drivers & Platform interface layer), with Core and Main separated on the right side since they interact with all layers.

Credit: Hendrik Brucker

Scene Layer

The Scene layer is the highest level of Godot's architecture, providing the scene system, which is the main way to build and structure your applications or games. See SceneTree / Using SceneTree and Node for more information.

Corresponding source code: /scene/*

Server Layer

Server components implement most of Godot's subsystems (rendering, audio, physics, etc.). They are singleton objects initialized at engine startup.

Why does Godot use servers and RIDs?

Corresponding source code: /servers/*

Drivers / Platform Interface

This layer abstracts low-level platform-specific details, containing drivers for graphics APIs, audio backends and operating system interfaces (all platform-specific OS and DisplayServer implementations).

Corresponding source code: /drivers/* and /platform/*

Core

The Engine's core contains essential functionality and data structures used throughout the engine, like Object and ClassDB, Core types, Core types, file I/O, Variant class, and Common engine methods and macros.

Corresponding source code: /core/*

Main

The Main component is responsible for initializing and managing the engine lifecycle, including startup, shutdown, and the main loop. See MainLoop for more details.

Corresponding source code: /main/*