Entrevista técnica de WipEout 2048
Digital Foundry habla con el Studio Liverpool.
PlayStation Vita consigue lo que muchos creían imposible: llevar la experiencia de las consolas HD a la palma de tu mano. Es un logro emocionante, conseguido gracias a la arquitectura para juegos más avanzada en un dispositivo móvil actual junto con lo que muchos consideran el catálogo de lanzamiento más completo y de más calidad que ha tenido ninguna consola.
Aunque Uncharted: Golden Abyss ha obtenido un considerable éxito de crítica y ventas, mucha gente cree que la verdadera estrella del catálogo de lanzamiento de Vita es el WipEout 2048 del Studio Liverpool - un juego que iguala la experiencia de las consolas 'mayores' e incluso mejora WipEout HD en términos de diseño y jugabilidad.
En esta entrevista especial de Digital Foundry hablamos con el director técnico del Studio Liverpool, Stuart Lovegrove, y el director técnico de herramientas y tecnologías Chris Roberts. Queremos saber el grado de semejanza entre el desarrollo de PS3 y de Vita, qué se puede compartir entre ambas plataformas y hasta qué punto se involucraron en el desarrollo de la propia plataforma.
También hablamos a fondo sobre la configuración gráfica del juego, las tecnologías usadas por el estudio para conseguir un rendimiento sólido y cómo han sacado partido del hardware de rendering del núcleo gráfico SGX543 MP4+ de Vita.
"Desarrollamos el juego totalmente en paralelo con el hardware, desde las ideas iniciales del dispositivo hasta el lanzamiento de la consola."
Desarrollamos el juego totalmente en paralelo con el hardware, desde las ideas iniciales del dispositivo hasta el lanzamiento de la consola. Los juegos de lanzamiento son algo en lo que el Studio Liverpool ha trabajado muchas veces, y personalmente he estado involucrado en el desarrollo de cinco consolas.
Tuvimos la suerte de que SCE nos incluyó en el desarrollo del hardware de PS Vita desde muy pronto - teníamos una buena idea desde el principio de lo que sería posible, y las especificaciones del hardware no fluctuaban de forma muy drástica. Aunque dimos feedback sobre el hardware y las librerías, probablemente lo más útil para SCE fue que enviábamos código a la gente de librerías y firmware para que pudiesen probar sus compiladores y su código.
Nuestro juego ha sido una especie de campo de pruebas para la consola, lo cual beneficia a todos los equipos internos de Sony, y trabajar en el WWS (World Wide Studio Group) es algo en lo que participamos activamente.
No especialmente, aunque supone menos quebraderos de cabeza para los artistas cuando retocan la iluminación final y demás.
Es más fácil desarrollar con una única resolución de pantalla porque elimina los problemas de diseñar para una pantalla HD y al mismo tiempo asegurarte de que también funciona en resoluciones SD.
Vita y PS3 son bestias muy diferentes. La diferencia más obvia es, desde luego, que no hay SPUs, las cuales son rapidísimas pero requieren mucho tiempo y planificación para sacarles provecho.
En el caso de WipEout HD/Fury, buena parte del código de las SPU se dirigía a apoyar la GPU, por ejemplo con cálculos de geometría, iluminación, soluciones de rendering, etc. Sin embargo, la GPU de PS Vita es muy capaz teniendo en cuenta que es un dispositivo portátil - puedes sacarle muchísimo rendimiento si eres listo y cauto con ella - y la arquitectura ARM es agradable, eficiente y maneja muy bien el código de WipEout sin necesidad de compromisos significativos.
He trabajado con tecnologías ARM antes (he sido usuarios de un viejo BBC Micro), así que he disfrutado usando el chip, las pipelines del chip son buenas consumiendo el código y no hemos tenido que optimizar demasiado las cosas para que funcionen.
"WipEout 2048 y WipEout HD/Fury usan el mismo sistema de shaders, creado de la misma forma. Eso nos ayudó a pasar rápido al nuevo hardware."
WipEout 2048 y WipEout HD/Fury usan el mismo sistema de shaders, creado de la misma forma. Eso nos ayudó a pasar rápido al nuevo hardware, y Vita se lleva bastante bien con los shaders de HD/Fury, aunque no con el frame-rate que queríamos conseguir. Se usó una buena cantidad de tiempo y atención optimizando a mano los shaders para la GPU de Vita.
Desde el punto de vista de los artistas, y en general del equipo, los métodos de trabajo son los mismos en ambos dispositivos, y en mi experiencia es la primera vez que eso ha sido posible con una portátil. Para nosotros es realmente como tener la metodología de una consola cuando trabajamos con Vita.
La iluminación en Vita es virtualmente idéntica a la de HD/Fury. Las naves siguen usando la misma iluminación basada en imágenes mezclada con sondas difusas y especulares que se precalculan junto con el circuito, y los efectos de armas usan el mismo sistema de iluminación basado en vértices, aunque en PS Vita ambos efectos se generan en la GPU en vez de en las SPUs como ocurría en PS3.
Es fácil hablar de las diferencias - las sombras en tiempo real de PS Vita son casi idénticas con la excepción de que decidimos usar buffers de color con anti-alias para renderizar las sombras en vez de buffers de profundidad.
Esto nos permite tener transparencias en las sombras y el coste del anti-aliasing se mitiga al necesitar únicamente 8 bits por pixel en el buffer de color, así que un buffer de color 4xMSAA usa la misma memoria que un buffer de profundidad de 32 bits, aunque para eso hay que sacrificar las sombras propias de las naves.
"Usando el código de PS3 como punto de partida, estábamos en posición de conseguir que la tecnología funcionase mientras el equipo de arte creaba el contenido nuevo en paralelo."
Los efectos de post-proceso están ligeramente mejorados en WipEout 2048 - el mapa de tonos es más 'correcto' porque Vita tiene un hardware eficiente que soporta formatos de buffer, con lo cual el control de exposición y efectos de brillo en 2048 son de más calidad que en HD/Fury. En 2048 también tenemos circuitos más largos que requieren más espacio para texturas lightmap, pero por suerte el SGX soporta compresión de texturas con mayores ratios de compresión, con lo cual aunque los circuitos sean más largos hay ventajas en la resolución de la iluminación precalculada.
Es una decisión que se tomó muy pronto en el proyecto, basándonos en una comparación directa. Resumiendo, cuando recibimos las especificaciones iniciales esperábamos que Vita pudiese dibujar los materiales de PS3 a 30Hz. Usando el código de PS3 como punto de partida, estábamos en posición de conseguir que la tecnología funcionase mientras el equipo de arte creaba el contenido nuevo en paralelo. WipEout 2048 es un título de lanzamiento, y necesitábamos tener un objetivo realista y predecible en un tiempo limitado, así que los 30Hz siempre fueron el objetivo.
30FPS siempre fue el objetivo en el desarrollo de WipEout 2048, porque queríamos esa calidad visual. Sin embargo, 30FPS estables no es un mal frame-rate. No conozco muchos juegos de carreras para portátil que funcionen a 60FPS.
Sí, el cambio dinámico de resolución se usa en 2048. Es el mismo principio que se aplica en HD/Fury, porque si bloqueas el frame-rate y la resolución todo tu juego se restringe gráficamente al peor escenario posible.
Esto puede estar bien en juegos que sean bastante uniformes en lo que se muestra en cada frame, pero en juegos con una acción tan aleatoria y poco predecible, estas restricciones provocan que el frame típico (en el que no ocurren demasiadas cosas) sólo utilice el 50% de la GPU.
"El cambio dinámico de resolución se usa en 2048. Es el mismo principio que se aplica en HD/Fury, porque si bloqueas el frame-rate y la resolución todo tu juego se restringe gráficamente al peor escenario posible."
En términos de estrategia, como es imposible predecir cuando caerá un frame, el único enfoque práctico es tratar de recuperar los FPS lo antes posible (por ejemplo disminuyendo la resolución) para que la sincronización vertical vuelva a activarse.
Al final se reduce a un compromiso entre la severidad de las caídas de frame-rate, el tearing de pantalla y la calidad gráfica general. WipEout no es el tipo de juego que tolera grandes caídas de FPS, así que optamos por un tearing ocasional y un frame-rate más consistente.
De forma parecida a la versión de PS3, cuando el juego funciona a la resolución mínima el usuario no lo nota, especialmente si está jugando.
Solo ocurre en los peores escenarios, como dice Chris, y la mayoría del tiempo usamos la resolución completa de Vita, 960x544. Es muy difícil apreciar cuando hay una bajada de resolución.
Usamos el 4x MSAA por hardware tanto como podemos - en el render 3D principal, en las sombras de las naves, etc. Si te fijas en algunos de los circuitos cross-play de PS3 que tienen efectos de reflejo y refracción (como Moa Therma o Vineta K), estos buffers también usan 4x MSAA, así como los carteles de los circuitos crossplay (los circuitos de 2048 tienen vídeos en los carteles, en cambio). El impacto del MSAA en Vita es ciertamente bajo si se compara con otras GPUs, en términos de memoria y rendimiento.
"Vita tiene a un grupo de desarrolladores de Sony trabajando en estas tecnología con un único objetivo en mente, hacer que el hardware sea tan fácil, rápido y potente como sea posible. De forma parecida, para un desarrollador de software es más fácil y se obtienen mejores resultados con una plataforma estable que con una que va cambiando."
Creo que debería trasladar esa pregunta a tus lectores. ¿Queréis una versión de WipEout 2048 para PlayStation 3?
Lo mismo que ha mantenido a PS3 - APIs muy ligeras y poca o nula abstracción en la capa de drivers. Las APIs que se usan en Vita se han diseñado únicamente para Vita. El firmware no tiene que coger el código escrito con las especificaciones OpenGL ES y luego hacer lo mejor que pueda con el hardware disponible. Esto en general es un problema con APIs estandarizadas, porque ayudan a que los desarrolladores las adopten y superen la curva de dificultad, pero al final siempre consumen más y evitan que puedas realizar ciertas optimizaciones o trucos.
Vita tiene a un grupo de desarrolladores de Sony trabajando en estas tecnología con un único objetivo en mente, hacer que el hardware sea tan fácil, rápido y potente como sea posible. De forma parecida, para un desarrollador de software es más fácil y se obtienen mejores resultados con una plataforma estable que con una que va cambiando. Recuerdo que una vez optimicé un juego para la PSP original y conseguí mejorar el rendimiento en un dos mil por ciento. Lo que quiero decir es que no es sólo el hardware lo que hace el juego, es también lo que tú haces, y Vita tendrá una vida muy larga. ¿Sabes que Vita significa vida en latín, no?