Desarrollando sin QA #2
- Feb 20
- 3 min read
La semana pasada empezamos esta serie donde quiero explicar como estamos convirtiendo Vessel en un proyecto que se sostenÃa en pensamientos y plegarias en uno que se basa en unas premisas muy simples. Hasta el momento hemos hablado de las Feature flags y de nuestra polÃtica de crasheos tempranos. Esto cubre esencialmente como protegemos nuestra capacidad de trabajo y la salud del programa. Hoy veremos cómo nos aseguramos de que este se ejecuta correctamente.
Depurando por defecto
Dado que no tenemos QA, el equipo de código tiene que encargarse de demostrar que el juego funciona como debe. Para lograrlo mostramos información de la ejecución por defecto. Quizá esto te sorprenda si eres muy junior o no eres de la industria, pero como idea general es mejor añadir esta información de base en lugar de hacerlo cuando las cosas empiezan a fallar.Â
Mostrando información con sentido
De forma similar a lo que vimos con los crashes, una información de depuración que no es clara y fácil de leer no solo es inútil sino que juega en contra del equipo. Cada mensaje que no se entiende hace que tu equipo sea más propenso a ignorar esta información y deje de usar estos sistemas. Entonces, ¿Cómo nos aseguramos de que la información tiene sentido? Bueno, normalmente el problema no es la información en sÃ, sino cómo la presentamos. Casi todos los motores de juegos modernos permiten clasificar la información en diferentes categorÃas y niveles de importancia. Más interesante aún, todos permiten dibujar información dentro del mundo de juego.Â
Absolutamente nadie quiere buscar algo en una lista infinita de mensajes y valores crÃpticos en un fichero de texto. Por ejemplo, la información de la trayectoria de una bala escrita en un log no le servirá de nada a tus diseñadores, sin embargo si pueden ver esa trayectoria como una flecha dentro del mundo de juego les estarás simplificando la vida. Ahà está el quid de la cuestión, debemos depurar la información de modo que tenga sentido para la mayorÃa del equipo.
Depurando VesselÂ
En Vessel estamos exprimiendo las herramientas que nos da Unreal Engine 5. En concreto, usamos muchÃsimo el Visual logger. Esta herramienta nos permite estructurar la información y clasificarla según su funcionalidad o componente y nivel de importancia y presentarla en una lÃnea de tiempo según el frame en el que se ha ejecutado. Esto nos permite visualizar la ejecución del juego de pe a pa frame a frame.Â

Este tipo de herramientas son extremadamente poderosas y Unreal viene con varias especializadas para distintos tipos de información. Por ejemplo tiene el Rewind debugger para depurar animaciones, o el Chaos visual debugger para las fÃsicas. Esta es una de las razones principales por la que nos inclinamos por este motor de juego en especÃfico.

En futuros posts hablaremos de cómo estamos protegiendo el código para el futuro y de nuestra estrategia de testeo. Después de eso presentaré una feature de Vessel y como ha sido implementada siguiendo esta estrategia de trabajo. ¿Qué crees que seria interesante ver como ejemplo? ¡SuscrÃbete para no perderte los próximos! Comparte este post, deja un like, y si te gusta este tipo de contenido plantéate hacer una donación en Ko-fi para ayudarme a que la web siga abierta. ¡Hasta la próxima!