Após cinco meses de desenvolvimento, foi lançado o Godot 4.2, um motor de jogo gratuito adequado para a criação de jogos 2D e 3D. O motor suporta uma linguagem simples de aprender para a lógica de jogo, um ambiente gráfico para o design de jogos, um sistema de implantação de jogos com um clique, amplas capacidades de animação e simulação de processos físicos, um depurador integrado e um sistema para identificação de gargalos de desempenho. O código do motor de jogo, do ambiente de design de jogos e das ferramentas de desenvolvimento relacionadas (motor físico, servidor de som, back-ends de renderização 2D/3D, etc.) é distribuído sob a licença MIT.
Os códigos-fonte do motor foram tornados públicos em 2014 pelo estúdio OKAM, após dez anos de desenvolvimento de um produto proprietário de nível profissional, que foi utilizado para criar e publicar muitos jogos para PC, consoles de jogos e dispositivos móveis. O motor suporta todas as populares plataformas de desktop e móveis (Linux, Windows, macOS, Wii, Nintendo 3DS, PlayStation 3, PS Vita, Android, iOS, BBX), bem como o desenvolvimento de jogos para a Web. Compilações binárias prontas para execução foram criadas para Linux, Android, Windows e macOS.
Principais mudanças:
- Para os desenvolvedores de jogos 2D, foi adicionada a suporte para escalonamento inteiro forçado, permitindo obter uma grade de pixels quadrados, independentemente da proporção de aspecto real. Foi possibilitada a obtenção de coordenadas baricêntricas da normal a partir de pontos de interseção do objeto com o raio. Foram adicionados os métodos Rotate_toward e Angle_difference para o tratamento adequado de rotação e ângulos. Nos nós Line2D, foi adicionada a propriedade "closed" para a criação de linhas fechadas com preenchimento contínuo.

- Foi realizada uma melhoria na confiabilidade do sistema de animação. Os nós AnimationPlayer e AnimationTree foram reformulados e unificados, com as partes comuns extraídas para uma classe intermediária AnimationMixer. Foi adicionada uma opção para mistura determinística. No visualizador de animação, foi incluído um modo de calcário (onion skinning), mostrando sobreposições semi-transparentes com os quadros anteriores e seguintes da animação.

- As funcionalidades de "fabricação" de rede de navegação (baking, conversão em forma estática) para 2D foram aprimoradas para se aproximar das capacidades já disponíveis na navegação 3D. Por exemplo, o suporte para redes 2D agora inclui o trabalho com corpos físicos, instâncias de malhas poligonais, polígonos simples e mapas de ladrilhos (tilemap). servidores Para a navegação 2D e 3D, foi adicionada a suporte para o trabalho em múltiplos threads de fabricação de malhas.

- Foi realizado um refatoramento do código para trabalhar com tiles e mapas de tiles. Foram otimizadas as operações de agrupamento de blocos e classificação ao longo do eixo Y, permitindo uma redução significativa no tempo de atualização dos tiles. Foi feito um trabalho para melhorar a facilidade de criação e utilização de mapas de tiles. Um ferramenta para rodar e girar tiles durante sua colocação foi adicionada. As ferramentas para edição de polígonos e cenas de tiles foram aprimoradas.

- No editor de scripts GDScript, agora é possível criar áreas de código nomeadas para recolher blocos durante a edição e simplificar a navegação. O depurador de scripts agora tem suporte completo para código multithreaded, pilha de execução e pontos de interrupção. Nos scripts baseados em C#/.NET, o suporte para plataformas Android (requer .NET 7.0+) e iOS (requer .NET 8.0) foi implementado. Nos scripts GDScript, o suporte para código tipado estaticamente foi expandido, e o suporte para literais de string r-string (raw string) foi adicionado, além de expandidas as capacidades do operador match.

- No viewport 3D, o suporte para controle de transformação no estilo Blender foi aprimorado, utilizando o mouse e teclas de atalho. A informação visual estendida no viewport 3D agora é mostrada apenas para os objetos selecionados. Indicadores adicionais foram adicionados para elementos como decals e volume de névoa. O trabalho com gizmos foi melhorado — agora é possível expandir separadamente qualquer lado de formas volumétricas na janela de visualização.

- Os menus de contexto e dicas de ferramentas nos painéis 'Inspeção' e 'Sinais' foram aprimorados. As dicas de ferramentas no editor de temas agora incluem descrições das propriedades. No painel de gerenciamento de arquivos, agora é possível destacar pastas visualmente atribuindo cores diferentes a elas. A interface do editor de recursos de gradientes foi reformulada. No editor de áreas de texturas, a operação foi unificada para todos os recursos suportados, incluindo estilos e atlas.

