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

  • Built-in script editor.

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

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

    • Pseudo-3D support including preview in the 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. Os formatos suportados são TTF, OTF e WOFF1.

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

    • Optional HDR rendering with sRGB (enabled by default).

    • Uses an optional depth prepass (enabled by default) to reduce the cost of overdraw, which speeds up complex scene rendering.

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

Physically-based rendering (built-in material features):

  • Segue o modelo Disney PBR.

  • Supports Lambert, Lambert Wrap (half-Lambert), Oren-Nayar and Toon diffuse shading modes.

  • Supports Schlick-GGX, Blinn, Phong, Toon and Disabled specular shading modes.

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

  • Uses horizon specular occlusion (Filament model) to improve material appearance

  • Mapeamento Normal.

  • Detail mapping for the albedo and normal maps.

  • 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: Refraction with support for material roughness (resulting in blurry refraction). On GLES2, refraction is still functional but lacks support for material roughness.

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

  • Specular energy can be adjusted on a per-light basis.

  • GLES3: Lighting is done with a single-pass forward approach. By default, up to 32 omni light and 32 spot lights can be displayed per mesh resource. If needed, this limit can be increased at the cost of increased shader compilation times and lower performance. GLES2 uses a multi-pass forward approach to lighting, which doesn't have a limit on the number of lights but is slower with many lights.

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:

  • Fast baked reflections or slow real-time reflections using ReflectionProbe. Parallax box correction can optionally be enabled.

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

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

  • Partículas em CPU.

Pós-processamento:

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

  • 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 - Oclusão de ambiente do espaço da tela).

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

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

Filtragem de textura

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

Compressão de Textura:

  • Lossless or lossy WebP (does not save VRAM; only reduces storage size).

  • S3TC (only supported on desktop platforms).

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

Performance:

  • Occlusion culling with rooms and portals. Supports gameplay notifications with primary and secondary visibility to disable AI/physics processing for nodes that don't need it.

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

Nota

Most of the effects listed above can be adjusted for better performance or to further improve quality. This can be helpful when using Godot for offline rendering.

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.

  • Support for exporting the current scene as a glTF 2.0 file from the 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.

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

  • Listener2D and Listener3D nodes to listen from a position different than the camera.

  • 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, static meshes only).

    • Collada (.dae).

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

  • 3D meshes use Mikktspace to generate tangents on import, which ensures consistency with other 3D applications such as 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.

  • Headless/server binaries can be downloaded for Linux and compiled for macOS. Any binary can be used without a window using the --no-window command line argument.

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

  • Color picker with RGB and HSV modes.

  • Containers (horizontal, vertical, grid, flow, center, margin, aspect ratio, draggable splitter, ...).

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

    • Supports rounded/beveled corners, drop shadows, per-border widths and 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 to easily perform procedural animations by code.

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

    • Can (de)serialize any Godot datatype, including 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.

  • Command line interface for automation.

    • Exporte e implante projetos usando plataformas de integração contínua.

    • Shell completion scripts are available for Bash, zsh and fish.

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