Godot 4.0 stable zarpa: todos a bordo para nuevos horizontes

Godot 4 stable publicado

Después de más de 3 años de romper y reconstruir desde cero, una revisión completa del núcleo y una reescritura completa del motor, a través de 17 alfas, 17 betas y 6 candidatos de lanzamiento, estamos encantados de decir:

¡Bienvenido al comienzo de Godot 4! Es hora de alcanzar nuevas alturas juntos.

Estamos extremadamente emocionados, pero sobre todo, nos sentimos honrados por la experiencia. Creemos que este proyecto es uno de los ejemplos más increíbles de colaboración abierta y desarrollo conjunto. ¡Así que esto es para todos y cada uno de los miembros de nuestra brillante comunidad de colaboradores y evaluadores!

Estamos orgullosos de trabajar con usted. Godot 4.0 es la culminación de años de tu tiempo y esfuerzo. Juntos, hemos construido una base nueva y sólida. Uno que abre nuevos horizontes y le da a Godot las alas para navegar los vientos del cambio, para crecer con la nueva tecnología y continuar satisfaciendo las necesidades cambiantes de los usuarios. A partir de este momento, construimos sobre esta base y enfocamos nuestros próximos esfuerzos en mejorar la usabilidad y el rendimiento.

Como sucedió con Godot 3.0, Godot 4.0 es solo el comienzo del viaje de Godot 4. Todavía esperamos que los usuarios encuentren errores que rompan el flujo de trabajo (especialmente en hardware menos común). Algunos flujos de trabajo aún se sentirán algo sin pulir y el rendimiento aún no se optimizará en esta primera versión estable. Pero tenga la seguridad de que planeamos publicar lanzamientos con frecuencia y regularidad (como lo hemos hecho con los Alphas y Betas). Por lo tanto, puede esperar que las versiones 4.0.1, 4.0.2, etc. sigan muy pronto, con nuevas funciones y mejoras más importantes más adelante este año en Godot 4.1.

En cuanto a los usuarios de Godot 3, no hace falta decir que seguirán recibiendo mucha atención a medida que respaldamos funciones relevantes y correcciones de errores para el próximo Godot 3.6. Este será nuestro lanzamiento de soporte a largo plazo (LTS), que planeamos mantener en el futuro previsible para habilitar el proyecto Godot 3 existente. A lo largo del desarrollo de Godot 4, hemos realizado una gran cantidad de trabajo compatible y relevante, y notará que algunas de las nuevas características ya se han incluido en Godot 3.4 y 3.5.

¡Sin más preámbulos, siéntete libre de saltar directamente a la página de descarga !

Nuestros amigos de GDQuest prepararon un video maravilloso para resaltar cuán grande es el lanzamiento de Godot 4.0. También tomaron la iniciativa de escribir esta publicación de blog, lo que permitió a los colaboradores del equipo de producción centrarse en los aspectos técnicos de esta versión. El equipo de GDQuest hace increíbles demostraciones de código abierto y tutoriales de YouTube , ¡y hacen cursos profesionales para Godot!


Para obtener más detalles, tome una taza de algo fuerte y disfrute navegando a través de la enorme lista de nuevas funciones.

Devolviendo

Como un esfuerzo de la comunidad, Godot depende de los contribuyentes individuales para mejorar. En los últimos años, las donaciones de usuarios y empresas nos permitieron contratar también a varios colaboradores principales para trabajar más horas en el motor y permitirnos finalizar el lanzamiento de Godot 4.0 más rápido. Como resultado, nuestros gastos mensuales son más altos que nuestros ingresos mensuales y hemos dependido de grandes donaciones únicas para financiar el desarrollo. Actualmente, necesitamos muchas más donaciones mensuales para poder mantener el ritmo que hemos tenido para el ciclo de desarrollo 4.0, sin mencionar la necesidad de contratar más colaboradores para enfocarnos en áreas clave que actualmente carecen de un mantenedor.

Además del apoyo financiero, también puede retribuir: escribiendo informes de errores de alta calidad, contribuyendo a la base del código, escribiendo documentación, escribiendo tutoriales (para los documentos o en su propio espacio) y apoyando a otros en las diversas plataformas de la comunidad respondiendo preguntas y proporcionando consejos útiles.

Por último, pero no menos importante, hacer juegos con Godot y acreditar el motor contribuye en gran medida a aumentar su popularidad y, por lo tanto, la cantidad de colaboradores activos que lo mejoran a diario. Recuerda, todos estamos juntos en esto y Godot requiere el apoyo de la comunidad en cada área para prosperar.

Nuevas características de Godot 4.0

Teniendo en cuenta que es nuestro lanzamiento más grande hasta la fecha y el más largo, Godot 4.0 es más una gran reconstrucción que una actualización regular.

