Actualización sobre la estabilidad y el tiempo de iteración de UEFN: avance y próximos pasos

Autores: Kavita Chodavarapu @CKnew234 y Chris Gagnon

En marzo, compartimos nuestros planes para mejorar significativamente dos aspectos que afectan directamente a la forma en que creáis en UEFN: la estabilidad y el tiempo de iteración.

En cuanto a la estabilidad, esto supuso ampliar las pruebas en islas creadas por desarrolladores, mejorar la cobertura de las pruebas de regresión y escalar los defectos de alto riesgo en una fase más temprana del ciclo de lanzamiento.

En cuanto al tiempo de iteración, nos comprometimos a reducir considerablemente el tiempo que se tarda en incorporar los cambios a una sesión en tiempo real.
También nos comprometimos a compartir actualizaciones periódicas, incluyendo en qué aspectos estamos mejorando y en cuáles aún nos queda trabajo por hacer.

Aquí tenéis las últimas novedades.
Áreas en las que hemos mejorado

Tiempo de iteración

En nuestra entrada anterior, nos comprometimos a reducir el tiempo de iteración, y hemos logrado un progreso real, ya que hasta ahora hemos reducido el tiempo que se tarda en publicar los cambios en un 40 % de media. Este porcentaje es aún más considerable en los proyectos de mayor envergadura, en los que hemos observado reducciones de hasta el 70 %.

Esta reducción se debe a una serie de mejoras que acortan los tiempos de envío:

* Cooking incremental: ahora el compilador identifica y procesa únicamente los recursos que han cambiado desde el último envío, en lugar de volver a procesar todo el proyecto.

* Zen DDC: una nueva infraestructura de caché de datos derivados que reduce el tiempo dedicado a recuperar y validar los recursos cooked, acortando así el ciclo de reproducción en el cliente.

* Mejoras adicionales en el proceso de cooking y en la carga y descarga: mayores velocidades de transferencia de archivos, reducción de los tiempos de espera en cola, mejora de la validación de recursos y mejoras en la compilación de Verse.

* Y mucho más: mejora del tiempo de carga tanto en el servidor como en el cliente, paralelización de los pasos preparatorios y de la validación, y muchas otras mejoras en toda la iteración.
También hemos realizado mejoras significativas en la edición en tiempo real:

* Las funciones de edición en tiempo real se encuentran disponibles mientras la partida está en marcha.
* Puedes pausar el juego, salir del peón e investigar el estado de la partida con fines de depuración.
* Compatibilidad ampliada con secuencias de nivel y buses de sonido.
* Nueva interfaz de usuario para revisar la lista de ediciones de las transacciones que se están llevando a cabo en tiempo real o que requieren una actualización, mejoras en la experiencia de usuario para la iteración y varias correcciones de errores en las funciones de edición en tiempo real existentes.

Nuestro trabajo aquí aún no ha terminado. Seguiremos centrándonos en la ampliación de la edición en tiempo real para mejorar la experiencia de iteración; la compilación distribuida de sombreadores sigue en marcha, y tenemos previstas otras mejoras para este año que seguirán reduciendo el tiempo de iteración.

Estabilidad
Desde la versión 39.50, hemos reducido considerablemente la tasa de regresiones de alta gravedad que llegan a los desarrolladores. Hemos ampliado las pruebas en las islas creadas por desarrolladores, hemos reforzado nuestro proceso de escalado de pruebas de regresión y hemos mejorado el análisis de las causas raíz. Esto ha dado como resultado mejoras significativas en las versiones 40.00 y 41.00, cuantificables a través de dos métricas clave: la tasa de defectos no detectados (DER) y los defectos graves no detectados.

Esto significa que cada vez tenemos más éxito a la hora de detectar, antes del lanzamiento, las regresiones más graves y que más afectan a los desarrolladores.

En la versión 41.00 también hemos incluido actualizaciones de las herramientas para el estado de los recursos y del perfilador espacial y así ofreceros una mayor visibilidad de los errores relacionados con los recursos antes de que provoquen fallos o bloqueos. Seguimos trabajando para mejorar aún más estas herramientas en futuras versiones.

En qué estamos trabajando
La estabilidad ha mejorado considerablemente en nuestros indicadores más críticos, pero algunas áreas siguen presentando inconsistencias, en concreto Scene Graph, la unión a una partida en curso, la IU y UMG personalizados, la validación y la publicación, y el emparejamiento. Muchas de estas regresiones implican interacciones entre varios sistemas, tienen su origen en cambios realizados semanas o meses antes, o solo salen a la luz durante las pruebas a gran escala realizadas por los desarrolladores en las últimas fases del ciclo de lanzamiento.
Nuestras áreas de enfoque actuales:

* Ampliar la cobertura de la automatización para los procesos de trabajo de Scene Graph y la unión a una partida en curso
* Aumentar las pruebas a escala realizadas por los desarrolladores en fases más tempranas de los ciclos de lanzamiento
* Reforzar los criterios de revisión de lanzamiento para los cambios de alto riesgo
* Mejorar la visibilidad de las regresiones conocidas y las correcciones futuras

También hemos empezado a publicar listas de errores conocidos antes de los lanzamientos siempre que sea posible, lo que permite a los desarrolladores conocer con antelación las regresiones confirmadas y las correcciones previstas.

Perspectivas de futuro
Seguiremos siendo sinceros sobre los retos que aún quedan por resolver: los desarrolladores merecen que se les informe sobre la complejidad de las herramientas. Lo que sí podemos prometer es continuar mejorando la detección de regresiones de gran impacto, comunicarnos de forma más transparente y compartir los datos reales que respaldan el trabajo.

Gracias por seguir creando con UEFN y por los comentarios, los informes de errores y las respuestas a las encuestas de estabilidad que nos ayudan a definir estas prioridades.