Lista de funcionalidades

Esta página visa listar todos os recursos atualmente suportados pelo Godot.

Nota

Esta página lista funcionalidades suportadas pela atual versão estável do Godot (3.5). Mais funcionalidades estão disponíveis na versão de desenvolvimento mais recente (4.0).

Funcionalidades

Plataformas

É possível executar tanto o editor quanto os projetos exportados em:

  • Windows 7 e superior (64-bit e 32-bit).

  • macOS 10.12 e superior (64-bit, x86 e ARM).

  • Linux (64-bits e 32-bits, x86 e ARM).

    • Arquivos binários são estaticamente vinculados e podem ser executados em qualquer distribuição, se compilados a partir de uma distribuição-base mais antiga.

    • Arquivos binários oficiais são compilados no Ubuntu 14.04.

  • HTML5 via WebAssembly (Firefox, Chrome, Edge, Opera).

É possível executar apenas projetos exportados em:

O Godot visa ser o mais independente possível de plataformas e pode ser portado para novas plataformas com relativa facilidade.

Editor

Funcionalidades:

  • Editor de árvore de cena.

  • Editor de script integrado.

  • Suporte a editores de script externos como Visual Studio Code ou Vim.

  • GDScript depurador.

    • Por enquanto, sem suporte para depuração em threads.

  • Ferramentas de monitoramento de desempenho.

  • Recarregamento de script em tempo real.

  • Edição de cena em tempo real.

    • Alterações serão refletidas no editor e se manterão mesmo após fechar o projeto em execução.

  • Inspetor remoto.

    • Alterações não serão refletidas no editor e não serão mantidas após fechar o projeto em execução.

  • Replicação de câmera em tempo real.

    • Mova a câmera do editor e veja o resultado no projeto em execução.

  • Documentação de referência de classe offline integrada.

  • Utilize o editor em dezenas de idiomas fornecidos pela própria comunidade.

Plugins:

Gráficos 2D

Dois tipos de renderizadores disponíveis:

  • Renderizador OpenGL ES 3.0 (utiliza OpenGL ES 3.3 em plataformas desktop).

    • Visuais de alto nível. Recomendado para plataformas desktop.

  • Renderizador OpenGL ES 2.0 (utiliza OpenGL ES 2.1 em plataformas desktop).

    • Recomendado para plataformas Web e dispositivos móveis.

Funcionalidades:

  • Sprites, polígonos e renderização de linhas.

    • Ferramentas de alto nível para desenhar linhas e polígonos, como Polygon2D e Line2D.

  • AnimatedSprite irá ajudar na criação de sprites animados.

  • Camadas de parallax.

    • Suporte Pseudo-3D incluindo visualização no editor.

  • Iluminação 2D com mapas normais.

    • Sombras fortes e suaves.

  • Renderização de fonte utilizando bitmaps (BitmapFont) ou rasterização utilizando FreeType (DynamicFont).

    • Fontes em bitmap podem ser exportadas utilizando ferramentas como BMFont.

    • DynamicFont suporta fontes monocromáticas bem como coloridas(e.g para emoji). Os formatos suportados são TTF, OTF e WOFF1.

    • DynamicFont suporta contornos opcionais para fontes, com ajustes de largura e cor.

    • Suporte para oversampling de fontes para manter as fontes nítidas em resoluções mais altas.

  • Partículas baseadas em GPU com suporte para shaders de partículas personalizados.

  • Partículas baseadas em CPU.

Ferramentas 2D

  • Camera 2D com margens e suavização integrados.

  • O Nó Path2D para representar um caminho no espaço 2D.

    • Pode ser desenhado no editor ou gerado processualmente.

    • O nó PathFollow2D para fazer os nós seguirem um Path2D.

  • Classe auxiliar para geometria 2D.

  • O nó Line2D para desenhar linhas 2D texturizadas.

Física 2D

Corpos com suporte a física:

  • Corpos estáticos.

  • Corpos rígidos.

  • Corpos cinemáticos.

  • Articulações/Junções.

  • Áreas para detecção de entrada e saída de corpos.