- Na biblioteca de assets, a exibição dos resultados de busca foi melhorada, e agora é possível selecionar um diretório diferente para instalar complementos ou recursos.

- No gerenciador de projetos, a disposição dos principais elementos de controle foi reformulada e a interface de importação de projetos foi modernizada.

- As funcionalidades para o desenvolvimento de plugins para o editor foram expandido. O acesso a todas as funcionalidades do editor é garantido através da classe EditorInterface. Métodos convenientes foram implementados para acesso direto aos painéis 2D e 3D. Foi adicionada a capacidade de exibir um diálogo com avisos sobre alterações não salvas.
- O desenvolvimento do sistema experimental de extensões GDExtension continua, permitindo o uso de linguagens de baixo nível, como C++, como linguagens de script para jogos, sem a necessidade de recompilar o motor ou alterar o código. A possibilidade de utilizar GDExtensions ao exportar para a Web foi adicionada.
- A interface do usuário foi modificada para gerenciar o foco. Agora é possível transferir o foco para abas individuais no painel de abas, inclusive ao navegar com o teclado. Um método foi adicionado aos nós de controle (Control) para localizar o próximo elemento focável adjacente. Nós de construção de grafos (GraphEdit e GraphNode) foram significativamente reformulados. As opções de personalização na barra de ferramentas do nó principal GraphEdit foram ampliadas.

- Foi adicionada a capacidade de alterar o tipo de importação de ativos em tempo real com atualização automática de cenas e recursos, sem a necessidade de reiniciar o editor. As opções de importação disponíveis foram ampliadas, e agora é possível modificar as propriedades físicas dos objetos importados, bem como as configurações de sombras e visibilidade. Também foi incluída a possibilidade de pré-visualizar animações em uma janela de importação. O suporte para a importação de ativos do Blender no formato GLTF foi expandido. Adicionou-se suporte para a importação de imagens no formato KTX.

- Foram feitas otimizações voltadas para aumentar o desempenho de renderização. Para acelerar o desempenho em dispositivos móveis, as barreiras raster foram divididas em componentes de vértice e fragmento. A geração de texturas com ruído foi acelerada. Um passe prévio para calcular a profundidade foi adicionado. O tempo de carregamento e compilação de shaders foi reduzido. O armazenamento de malhas poligonais na memória foi otimizado. Adicionou-se suporte para compressão de malhas poligonais para reduzir a largura de banda durante sua transmissão.
- Foi adicionada a capacidade de criar seus próprios objetos de textura (exemplo de uso de shaders computacionais para criar texturas com efeito de água).
- Adicionado API para chamada de código no fluxo de renderização, o que pode ser necessário, por exemplo, quando é preciso sincronizar o shader computacional com a renderização.
- Suporte adicionado para a versão 2.2 da tecnologia de superamostragem AMD FSR (FidelityFX Super Resolution), que utiliza algoritmos de escalonamento espacial e reconstrução de detalhes para reduzir a perda de qualidade da imagem ao aumentá-la e transformá-la em uma resolução mais alta.
- Proposto um novo redutor de ruído JNLM, que utiliza mapas de iluminação (lightmapper) e shaders computacionais. O JNLM é significativamente mais rápido que a biblioteca anterior de remoção de ruído OIDN (Open Image Denoise), embora em algumas situações seu desempenho em qualidade possa ser inferior.
- Nos métodos de renderização Forward+ e Mobile, foi adicionado suporte para renderização 2D em um alcance dinâmico ampliado de brilho (HDR), permitindo que jogos 2D implementem alguns efeitos 3D, como brilho. No método de renderização Compatibility, foi adicionado suporte para sombras tridimensionais.
- Para macOS e Windows, foi proposto um novo driver de renderização OpenGL, que utiliza a camada ANGLE, traduzindo chamadas OpenGL para a API Direct3D 11 e Metal.
- O sistema de simulação de partículas foi reformulado para simplificar a manutenção e expandir o controle sobre o movimento das partículas. Por exemplo, agora é possível animar e herdar a velocidade de movimento, além de alterar o número de partículas emitidas. Um ferramenta foi adicionada para transformar o código de geração de partículas que utiliza CPU para um código equivalente que utiliza GPU.
- Adicionado suporte para o uso de diálogos nativos de seleção de arquivos em Linux, macOS e Windows, assim como a capacidade de copiar e colar imagens através da área de transferência.
- A arquitetura do Godot foi reformulada para a plataforma Android, eliminando a dependência com o componente Android Fragment, o que reduziu o tempo de inicialização de aplicativos e jogos e possibilitou a operação com várias janelas.
- Estabelecido o desenvolvimento de builds oficiais do editor Godot para plataformas ARM de 32 e 64 bits.
Fonte: opennet.ru











