Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Visão geral da arquitetura do Godot

O diagrama a seguir descreve os aspectos mais importantes da arquitetura do Godot. Ele não foi projetado para ser exaustivo, tendo o propósito de apenas dar uma visão geral de alto nível dos principais componentes e de suas relações entre si.

Diagrama da Arquitetura do Godot; dividido em três camadas (de cima para baixo: Camada de Cena, Camada de Servidor e Camada de Drivers e Interface de Plataforma), com Core e Main separados no lado direito, pois interagem com todas as camadas.

Crédito: Hendrik Brucker

Camada de Cena

A camada de Cena (Scene layer) é o nível mais alto da arquitetura do Godot, fornecendo o sistema de cenas, que é a principal maneira de construir e estruturar seus aplicativos ou jogos. Veja SceneTree / Usando Árvore de cena e Node para mais informações.

Código-fonte correspondente: /scene/*

Camada de Servidor

Os componentes de Servidor (Server components) implementam a maioria dos subsistemas do Godot (renderização, áudio, física, etc.). Eles são objetos singleton inicializados na inicialização da engine.

Por que o Godot usa servidores e RIDs?

Código-fonte correspondente: /servers/*

Drivers / Interface de Plataforma

Esta camada abstrai detalhes de baixo nível específicos de cada plataforma, contendo drivers para APIs gráficas, backends de áudio e interfaces de sistema operacional (todas as implementações específicas de plataforma de OS e DisplayServer).

Código-fonte correspondente: /drivers/* e /platform/*

Componentes Principais

O núcleo da Engine (Core) contém funcionalidades essenciais e estruturas de dados usadas por todo o motor, como Object e ClassDB, gerenciamento de memória, contêineres, E/S de arquivos, Variant e outros utilitários.

Código-fonte correspondente: /core/*

Principal

O componente Main é responsável por inicializar e gerenciar o ciclo de vida da engine, incluindo a inicialização, o desligamento e o loop principal. Veja MainLoop para mais detalhes.

Código-fonte correspondente: /main/*