Godot 4.2 introduce diversas mejoras de rendimiento y soporte para FSR 2.2
Godot 4.2 ya está disponible como la nueva versión estable del motor de videojuegos distribuido como código abierto, y como ya es habitual por parte del proyecto, llega con una gran cantidad de novedades que resumiremos en esta entrada, obviamente destacando los aspectos más importantes.
Siguiendo la tradición, lo primero que se menciona es la implementación de más de 1.800 mejoras procedentes de 359 contribuidores que han aportado durante los últimos cinco meses. Los responsables de Godot muestran su agradecimiento a todos aquellos que han reportado problemas durante el periodo de pruebas, pero lo importante es ver que el proyecto está vivo y que tiene un desarrollo constante, lo que abre la puerta a que en un futuro pueda ser esa alternativa a Unity que algunos esperan que sea (al menos para ciertos proyectos pequeños y medianos).
Como aquí hay mucha tela que cortar, vamos a mencionar las novedades que ha traído Godot 4.2, empezando por la inclusión del nodo AnimationMixer
como una clase intermedia para AnimationPlayer
y AnimationTree
; que los nodos GraphEdit
y GraphNode
han sido modificados con múltiples cambios de nombre, eliminación temporal de nodos de comentarios y la introducción de GraphElement
; algunos cambios en el importador GLTF que pueden hacer que los nodos en las escenas importadas tengan nombres ligeramente diferentes; cambios en la forma en que el motor almacena las mallas internamente para mejorar el rendimiento y la utilización del ancho de banda en dispositivos de gama baja; el renombrar un bus de audio que ya no emite la señal bus_layout_changed
en AudioServer
, recomendándose usar la señal bus_renamed
en su lugar; además de haberse renombrado el paquete de Android de org.godotengine
a com.example
.
A nivel del núcleo y los sistemas, el lanzamiento que nos ocupa incluye correcciones para limitaciones en el diseño cuando se cambian escenas o renombran nodos durante el uso de ready
, ya que dichas limitaciones derivaban en caídas de la aplicación o el motor. También se han corregido diversos problemas relacionados con el renombrar y/o mover ficheros que podían llevar a la corrupción de ficheros de escnea y otro que se manifestaba en caídas y escritura excesiva de slot >= slot_max
en el registro de salida. Por otro lado, ahora es posible cargar ficheros OGG en el entorno de ejecución y los ficheros SVG pueden ser cargados desde el binario del búfer o una cadena de caracteres.
En lo que respecta a características para proyectos en 2D y en 3D, el encargado del soporte nativo de Wayland ha aparcado este trabajo para implementar escalado basado en enteros y forzado en proyectos en 2D. Otra cosa destacada de este frente es “la capacidad de obtener coordenadas baricéntricas” en proyectos que requieren valores precisos desde puntos de contacto, lo cual debería de mejorar en aspectos como un juego similar al F-Zero de Nintendo o implementar caminatas en paredes que desafían la gravedad.
La malla de navegación para proyectos en 2D ha sido mejorada con el fin de equipararla con la navegación en proyectos tridimensionales, permitiendo así manejar las físicas de los cuerpos, las instancias de malla, los polígonos simples y los mapas de mosaico. Además, tanto la navegación en 2D como en 3D soporta ahora multiproceso cuando se procesa la navegación en malla, lo que ha derivado en la eliminación del stuttering y la mejora del rendimiento.
Los mapas de mosaicos también han recibido dos grandes mejoras a nivel de rendimiento y se ha destacado la incorporación de una nueva nueva herramienta que permite voltear y rotar cualquier mosaico o patrón de mosaico a la hora de colocarlos en el mundo creado para el juego, cosas que han llegado junto a mejoras para los mosaicos de escenas, edición de polígonos, sugerencias varias, consejos, etc.
Además de los aspectos relacionados con el funcionamiento y el desempeño del motor, el editor es otro componente extremadamente importante. Godot 4.2 ha incluido en este frente soporte para regiones de código en la versión con GDScript, los cuales permite dividir los scripts en bloques con nombre que son plegables y fáciles de navegar.
Para los puertos de vista y las herramientas 3D, una de las limitaciones conocidas del motor es que varias formas de cuadros se definen como un punto central y varias extensiones simétricas, algo que ha sido al menos mitigado en este lanzamiento al permitirse ampliar individualmente dentro de la ventana gráfica del editor.
Una de las primeras cosas con las que se encuentran los usuarios de Godot después de abrir la aplicación es el gestor de proyectos, que en el lanzamiento que nos ocupa ha mejorado en la disposición general de los controles y en el flujo de importación de los proyectos. Por otro lado, el editor de plugins es capaz de hacer saltar un diálogo de aviso para advertir al usuario cuando hay cambios sin guardar en el editor.
Otra novedad destacada de Godot 4.2 es que las bibliotecas dinámicas pueden ser cargadas en la plataforma web, por lo que GDExtensions puede ser usado en las exportaciones a formato web. Sin embargo, todavía hay algunas peculiaridades que los responsables intentarán resolver en próximos lanzamiento.
Godot 4.2 ha intentado resolver dos problema detectados con el soporte para controladores (mandos) de videojuegos: uno con Steam Input que provoca que algunos eventos del mando se ejecutaran por duplicado y otro que consiste en un error que afecta a acciones con múltiples métodos de entrada asignados, como el movimiento de los personales mediante WASD y una cruceta digital o un joystick.
El nodo de sincronización del multijugador (MultiplayerSynchronizer
) soporta ahora las propiedades un recurso o un subrecurso, la transformación de componentes y otros datos indexados sin tener que sincronizar el objeto completo. Por otro lado, las opciones de replicación de escena han sido simplificadas y optimizadas para que la interfaz de usuario resulte menos confusa.
A nivel de renderización lo que sobresale es la incorporación de soporte para FSR 2.2, la tecnología de reescalado de AMD que es de código abierto (aunque a destiempo) y que es multiplataforma al poder funcionar en gráficas de NVIDIA y de Intel. Este soporte debería de mejorar el desempeño sobre todo de entornos tridimensionales en hardware muy modesto. Por otro lado, se han implementado los requisitos previos para soportar los vectores de movimiento en esqueletos, formas combinadas y partículas, además de haberse resuelto muchos problemas con el sistema TAA (antialiasing temporal).
En los métodos de renderización para Forward+ y móviles se ha introducido HDR en 2D, desbloqueando así efectos 3D como el brillo para videojuegos bidimensionales. La renderización de HDR puede ser utilizada para mejorar de manera notable la calidad de la renderización 2D a costa de perder rendimiento, una decisión que al final tiene que tomar el desarrollador.
Otro punto interesante es la introducción del driver de backend de OpenGL ANGLE para macOS y Windows. Dicho de manera llana, ANGLE es capa de compatibilidad que permite ejecutar OpenGL sobre Metal y Direct3D 11 respectivamente, eliminando así la necesidad de tener soporte nativo de OpenGL. Esto apunta principalmente a macOS debido a que los controladores de OpenGL para el sistema de Apple están considerados como obsoletos y no reciben mantenimiento.
La implementación de las partículas que se ejecutan a nivel de la GPU ha sido reorganizada para mejorar sus infraestructuras internas y facilitar su mantenimiento. Desde el proyecto mencionan que estos cambios en las partículas de GPU marcan el punto en el que comienzan a derivarse de las partículas que funcionan sobre CPU y que en el futuro se introducirán más funciones que trabajarán sobre la GPU, por lo que las partículas sobre CPU pasarán a ser una altenrativa simplificada, con menos consumo de recursos y que no será un equivalente 1 a 1.
En lo que respecta a la versión de la aplicación compatible con el framework .NET de Microsoft, esta todavía sigue corrigiendo carencias, como por ejemplo en frentes como la exportación a plataformas móviles y la web, mientras que la versión con GDScript ha venido con algunas adiciones para potenciar el código escrito estáticamente.
Y por últimos tenemos el soporte para las diversas plataforma soportadas. Para empezar, la nueva arquitectura de plataforma de Android desacopla la parte de la aplicación Godot del componente de Fragmentos de Android, desbloqueando nuevas características en el proceso como el soporte de múltiples ventanas y tiempos de inicio más rápidos para aplicaciones y los juegos. En iOS se ha avanzado en la paridad con Android y para Linux ya se ofrece compilaciones oficiales para ARM, tanto de 32 como 64 bits.
Y hasta aquí lo más interesante de Godot 4.2. Si bien casar la industria comercial de los videojuegos y el código abierto es difícil, las herramientas de creación sí son un campo en el que el código abierto puede ganar mucho terreno. Os dejamos con el anuncio oficial, la sección de descargas del sitio web oficial y el vídeo que anuncia este lanzamiento publicado por GDQuest.
La entrada Godot 4.2 introduce diversas mejoras de rendimiento y soporte para FSR 2.2 es original de MuyLinux