Detecção de colisões:

  • Formas embutidas: linha, caixa, círculo, cápsula.

  • Collision polygons (podem ser desenhados manualmente ou gerados a partir de um sprite pelo editor).

Gráficos 3D

Dois tipos de renderizadores disponíveis:

  • Renderizador OpenGL ES 3.0 (utiliza OpenGL ES 3.3 em plataformas desktop).

    • Visuais de alto nível. Recomendado para plataformas desktop.

    • Renderização HDR opcional com sRGB (ativado por padrão).

    • Usa um pré-passe de profundidade opcional (ativado por padrão) para reduzir o custo do overdraw, o que acelera a renderização de cenas complexas.

  • Renderizador OpenGL ES 2.0 (utiliza OpenGL ES 2.1 em plataformas desktop).

    • Recomendado para plataformas Web e dispositivos móveis.

    • Renderização LDR para maior compatibilidade.

    • Nem todos os recursos estão disponíveis. Os recursos disponíveis somente ao usar o renderizador OpenGL ES 3.0 estão marcados como GLES3 abaixo.

Câmera:

  • Câmeras de perspectiva, ortográficas e de deslocamento parcial.

Renderização baseada em física (características integradas de material):

  • Segue o modelo Disney PBR.

  • Suporta os modos de sombreamento difuso Lambert, Lambert Wrap (meio Lambert), Oren-Nayar e Toon.

  • Suporta os modos de sombreamento especular Schlick-GGX, Blinn, Phong, Toon e Desativado.

  • Utiliza o fluxo de trabalho roughness-metallic com suporte para texturas ORM.

  • Usa oclusão especular do horizonte (modelo de filamento) para melhorar a aparência do material

  • Mapeamento Normal.

  • Mapeamento detalhado para os mapas albedo e normal.

  • O esmaecimento de distância pode usar mistura alfa ou matização para evitar passar pelo pipeline transparente.

  • O pontilhamento pode ser determinado por pixel ou por objeto.

  • GLES3: Mapeamento de paralaxe/relevo com nível automático de detalhe baseado na distância.

  • GLES3: Espalhamento e transmitância sub-superficiais.

  • GLES3: Refração com suporte para rugosidade do material (resultando em refração borrada). No GLES2, a refração ainda é funcional, mas não tem suporte para a rugosidade do material.

  • GLES3: Desvanecimento de proximidade (partículas suaves).

Iluminação em tempo real:

  • Luzes direcionadas (sol/lua). Até 4 por cena.

  • Luzes unidirecionais.

  • Focos de luz com ajuste de ângulo por cone e atenuação.

  • A energia especular pode ser ajustada por luz.

  • GLES3: A iluminação é feita com uma abordagem de passagem única. Por padrão, até 32 luzes omni e 32 luzes pontuais podem ser exibidas por recurso de malha. Se necessário, esse limite pode ser aumentado ao custo de maiores tempos de compilação do sombreador e menor desempenho. O GLES2 usa uma abordagem de passagem múltipla para a iluminação, que não tem limite no número de luzes, mas é mais lenta com muitas luzes.

Mapeamento de sombras:

  • Luz Direcional: Ortogonal (mais rápida), PSSM 2 divisões e 4 divisões. Suporta mesclagem entre divisões.

  • OmniLight: Paraboloide duplo (rápido) ou mapa do cubo (mais lento, porém mais preciso ). Suporta texturas de projeção de cores na forma de panoramas.

  • Destaque: Textura única.

Iluminação global por luzes indiretas:

  • Lightmaps previamente calculados (rápido, mas não pode ser atualizado durante a execução).

    • Suporta pré-calculo apenas com luz indireta ou pré-calculo com iluminação direta e indireta. O modo pré-calcular pode ser ajustado por luz para permitir configurações híbridas mais leves.

    • Suporta iluminação de objetos dinâmicos usando um sistema automático baseado em octree. Não é necessária a colocação manual de sonda.

    • Lightmaps são previamente calculados na CPU.

  • GLES3: GI probes (mais lento, semi-tempo real). Suporta reflexões.