Muchos de los cambios internos son difíciles de mostrar y gran parte del tiempo de desarrollo inicial se dedicó a refactorizar y reescribir las características existentes. Si tiene curiosidad por saber un poco más al respecto, el desarrollador principal de Godot, Juan Linietsky (reduz), cubrió algunas de las mejoras más importantes realizadas en el núcleo del motor en publicaciones anteriores del blog: 1 , 2 .

Dicho esto, la cantidad de funciones nuevas es alucinante, así que aquí hay una tabla de contenido para ayudarlo a navegar a las áreas que más le interesan:

Revisión de renderizado general y 3D

Vulkan y nuevos renderizadores

Las imágenes son lo primero que todos notan sobre un juego. Con dos nuevos backends Vulkan (Clustered y Mobile), el renderizado de Godot nunca ha sido tan avanzado.

Una isla vista desde arriba con un mar en calma que se extiende hasta el horizonte

Si bien estamos muy emocionados de aprovechar Vulkan para optimizar el rendimiento en el futuro, era muy importante no penalizar a los usuarios con hardware menos potente. Para eso, también hemos integrado un renderizador de compatibilidad basado en OpenGL destinado a admitir dispositivos más antiguos y de gama baja. Como siempre, queremos que la gente cree juegos en toda la gama de dispositivos para que todos los disfruten.

También estamos trabajando en un renderizador Direct3D 12 para una mejor compatibilidad con Windows y Xbox.

Con la contribución de Je06jm , ahora también puede aprovechar Fidelity FX Super Resolution 1.0 (FSR 1.0) de AMD para renderizar dinámica y bellamente a una resolución más baja mientras mantiene su juego funcionando sin problemas. Spoiler: El soporte para FSR 2.1 está planeado en versiones futuras.

Iluminación y sombras altamente mejoradas

Para empezar, los sistemas de iluminación global de Godot se han rehecho desde cero.

Por primera vez, Godot 4 presenta una novedosa técnica de iluminación global en tiempo real para grandes mundos abiertos. Juan creó e implementó SDFGI, o Signed Distance Field Global Illumination, y puede obtener más información al respecto aquí .

GDBot, el robot con cámara frontal frente a dos árboles

GIProbe ha sido reemplazado por el nodo VoxelGI, una solución en tiempo real adecuada para entornos de pequeña y mediana escala con resultados particularmente buenos para interiores. Por supuesto, aún puede usar mapas de luz para renderizar previamente la iluminación y las sombras en dispositivos de gama baja, pero la cocción de mapas de luz ahora usa la GPU para renderizar mucho más rápido.

Interior de un apartamento diminuto pero bien iluminado con solo una sala de estar y una cocina

Por último, nunca estuvimos del todo satisfechos con el aspecto de las sombras en Godot 3. Godot 4 fue una oportunidad para volver a la mesa de dibujo en el renderizado de sombras para lograr una mayor calidad y proporcionar un control más granular.

 

Nuevas técnicas de optimización de renderizado

Godot 4 pone a tu disposición varias técnicas nuevas de optimización de renderizado, posibles gracias a Joan Fons (JFonS) y Juan.

La nueva selección automática de oclusión puede detectar modelos ocultos por otra geometría y eliminarlos dinámicamente para aumentar el rendimiento de procesamiento de CPU y GPU.

Escena al aire libre con estructuras alámbricas moradas que representan formas de oclusión

En entornos abiertos, pocos objetos se superponen, por lo que la eliminación de oclusiones no ayuda mucho. Allí, puede aprovechar el nuevo LOD de malla automática o usar HLOD manual con control total sobre los rangos de visibilidad .

Procesamiento medio y posterior mejorado

Si está buscando agregar un poco más de calidad cuando se ejecuta en dispositivos de gama alta, el colaborador de renderizado Clay John (clayjohn) le ofrece Screen Space Indirect Lighting .

SSIL le permite mejorar las áreas oscuras y la iluminación indirecta mediante el muestreo del espacio de la pantalla. Además, con la poderosa implementación SSAO (oclusión ambiental del espacio de pantalla), puede acceder a muchas configuraciones útiles como el efecto de la luz (cuánta luz directa se ve afectada). Puede optimizar la calidad ignorando objetos con un mapa de oclusión ambiental.

Para los usuarios interesados ​​en la fotografía, Godot 4.0 presenta unidades de luz realistas que le permiten ajustar la intensidad de las luces y usar la configuración estándar de la cámara (como apertura, velocidad de obturación e ISO) para controlar el brillo de la escena final. Las unidades de luz físicas están desactivadas de forma predeterminada, pero puede habilitarlas en la configuración del proyecto.

Mejoras 2D

Potentes nuevas herramientas de edición de niveles 2D

Como un lanzamiento importante que rompe la compatibilidad, Godot 4 nos permitió introducir algunos cambios radicales en el flujo de trabajo 2D.

