Lista de funcionalidades

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

Nota

This page lists features supported by the current stable version of Godot (3.5). More features are available in the latest development version (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 poder 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).

É possivel 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 debugger.

    • 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.

  • Built-in offline class reference documentation.

  • 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 alta 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ígnos tal como Line2D e Polygon2D.

  • 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 supports monochrome fonts as well as colored fonts (e.g. for emoji). Supported formats are TTF, OTF, WOFF1 and WOFF2.

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

    • Suporte para sobreamostragem de fontes, permitindo que elas fiquem nítidas mesmo em resoluções mais altas.

  • Particulas baseadas em GPU com suporte para shaders personalizados de particulas.

  • Partículas em CPU.

Ferramentas 2D

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

  • O Nó Path2D para representar caminhos dentro de um espaço 2D.

    • Pode ser desenhado através do editor ou gerado proceduralmente.

    • 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.

  • Areas para detecção de entrada e saida de corpos.

Detecção de colisões:

  • formas integradas: linha, caixa, circulo e capsula.

  • 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 alta nível. Recomendado para plataformas desktop.

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

    • Usa uma pré-passagem de profundidade opcional (ativada por padrão) para reduzir o custo de 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 de LDR para melhor compatibilidade.

    • Nem todos os recursos estãos disponiveis. Os recursos disponiveis apenas ao utilizar OpenGL ES 3.0 estaram marcados com GLES3.

Câmera:

  • Câmeras em perspectiva, ortográfica e deslocamento de tronco.

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 [i]pipeline[/i] transparente.

  • A matização pode ser determinada com bases em pixel ou objeto.

  • GLES3: Mapeamento de Paralaxe/Relevo com níveis de detalhamento automático baseado na distancia.

  • GLES3: Dispersão e transmissão da sub-superfície.

  • 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 angulo por cone e atenuação.

  • A energia especular pode ser ajustada numa base per-luz.

  • GLES3: A iluminação é feita com uma abordagem de passagem única. Por padrão, até 32 luzes omni e 32 luzes spot 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. GLES2 usa uma abordagem multi-pass forward para iluminação, que não tem limite no número de luzes, mas é mais lenta com muitas luzes.

Mapeamento de sombras:

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

  • OmniLight: Parabolóide 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: Testura única.

Iluminação global por luzes indiretas:

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

    • Suporta cozimento apenas com luz indireta ou cozimento com iluminação direta e indireta. O modo de cozimento pode ser ajustado por luz para permitir configurações de cozimento de luzes híbridas.

    • 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.

Opções de execução:

  • 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 de Screen-space.

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 em CPU.

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

Pós-processamento:

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

  • Brilho/Bloom com escala bicúbica opcional e vários modos de combinação disponíveis: Tela, Luz Suave, Subexposição Linear, Substituir.

  • Correção de cor de rampa unidimensional.

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

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

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

  • GLES3: Screen-space ambient occlusion (SSAO).

  • GLES3: Debanding opcional para evitar color banding (efetiva quando a renderização HDR está ativa).

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.

  • Antialiasing 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.

  • Real-time occluder shapes (sphere and polygon). Not as effective as rooms and portals (and doesn't support gameplay notifications), but easier to set up.

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 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 (destinado para criação de protótipos).

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

    • Pode ser desenhado através do editor ou gerado proceduralmente.

    • 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).

  • Areas para detecção de entrada e saida 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: Shaders de vertíce, fragmento e luz personalizados.

  • 3D: Shaders personalizados para vértices, fragmentos, luzes e 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.

  • Utilizar um editor externo é recomendado para ter benefícios de funcionalidades de 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 build system e funcionalidades da linguagem que você quiser.

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

Aviso

Godot 4.0 will remove VisualScript from core entirely. As a result, creating new projects using visual scripting in Godot is not recommended. Future Godot 4.x releases may have VisualScript reimplemented as an extension.

While Godot 3.x will keep VisualScript supported, we recommend trying out GDScript instead, especially if you intend to migrate your project to 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.

    • Usar o mesmo código para dar suporte à 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ádica da direita para a esquerda e modelagem de texto planejada em 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 terceira pessoa.

  • Suporte para incorporação de subvisão no Android.

Suporte à XR (AR e VR)

  • Suporte ao ARKit no iOS quando pronto para uso.

  • Suporte às API's de OpenXR.

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

  • Suporte às API's de OpenVR.

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

A interface gráfica da Godot é construída usando os mesmos controles de Nodes usados para fazer jogos na 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, 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.

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

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

Temas:

  • Editor de temas embutido.

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

  • Temas baseados em vetores procedurais usando StyleBoxFlat.

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

  • Temas baseados em textura usando StyleBoxTexture.

O tamanho de distribuição pequeno do Godot pode fazê-lo de uma alternativa para plataformas como Electron ou Qt.

Animação

  • Cinemática direta e cinemática inversa.

  • Tween node 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 pelo Engine para suportar modificações e DLC.

Diversos

  • 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.