Reflexões:

  • Reflexões rápidas geradas e gravadas ou reflexões lentas em tempo real usando ReflectionProbe. A correção de paralaxe pode ser ativada opcionalmente.

  • Técnicas de reflexão podem ser combinadas para maior precisão ou escalabilidade.

  • GLES3: Reflexões baseadas em Voxel (ao utilizar GI probes).

  • GLES3: Reflexões do espaço da tela.

Céu:

  • Céu de Panorama (utilizando HDRI).

  • Céu procedural.

Neblina:

  • Profundidade da neblina com ajuste de curva de atenuação.

  • Altura da neblina (Chão ou teto) com ajuste de atenuação.

  • Suporte para auto coloração de neblina a depender da direção da câmera (para se ajustar de acordo com a cor do sol).

  • Transmissão opcional para fazer com que as luzes sejam mais visíveis quando com neblina.

Partículas:

  • Partículas baseadas em CPU.

  • GLES3: Partículas baseados em GPU com suporte para shaders de partículas personalizado.

Pós-processamento:

  • Mapeamento de Tons (Linear, Reinhard, Filmic, ACES).

  • Brilho/Bloom com escala bicúbica opcional e vários modos de mesclagem disponíveis: Tela, Luz Suave, Adicionar, Substituir.

  • Correção de cor usando uma rampa unidimensional.

  • Ajustes de brilho, contraste e saturação.

  • GLES3: Ajustes de exposição automáticos baseado no brilho da janela(viewport) de visualização.

  • GLES3: Profundidade de campo próxima e distante.

  • GLES3: Screen-space ambient occlusion (SSAO - Oclusão de ambiente do espaço da tela).

  • GLES3: Debanding opcional para evitar faixas de cores (efetivo quando a renderização HDR está habilitada).

Filtragem de textura

  • Filtragem mais próxima, bilinear, trilinear ou anisotrópica.

Compressão de Textura:

  • WebP sem perdas ou com perdas (não salva VRAM; apenas reduz o tamanho do armazenamento).

  • S3TC (Suportado apenas nas plataformas Desktop).

  • ETC1 (recomendado ao utilizar o renderizador GLES2).

  • GLES3: BPTC para compressão de alta qualidade (não é compatível com macOS).

  • GLES3: ETC2 (não é compatível com macOS).

Antisserrilhamento:

  • Antisserrilhado (MSAA) de várias amostras.

  • Antisserrilhado aproximado rápido (FXAA).

Desempenho:

  • Seleção de oclusão com salas e portais. Suporta notificações de jogabilidade com visibilidade primária e secundária para desabilitar o processamento de IA/física para nós que não precisam dele.

  • Esferas oclusoras em tempo real (esfera e polígono). Não é tão eficaz quanto salas e portais (e não suporta notificações de jogabilidade), porém é mais fácil de configurar.

Nota

A maioria dos efeitos listados acima podem ser ajustados para melhor desempenho ou para melhorar ainda mais a qualidade. Isso pode ser útil ao usar o Godot para renderização offline.

Ferramentas 3D

  • Malhas integradas: cubo, cilindro/cone, (hemi) esfera, prisma, plano, quad.

  • Ferramentas para geração de geometria procedural.

  • Geometria sólida construtiva (destinada para criação de protótipos).

  • Nó Path3D para representar um caminho no espaço 3D.

    • Pode ser desenhado no editor ou gerado processualmente.

    • Nó PathFollow3D para fazer com que os nós sigam um Path3D.

  • Classe auxiliar de geometria 3D.

  • Suporte para exportar a cena atual como um arquivo glTF 2.0 do editor.

Física 3D