La mayor mejora es quizás el nuevo editor de mapas de mosaicos, que se ha rediseñado en función de sus solicitudes e informes. Gilles Roudière (groud), nuestro mantenedor del editor 2D, unificó el flujo de trabajo para conjuntos de mosaicos y mapas de mosaicos. Tiene mucha más flexibilidad para organizar y colocar mosaicos o proporcionarles metadatos y animaciones. Puede ajustar las colisiones, la navegación, los puntos de pivote y muchas más propiedades de los mosaicos de manera mucho más eficiente.

El nuevo editor de mapas de mosaicos incluye capas, un nuevo sistema de mosaico automático del terreno para pintar grandes áreas rápidamente, un sistema de pintura aleatorio para esparcir plantas, rocas y otros accesorios, y una herramienta de selección para copiar, estampar y guardar selecciones para reutilizarlas más tarde.

Las texturas del conjunto de mosaicos se expanden automáticamente para evitar que aparezcan espacios entre los mosaicos, y una nueva función de ubicación de escenas le permite agregar personajes, cofres y otras escenas interactivas en las celdas de la cuadrícula.

En resumen, hay una pequeña curva de aprendizaje inicial, ¡pero probablemente puedas construir la mitad de un juego solo con fichas! Una vez más, esto es 4.0, por lo que, como con cualquier gran cambio nuevo, incorporaremos los comentarios de los usuarios para mejorar la UX en las próximas versiones de Godot 4.

Para obtener más detalles sobre el nuevo editor de mosaicos, puede leer los múltiples informes de progreso de Gilles: 1 , 2 , 3 , 4 , 5 .

Nuevas opciones de renderizado 2D

El renderizador de lienzos 2D se actualizó para admitir grupos de lienzos que permiten la combinación compleja de varios elementos de lienzo superpuestos. Por ejemplo, puede apilar un montón de sprites y hacer que se mezclen con el fondo como si fueran un solo elemento.

Con la nueva propiedad Clip Children, puede usar cualquier elemento 2D como máscara. Finalmente, se agregó la opción Multisample Anti-Aliasing (MSAA) al motor 2D para una mejor calidad de imagen y bordes más suaves.

Tres caras de rana una al lado de la otra, una sobre un círculo y dos recortadas dentro de un círculo

Iluminación y sombras 2D mejoradas

2D obtuvo su parte de mejoras de iluminación con luces y sombras direccionales 2D.

Nivel de bosque de juego de desplazamiento lateral en 2d con un pequeño personaje de cocodrilo iluminado por una luz direccional

Al utilizar campos de distancia con signo en los sombreadores, puede lograr efectos visuales avanzados, como sombras largas, halos y contornos nítidos. Para una sensación 3D, la elevación de la luz se puede controlar en mapas normales. Por último, pero no menos importante, notará una mejora significativa en el rendimiento cuando utilice varias fuentes de luz.

Sombreadores y efectos visuales

Nuevos efectos atmosféricos

Para ayudar a mejorar la fidelidad de sus escenas 3D, hemos trabajado en algunas características emocionantes y esperadas desde hace mucho tiempo. La niebla volumétrica hace su primera aparición en Godot 4, equilibrando un aspecto realista y un rendimiento rápido, gracias al uso de la reproyección temporal.

Mirando la ventana de un pequeño apartamento con luz solar que revela humo o niebla en la sala de estar

Puede configurar el efecto globalmente o definir áreas específicas con nodos FogVolume. Incluso puede crear efectos dinámicos complejos escribiendo sombreadores personalizados que operan en los nodos de FogVolume.

Para otros efectos atmosféricos, Godot 4.0 presenta sombreadores de cielo que permiten a los usuarios crear cielos dinámicos que se actualizan en tiempo real (incluidos los reflejos). Para obtener más información, consulte el artículo Introducción a los sombreadores de cielo.

Cielo nocturno estrellado sobre una isla.  La interfaz del editor de Godot rodea la escena, con un selector de color abierto

Proyección de texturas y materiales

Además de las nuevas texturas de ruido que se adaptaron a Godot 3.5, estamos muy contentos de presentar las calcomanías que ahora te permiten proyectar materiales en superficies para decorar tus entornos.

Interacción mejorada del mundo Shader-Game

Los artistas de efectos visuales entre ustedes deberían encontrar muchos cambios útiles en las partículas basadas en GPU. Esos ahora vienen con soporte para atractores, colisión, rastros, subemisores y emisión manual.

Para los efectos que se aplican a todo el mundo del juego, como la dirección del viento o el nivel de humedad, ahora puede compartir valores globales entre materiales.

Editor de sombreado mejorado

