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.
Checking the stable version of the documentation...
Filosofia de Design do Godot
Agora que você já deu uma mergulhada no assunto, vamos falar no design do Godot.
Cada game engine é diferente e atende a diferentes necessidades. Além de oferecer uma variedade de recursos, o design de cada engine é único. Isso leva a diferentes fluxos de trabalho e diferentes formas de formar as estruturas de seus jogos. Tudo isso decorre de suas respectivas filosofias de design.
Esta página está aqui para ajudá-lo a entender como funciona o Godot, começando com alguns de seus fundamentos. Não é uma lista de funcionalidades disponíveis, nem uma comparação entre game engines. Para saber se alguma game engine é uma boa escolha para seu projeto, você mesmo precisa testá-las e entender seu design e limitações.
Por favor, assista Godot explicado em 7 minutos se você estiver procurando uma visão geral dos recursos da engine.
Design orientado a objetos e composição
Godot adota o design orientado a objetos em seu núcleo, com seu sistema de cena flexível e hierarquia de Nós. Ele tenta ficar longe de padrões estritos de programação para oferecer uma maneira intuitiva de estruturar seu jogo.
Por um lado, Godot permite compor ou agregar cenas. É como prefabs aninhados: você pode criar uma cena BlinkingLight e uma cena BrokenLantern que usa o BlinkingLight. Em seguida, crie uma cidade repleta de BrokenLanterns. Mude a cor do BlinkingLight, salve e todos os BrokenLanterns na cidade serão atualizados instantaneamente.
Além disso, você pode herdar de qualquer cena.
Uma cena Godot pode ser uma Arma, um Personagem, um Item, uma Porta, um Nível, parte de um nível... qualquer coisa que você quiser. Funciona como uma classe em código puro, exceto que você é livre para projetá-la usando o editor, usando apenas o código ou misturando e combinando os dois.
É diferente dos prefabs encontrados em vários engines 3D, pois você pode herdar e estender essas cenas. Você pode criar um Mago que amplie seu Personagem. Modifique o Personagem no editor e o Mago também será atualizado. Isso ajuda você a construir seus projetos para que sua estrutura corresponda ao design do jogo.

Observe também que Godot oferece muitos tipos diferentes de objetos chamados nós, cada um com uma finalidade específica. Os nós fazem parte de uma árvore e sempre herdam de seus pais até a classe Node. Embora o mecanismo apresente alguns nós como formas de colisão que um corpo físico pai usará, a maioria dos nós funciona independentemente um do outro.
Em outras palavras, os nós do Godot não funcionam como componentes de algumas outras game engines.

Sprite2D é um Node2D, um CanvasItem e um Node. Possui todas as propriedades e recursos de suas três classes pai, como transformações ou a capacidade de desenhar formas personalizadas e renderizar com um shader personalizado.
Pacote com tudo incluído
Godot tenta fornecer suas próprias ferramentas para atender às necessidades mais comuns. Possui um editor de script dedicado, um editor de animação, um editor de tilemap, um editor de shader, um depurador, um criador de perfil, a capacidade de rodar localmente e em dispositivos remotos, etc.

O objetivo é oferecer um pacote completo para criação de jogos e uma experiência de usuário contínua. Você ainda pode trabalhar com programas externos desde que haja um plugin de importação disponível no Godot para isso.
Em parte, é também por isso que Godot oferece sua própria linguagem de programação GDScript junto com C#. O GDScript foi projetado para as necessidades de desenvolvedores e designers de jogos e está totalmente integrado à engine e ao editor.
O GDScript permite que você escreva código usando uma sintaxe baseada em recuo, mas detecta tipos e oferece a qualidade de preenchimento automático de uma linguagem estática. Também é otimizado para código de jogo com tipos integrados como Vetores e Cores.
Observe que com GDExtension, você pode escrever código de alto desempenho usando linguagens compiladas como C, C++, Rust, D, Haxe ou Swift sem recompilar a engine.
Observe que o espaço de trabalho 3D não possui tantas ferramentas quanto o espaço de trabalho 2D. Você precisará de programas externos ou complementos para editar terrenos, animar caracteres complexos e assim por diante. O Godot fornece uma API completa para estender a funcionalidade do editor usando o código do jogo. Confira O editor do Godot é um jogo do Godot.
Código aberto
Godot oferece uma base de código totalmente aberta sob a licença MIT. Isso significa que a base de código é gratuita para qualquer pessoa baixar, usar, modificar ou compartilhar, desde que seu arquivo de licença seja mantido intacto.
Todas as tecnologias incluídas no Godot, incluindo bibliotecas de terceiros, devem ser legalmente compatíveis com essa licença de código aberto. Portanto, a maior parte do Godot é desenvolvida do zero por colaboradores da comunidade.
Qualquer um pode conectar ferramentas proprietárias em seus projetos - elas só não vêm junto com o motor do Godot. Isso pode incluir NViDia PhysX, o Google Admob ou um importador de arquivos FBX. Qualquer um destes pode vir como plugins de terceiros.
Por outro lado, uma base de código aberta significa que você pode aprender e estender a engine como desejar. Você também consegue depurar jogos facilmente, pois o Godot irá mostrar erros com um rastreamento de pilha, mesmo se eles vierem da própria engine.
Nota
Isso não afeta o trabalho que você faz com o Godot de maneira alguma: não há strings anexadas à engine ou qualquer coisa que você faça com ela.
Orientada pela comunidade
O Godot é feito por sua comunidade, para a comunidade e para todos os criadores de jogos. São as necessidades dos usuários e as discussões abertas que geram as principais atualizações. Novas funcionalidades dos principais desenvolvedores geralmente focam no que beneficiará a maioria dos usuários em primeiro lugar.
Dito isto, embora alguns desenvolvedores principais trabalhem nele em tempo integral, o projeto contava com milhares de colaboradores no momento em que este artigo foi escrito. Programadores benevolentes trabalham em recursos que eles próprios podem precisar, então você verá melhorias em todos os cantos da engine ao mesmo tempo em cada versão principal.
O editor do Godot é um jogo do Godot
O editor do Godot é executado na engine de jogo. Ele usa o próprio sistema de interface do usuário da engine, pode recarregar códigos e cenas ao testar seus projetos ou executar códigos de jogos no editor. Isso significa que você pode usar o mesmo código e cenas para seus jogos ou construir plug-ins e estender o editor.
Isso leva a um sistema de UI confiável e flexível, pois alimenta o próprio editor. Com a anotação @tool, você pode executar qualquer código de jogo no editor.
RPG in a Box é um editor de RPG voxel feito com o Godot. Ele usa as ferramentas de interface do usuário do Godot para seu sistema de programação baseado em nós e para o restante da interface.
Coloque a anotação @tool no topo de qualquer arquivo GDScript e ele será executado no editor. Isso permite importar e exportar plug-ins, criar plug-ins como editores de nível personalizado ou criar scripts com os mesmos nós e API que você usa em seus projetos.
Nota
O editor é inteiramente escrito em C++ e é compilado estaticamente num binário. Isso significa que você não consegue importa-lo como um objeto qualquer que teria um arquivo project.godot.
Engine 2D e 3D separados
O Godot oferece mecanismos dedicados de renderização 2D e 3D. Como resultado, a unidade base para cenas 2D é pixels. Mesmo que os mecanismos sejam separados, você pode renderizar 2D em 3D, 3D em 2D e sobrepor sprites 2D e fazer a interface em seu mundo 3D.