Corpos com suporte a física:

  • Corpos estáticos.

  • Corpos rígidos.

  • Corpos cinemáticos.

  • Corpos de veículos (destinado para físicas arcade, não para simulação).

  • Articulações/Junções.

  • Corpos macios.

  • Ragdolls (Bonecos de pano).

  • Áreas para detecção de entrada e saída de corpos.

Detecção de colisões:

  • Formas pré-construídas: cubo, esfera, cápsula, cilindro.

  • Gerar formas de colisão triangulares para qualquer malha pelo editor.

  • Gerar uma ou várias formas de colisão convexas para qualquer malha pelo editor.

Shaders

  • 2D: Vértice personalizado, fragmento e shaders de luz.

  • 3D: Vértice personalizado, fragmento, luz e shaders de céu.

  • Shaders baseados em texto usando uma linguagem de shader inspirada em GLSL.

  • Editor visual de shaders.

    • Suporte para plugins visuais de shader.

Scripting

Geral:

  • Padrão de design orientado a objetos com scripts que estendem nós.

  • Sinais e grupos para comunicação entre scripts.

  • Suporte para scripting entre linguagens.

  • Diversos tipos de dados de algebra linear 2D e 3D como vetores e transformações.

GDScript:

C#:

  • Empacotado em um binário separado para manter os tamanhos de arquivo e dependências pequeno.

  • Usa Mono 6.x.

    • Suporte completo para a sintaxe e funcionalidades do C# 7.0.

  • Suporta todas as plataformas.

  • O uso de um editor externo é recomendado para se beneficiar da funcionalidade IDE.

VisualScript:

GDNative (C, C++, Rust, D, ...):

  • Quando necessário, conecte a bibliotecas nativas para melhor desempenho e integração com terceiros.

    • Para programar a lógica do jogo, GDScript ou C# são recomendados, caso sua performance seja adequada.

  • Vinculações oficiais para C e C++.

    • Use qualquer sistema de construção(build system) e recursos de linguagem que desejar.

  • Vínculos mantidos de D, Kotlin, Python, Nim e Rust fornecidos pela comunidade.

Aviso

`Godot 4.0 vai remover o VisualScript de toda sua base. <https://godotengine.org/article/godot-4-will-discontinue-visual-scripting>`__Como resultado, criar novos projetos utilizando visual script no Godot não é recomendado. Futuras versões do Godot 4.x podem ter o VisualScript reimplementado como uma extensão.

Apesar do Godot 3.x manter o suporte ao VisualScript, recomendamos experimentar GDScript especialmente se você pretende migrar seu projeto para o Godot 4.

Áudio

Funcionalidades:

  • Mono, estéreo, saídas 5.1 e 7.1.

  • Reprodução não-posicional e posicional em 2D e 3D.

    • Efeito Doppler opcional em 2D e 3D.

  • Suporte para barramentos de áudio redirecionáveis e efeitos com dezenas de efeitos inclusos.

  • Nós Listener2D e Listener3D para escutar de uma posição diferente da câmera.

  • Entrada de áudio para gravar microfones com acesso em tempo real usando a classe AudioEffectCapture.

  • Entrada MIDI.

    • Sem suporte para saída MIDI por enquanto.

APIs utilizadas:

  • Windows: WASAPI.

  • macOS: CoreAudio.

  • Linux: PulseAudio ou ALSA.

Importar

Formatos:

  • Imagens: Veja Importação de imagens.

  • Áudio:

    • WAV com compressão IMA-ADPCM opcional.

    • Ogg Vorbis.

    • MP3.

  • Cenas 3D:

    • glTF 2.0 (recomendado).

    • ESCN (exportação direta do Blender).

    • FBX (experimental, apenas malha estática).

    • Collada (.dae).

    • Wavefront OBJ (apenas cenas estáticas, pode ser carregado diretamente como uma malha).

  • As malhas 3D usam o Mikktspace para gerar tangentes na importação, o que garante consistência com outros aplicativos 3D, como o Blender.

Entrada

  • Sistema de mapeamento de entrada usando eventos de entrada codificados ou ações de entrada remapeáveis.

    • Valores de eixo podem ser mapeados em duas ações diferentes com uma zona morta configurável.

    • Use o mesmo código para oferecer suporte a teclados e gamepads.

  • Entrada de Teclado.

    • Teclas podem ser mapeadas em modo "físico" para serem independentes do layout do teclado.

  • Entrada de Mouse.

    • O cursor do mouse pode ser visível, escondido, capturado ou confinado dentro da janela.

    • Quando capturada, a entrada bruta será usada no Windows e no Linux para contornar as configurações de aceleração do mouse do sistema operacional.

  • Entrada por gamepad (até 8 controles simultâneos).

  • Entrada de caneta/tablet com suporte a pressão.

  • Suporte para entrada de gamepad, teclado e mouse também estão disponíveis no Android.

Trabalho em rede

  • Networking TCP de baixo nível usando StreamPeer e TCP_Server.

  • Networking UDP de baixo nível usando PacketPeer e UDPServer.

  • Requisições HTTP de baixo nível utilizando HTTPClient.

  • Requisições HTTP de alto nível utilizando HTTPRequest.

    • Suporta HTTPS pronto para uso usando certificados inclusos.

  • API multijogador de alto nível utilizando UDP e ENet.

    • Replicação automática usando chamadas de procedimento remotas (RPCs).

    • Suporta transferências ordenadas, confiáveis e não confiáveis.

  • Cliente e servidor WebSocket, disponível em todas as plataformas.

  • Cliente e servidor WebRTC, disponível em todas as plataformas.

  • Suporte para UPnP para contornar a necessidade de encaminhar portas ao hospedar um servidor atrás de um NAT.

Internacionalização

  • Suporte completo para Unicode incluindo emojis.

  • Armazena strings de localização usando CSV ou gettext.

  • Utilize strings localizadas em seu projeto automaticamente em elementos GUI ou usando a função tr().

  • Suporte para composição tipográfica da direita para a esquerda e modelagem de texto planejada no Godot 4.0.

Janelas e integração de sistema

  • Mova, redimensione, minimize e maximize a janela gerada pelo projeto.

  • Mude o título e o ícone da janela.

  • Requisite atenção (vai fazer a barra de título piscar na maioria das plataformas).

  • Modo tela cheia.

    • Não usa tela inteira exclusiva, então a resolução da tela não pode ser alterada dessa forma. Use uma Viewport com uma resolução diferente.

  • Janela sem bordas (tela cheia ou tela não cheia).

  • Possibilidade de manter a janela sempre no topo.

  • Janela transparente com transparência por pixel.

  • Integração com menu global no macOS.

  • Executar comandos de um modo de bloqueio ou de não-bloqueio.

  • Abrir caminhos de arquivos e URLs usando manipuladores de protocolo padrão ou personalizados (se registrados no sistema).

  • Analisa argumentos de linha de comando personalizados.

  • Binários headless/server podem ser baixados para Linux e compilado para macOS. Qualquer binário pode ser usado sem uma janela usando o --no-window como argumento de linha de comando.

Mobile

  • Compras no aplicativo Android e iOS.

  • Suporte a anúncios usando módulos de terceiros.

  • Suporte para incorporação de subvisualização(subview) no Android.

Suporte à XR (AR e VR)

  • Suporte para ARKit no iOS pronto para uso.

  • Suporte para as APIs OpenXR.

    • Inclui suporte para fones de ouvido populares como o Meta Quest e o Valve Index.

  • Suporte para as APIs do OpenVR.

Sistema de Interface Gráfica do Usuário (GUI)

A interface gráfica do Godot é construída usando os mesmos controles de Nós usados para fazer jogos no Godot. A interface do editor pode ser facilmente estendida de diversas formas com o uso de add-ons.

Nós:

  • Botões.

  • Caixas de seleção, botões de seleção, botões de opção.

  • Entrada de texto usando LineEdit (linha única) e TextEdit (múltiplas linhas).

  • Menus suspensos usando PopupMenu (menu suspenso) e OptionButton (botão de opção).

  • Barras de rolagem.

  • Rótulos.

  • RichTextLabel para textos formatados usando BBCode.

  • Trees (podem também ser usadas para representar tabelas).

  • Seletor de cores com modos RGB e HSV.

  • Contêineres (horizontais, verticais, em grid, fluxo(flow), centralizados, com margem, aspecto de proporção, divisórias arrastáveis, ...).

  • Controles podem ser rotacionados e ter sua escala alterada.

Dimensionamento:

  • Âncoras para manter os elementos da GUI em um canto específico, borda ou centro.

  • Contêineres para colocar elementos da GUI automaticamente seguindo certas regras.

    • Disposição em Pilha (Layouts Stack).

    • Disposição em Gride (Layouts Grid).

    • Margem :ref: (Layouts Margin) <class_MarginContainer> e centralizado (Layouts Centered).

    • Divisor arrastável :ref: (Draggable Splitter) <class_SplitContainer>.

  • Escala para resoluções múltiplas usando os modos de alongamento 2d ou `` viewport``.

  • Suporta qualquer proporção usando âncoras e o aspecto esticado expand.

Temas:

  • Editor de temas embutido.

    • Gere um tema com base nas configurações atuais do tema do editor.

  • Temas baseados em vetores procedurais usando StyleBoxFlat.

    • Suporta cantos arredondados/chanfrados, sombras projetadas, larguras por borda e antisserrilhamento.

  • Temas baseados em textura usando StyleBoxTexture.

O pequeno tamanho da distribuição do Godot pode torná-lo uma alternativa para plataformas como Electron ou Qt.

Animação

  • Cinemática direta e cinemática inversa.

  • Interpolador de nós :ref: (Tween) <class_Tween> para realizar facilmente animações procedurais por código.

  • Suporte a animação de qualquer propriedade com interpolação personalizável.

  • Suporte a chamada de métodos em trilhas de animação.

  • Suporte a áudio em trilhas de animação.

  • Suporte a curvas Bézier em animações.

Formatos de arquivos

  • Cenas e recursos podem ser salvos como text-based ou em formatos binários.

    • Formatos baseados em texto são legíveis por humanos e mais amigáveis a sistemas de versionamento.

    • Formatos binários são mais rápidos para salvar e carregar para cenas e recursos pesados.

  • Leia e escreva arquivos binários ou de texto usando File.

    • Podem ser opcionalmente comprimidos ou criptografados.

  • Leia e escreva arquivos JSON.

  • Leia e escreva arquivos de configuração em estilo INI usando ConfigFile.

    • Pode (de)serializar qualquer tipo de dados do Godot, incluindo Vector2/3, Color, ...

  • Leia arquivos XML usando XMLParser.

  • Empacote dados de jogo num arquivo PCK (formato personalizado otimizado para buscas rápidas), num arquivo ZIP, ou diretamente no executável para distribuição de um único arquivo.

  • Exporte arquivos PCK adicionais que podem ser lidos pela Engine para suportar modificações e DLC.

Micelânea

  • Acesso de baixo nível aos servidores que permite ultrapassar o gargalo da árvore de cenas quando necessário.

  • Interface de Linha de Comando para automação.

  • Suporte para módulos C++ com ligação estática ao binário do Engine.

  • Engine e editor escritos em C++03.

    • Pode ser compilado usando GCC, Clang e MSVC. MinGW também tem suporte.

    • Amigável aos distribuidores de pacotes. Na maioria dos casos, bibliotecas do sistema podem ser utilizadas no lugar das fornecidas pelo Godot. O sistema de compilação não baixa nada. As compilações são completamente reproduzíveis.

    • Godot 4.0 será escrito em C++17.

  • Licenciado sob a licença permissiva MIT.

Ver também

O `repositório de propostas do Godot <https://github.com/godotengine/godot-proposals`__ documenta recursos que foram pedidos pela comunidade e podem ser implementados em versões futuras do Godot.