La introducción de todas estas características nuevas creó una vez más la oportunidad de mejorar la forma y la función en el editor de sombreado visual. Ahora se ve y se siente mejor.

Captura de pantalla del editor de sombreado visual con varios nodos conectados

Lenguaje de sombreado extendido

Yuri Rubinsky (Chaosus) puso mucho amor en hacer que el lenguaje de shaders y los shaders visuales fueran más accesibles y versátiles. Consulte las publicaciones de su blog y las de Juan sobre algunas de las mejoras: 1 , 2 .

Algunas adiciones interesantes incluyen soporte para arreglos uniformes y variaciones de fragmento a luz, así como nuevas funciones de sintaxis, como estructuras, macros de preprocesador y sombreadores incluidos .

Calcular sombreadores

Por último, pero no menos importante, Godot ahora admite y usa sombreadores de cómputo para acelerar los algoritmos usando la tarjeta gráfica.

Secuencias de comandos

GDScript

Dado que GDScript es el lenguaje más utilizado entre los usuarios actuales de Godot, queríamos mejorar realmente la experiencia de codificación en Godot 4 con algunas de las funciones de lenguaje más solicitadas.

Descubrirá que el sistema de escritura estática ahora es más sólido, sin errores de dependencia cíclica y la capacidad de escribir matrices. Puede aprovechar los beneficios de las funciones, lambdas y señales de primera clase, una nueva sintaxis de propiedades, las palabras clave await y super, y herramientas funcionales como map o reduce.

Captura de pantalla de un archivo GDScript que muestra parte de la nueva sintaxis en Godot 4.0

Con menos uso de cadenas, su código puede ser mucho más confiable. Las nuevas anotaciones integradas aclaran el lenguaje y mejoran la sintaxis de las propiedades exportadas. Puede nombrar variables y funciones usando caracteres Unicode, lo que hace que el código sea más fácil de escribir y leer para los desarrolladores que dependen de alfabetos no latinos.

El informe de errores mejoró considerablemente con la capacidad del compilador para informar muchos errores simultáneamente utilizando mensajes de error más explícitos y nuevas advertencias para errores comunes.

Captura de pantalla de un archivo GDScript con varios errores resaltados en rojo

Para colmo, sus secuencias de comandos ahora pueden generar automáticamente documentación en la ayuda integrada y la información sobre herramientas del panel Inspector. Esta característica práctica y que ahorra tiempo fue implementada por un estudiante, Thakee Nathees (ThakeeNathees), durante el Google Summer of Code 2020. Puedes leer su informe aquí .

A pesar del crecimiento en funciones, el tiempo de ejecución de GDScript es mucho más rápido y más estable en Godot 4. Esto se logró mediante una reescritura completa del backend del lenguaje por parte de nuestro principal mantenedor de secuencias de comandos, George Marques (vnen). Si está interesado en leer más, George proporcionó varios informes detallados sobre las nuevas características del lenguaje ( 1, 2 ) y sobre el proceso de toma de decisiones para el nuevo analizador de lenguaje y tiempo de ejecución ( 1, 2, 3, 4).

GDExtension - experimental

A veces, las secuencias de comandos a nivel de usuario no son suficientes. Al ser un proyecto de código abierto, Godot siempre ha valorado la extensibilidad.

Con la capa de API nativa de GDN existente, ya podía ampliar el motor sin bifurcarlo ni volver a compilarlo. Pero fue nuestro primer intento de crear una buena capa de abstracción para las partes internas del motor en la que pudieras conectarte y jugar. Y así, a pesar de todos sus beneficios, GDNative aún no se sentía del todo bien.

Con Godot 4, presentamos un nuevo sistema llamado GDExtension. Por diseño, toma las mejores partes de la creación de extensiones GDNative y la escritura de módulos de motor personalizados utilizando lenguajes de alto rendimiento como C, C++ o Rust.

El código que crea con GDExtension se puede transferir al motor si es necesario, y viceversa: algunas partes del motor se pueden convertir en una biblioteca de GDExtension, lo que reduce la sobrecarga del motor. También ofrece una integración más estrecha en el editor ahora, ya que puede exponer su código de extensión como nodos y el motor generará automáticamente páginas de ayuda.

GDExtention fue implementado por Juan y George, y muchos colaboradores lo mejoraron aún más, especialmente al portar los enlaces oficiales de C++ de godot-cpp. El entusiasta residente de XR y colaborador de Godot, Bastiaan Olij (BastiaanOlij), se tomó el tiempo de escribir una publicación de blog para presentar GDExtensions.

Observaciones importantes:

  • Esta función aún es experimental, por lo que es razonable esperar cambios importantes a medida que se perfecciona la API.
  • Las bibliotecas Godot 3 GDNative no son automáticamente compatibles.
  • La documentación es todavía un trabajo en progreso.

 

 Para mas características mirar el comunicado oficial: