Lista das 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.3). More features are available in the latest development version (4.0).

Funcionalidades

Plataformas

Pode executar tanto o editor quanto os projetos exportados:

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

Executa projetos exportados:

  • Android 4.4 e superior.

  • iOS 10.0 e superior.

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

  • Consoles.

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

Editor

Funcionalidades:

  • Editor de árvore de cena.

  • Editor de script.

  • Suporte a external script editors 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:

  • Plugins para o editor podem ser baixados através da biblioteca de assets, permitindo a expansão das funcionalidades do editor.

  • Crie seus próprios plugins utilizando GDScript para adicionar novas funcionalidades ou para acelerar o seu trabalho.

  • Baixe projetos a partir da biblioteca de assets e importe-os diretamente.

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:

  • Sprite, polignos e renderizador 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 a Pseudo-3D duplicando automaticamente uma camada várias vezes.

  • 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 monocrómaticas bem como coloridas. Os formatos suportados são TTF e OTF.

    • 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 de HDR com sRGB.

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

  • Segue o modelo Disney PBR.

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

  • Mapeamento Normal.

  • 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: Desvanecimento de proximidade (partículas suaves).

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

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.

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

    • Lightmaps são previamente calculados na CPU.

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

Opções de execução:

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

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

  • GLES3: Reflexões de Screen-space.

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

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

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

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

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

  • ETC1 (recomendado ao utilizar o renderizador GLES2).

  • GLES3: S3TC (não é compatível com as plataformas móveis/Web).

antisserrilhamento:

  • Antisserrilhado (MSAA) de várias amostras.

A maioria desses efeitos pode ser ajustada 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 (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.

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.

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

Detecção de colisões:

  • Formas previamente construídas: cubo, esfera, cápsula, cilindro (apenas com física de projétil).

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

  • 3D: Shaders customizados para vértices, fragmentos, luzes e céu.

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

  • 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 cross-language scripting.

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

ScriptVisual:

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.

  • Node Listener3D para escutar de uma posição diferente da câmera em 3D.

  • Entrada de áudio para gravar microfones.

  • Entrada MIDI.

    • Sem suporte para saída MIDI por enquanto.

APIs utilizadas:

  • Windows: WASAPI.

  • macOS: CoreAudio.

  • Linux: PulseAudio ou ALSA.

Importar

Formatos:

  • Imagens: Veja Importing images.

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

    • Collada (.dae).

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

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.

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 não confiáveis, confiáveis e ordenadas.

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

Mobile

  • In-app purchases on Android and iOS.

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

XR support (AR and VR)

  • Support for ARKit on iOS out of the box.

  • Suporte às API's de OpenXR e OpenVR.

  • Headsets populares de VR como o Oculus Quest e HTC Vive graças à plugins.

GUI system

Godot's GUI is built using the same Control nodes used to make games in Godot. The editor UI can easily be extended in many ways using add-ons.

Nodes:

  • Botões.

  • Checkboxes, check buttons, radio buttons.

  • Text entry using LineEdit (single line) and TextEdit (multiple lines).

  • Dropdown menus using PopupMenu and OptionButton.

  • Scrollbars.

  • Rótulos.

  • RichTextLabel for text formatted using BBCode.

  • Trees (can also be used to represent tables).

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

  • Controls can be rotated and scaled.

Sizing:

  • Anchors to keep GUI elements in a specific corner, edge or centered.

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

  • Scale to multiple resolutions using the 2d or viewport stretch modes.

  • Support any aspect ratio using anchors and the expand stretch aspect.

Theming:

  • Editor de temas embutido.

    • Generate a theme based on the current editor theme settings.

  • Procedural vector-based theming using StyleBoxFlat.

    • Supports rounded/beveled corners, drop shadows and per-border widths.

  • Texture-based theming using StyleBoxTexture.

Godot's small distribution size can make it a suitable alternative to frameworks like Electron or Qt.

Animação

  • Direct kinematics and inverse kinematics.

  • Support for animating any property with customizable interpolation.

  • Support for calling methods in animation tracks.

  • Support for playing sounds in animation tracks.

  • Support for Bézier curves in animation.

Formats

  • Scenes and resources can be saved in text-based or binary formats.

    • Text-based formats are human-readable and more friendly to version control.

    • Binary formats are faster to save/load for large scenes/resources.

  • Read and write text or binary files using File.

    • Can optionally be compressed or encrypted.

  • Read and write JSON files.

  • Read and write INI-style configuration files using ConfigFile.

    • Can (de)serialize any Godot datatype, including Vector, Color, ...

  • Read XML files using XMLParser.

  • Pack game data into a PCK file (custom format optimized for fast seeking), into a ZIP archive, or directly into the executable for single-file distribution.

  • Export additional PCK files that can be read by the engine to support mods and DLCs.

Diversos

  • Low-level access to servers which allows bypassing the scene tree's overhead when needed.

  • Command line interface for automation.

    • Export and deploy projects using continuous integration platforms.

    • Acabamento de scripts estão disponíveis para Bash, zsh e fish.

  • Support for C++ modules statically linked into the engine binary.

  • Engine and editor written in C++03.

    • Can be compiled using GCC, Clang and MSVC. MinGW is also supported.

    • Friendly towards packagers. In most cases, system libraries can be used instead of the ones provided by Godot. The build system doesn't download anything. Builds can be fully reproducible.

    • Godot 4.0 will be written in C++17.

  • Licensed under the permissive MIT license.

Ver também

O repositório roadmap documenta os recursos que foram acordados e podem ser implementados em versões futuras do Godot.