Digital Foundry: Cómo se hizo Oddworld Stranger's Wrath HD
La historia detrás del fantástico remake.
El desafortunado descenso de la retrocompatibilidad en la actual generación se ha visto en cierta forma mitigado por el aumento de las remasterizaciones HD - una oportunidad de revisitar clásicos mejorados gracias a la potencia de Xbox 360 y PlayStation 3. Resolución de alta definición, artwork ampliado, audio mejorado, frame-rates más suaves, soporte para 3D estereoscópico... en una buena conversión HD el juego se trata con respeto en una plataforma más potente, reconociendo que con subir la resolución a 720p no basta y que sin el cuidado pertinente se minimiza el impacto de juegos diseñados para la época de los televisores de tubo.
Probablemente uno de los mejores ejemplos recientes de una buena remasterización HD es la conversión hecha por Just Add Water del juego exclusivo de 2005 para Xbox Oddworld: Stranger's Wrath. Un clásico querido de una desarrolladora famosa que cerró de forma prematura, su versión para PS3 restaura y mejora el original en casi todos los aspectos, usando los materiales originales, el arte conceptual y el diseño que creó Oddworld Inhabitants hace ya bastante tiempo.
En esta entrevista especial de Digital Foundry hemos hablado con el CEO de Just Add Water, Stewart Gilray, y con el director técnico Steven Caslin. Hablamos de los orígenes del trato para traer de vuelta los juegos de Oddworld, del enfoque del equipo a la remasterización HD, de los materiales que tenían a su disposición para reconstruir Stranger's Wrath y de las mejoras específicas para PS3 del juego - muchas de las cuales llegarán también a PC en un futuro parche. También hablamos de los problemas que ha tenido Just Add Water intentando llevar el remake de un juego que era exclusivo de Xbox a su sucesora, la 360...
"Los juegos de Oddworld van sobre grandes corporaciones que controlan a los más pequeños y generalmente destrozan las especies autóctonas, algo que se puede aplicar a nuestro mundo actual."
Lorne ha estado haciendo varias cosas, incluyendo una colaboración con empresas americanas bajo el nombre Oddworld para trabajar en un proyecto a gran escala, pensando en que Oddworld Inhabitants creara una película basada en su propio proyecto pero dejando el desarrollo del juego para otro equipo. Esto no salió bien, y creo que fue en 2007 o 2008. Desde entonces han estado trabajando en algo que no tiene nada que ver con Oddworld.
Un amigo común con Lorne nos presentó en la GDC de 2009. Un par de meses después Lorne me mandó un email preguntándome si querríamos ayudarle con algo, y pasamos los siguientes siete meses ayudándoles a buscar materiales en el archivo, del cual sólo acabamos encontrando una parte. Luego, en abril de 2010, nos preguntaron si queríamos hacer el port de Stranger's Wrath para PC. Tras unas semanas mirando el código y la documentación que crearon del motor para Xbox dijimos que lo haríamos, pero bajo la condición de que haríamos también una versión HD para PlayStation 3.
Lo cierto es que el otro día estuve respondiendo algunas preguntas y lo estuve pensando. Lo más importante de las historias de Oddworld son las preguntas que genera sobre el medio ambiente. Va sobre grandes corporaciones que controlan a los más pequeños y generalmente destrozan las especies autóctonas, algo que se puede aplicar a nuestro mundo actual. Creo que mucha gente se dio cuenta de esto, aunque fuese de forma inconsciente. Si quitas la historia quizás queden juegos con mecánicas increíblemente simples y poco más, pero las historias forman ese mundo creíble con personajes en los que crees.
En realidad no tenemos nada que ver con Oddboxx en términos de escogerlo como proyecto. Por lo que se, Lorne lo anunció a finales de 2008 o principios de 2009, y nosotros subimos a bordo para hacer el port de Stranger's Wrath en abril/mayo de 2010, así como para completar el trabajo que habían hecho durante quince meses en Munch. Creo que estuvimos cuatro semanas con Munch. Sobre hacer Stranger para PS3, como he dicho antes, ya estábamos haciendo la versión para PC, y pensé que era lógico hacer una actualización para consola. Escogimos PlayStation 3 porque ya habíamos hecho un par de proyectos para PS3 y conocíamos la consola relativamente bien. Además, al ser el juego más nuevo de los cuatro publicados hasta la fecha, parecía el paso lógico.
"Parece que en todos [los remakes en HD] han hecho que el código vaya a 720p, sin hacer casi cambios en el arte."
[Risas] Sólo para saber que queríamos hacer algo mejor. Siendo serios, nosotros - bueno, yo para ser exactos - hemos jugado a bastantes remakes HD y parece que en todos han hecho que el código vaya a 720p, sin hacer casi cambios en el arte.
Por ejemplo, me sorprendió lo pobre que era la actualización de Resident Evil 4, y sigo intentando averiguar si realmente actualizaron algo del arte. Creo firmemente que si vas a actualizar un juego lo haces por alguna razón específica. Olvidemos por un momento las razones económicas: escoges el proyecto, quizás lo jugaste en su sistema original, y notas sutiles cambios en la percepción del jugar durante los cinco o diez años que han pasado desde que salió el juego. Piensas 'vamos a retocar esto, a alterar esto otro', y haces cambios mientras haces la actualización. Parece que con la mayoría de remakes HD eso no ha ocurrido.
Un ejemplo es el Team ICO Collection. Me encantaron esos juegos cuando se publicaron en su momento, así que realmente tenía ganas de jugarlos en PS3... pero me decepcionaron muchísimo en algunos aspectos. Para empezar no puedo entender por qué no funcionan a 60FPS. ¿Quizás no tuvieron demasiado tiempo para optimizar el código al hacer el port? No lo se, pero lo que más me molestó es algo increíblemente tonto. En los documentos del TRC [Technical Requirement Checklist] de Sony para PS3 se pide a los desarrolladores que se aseguren de que en occidente usas el botón X para confirmar y el círculo para volver atrás, mientras que en Japón es lo opuesto. Los originales usaban la X y el triángulo en occidente. El Team ICO Collection sigue usando el triángulo para volver atrás, algo rarísimo para un jugador de PS3. A BluePoint le hubiera costado sólo unos minutos cambiar eso en el TRC.
"Oddworld usó el hardware de Xbox razonablemente bien. Sus programadores usaron todos los trucos disponibles y los resultados era impresionantes para un juego de 2005."
Durante mucho tiempo hemos tenido aquí todo el el archivo de Oddworld, creo que cerca de 1.000 CDs y DVDs que restauramos lentamente en un PC para construir un gran archivo de 15TB. En estos CDs hay cosas que van desde los modelos, materiales, sonidos y documentos de Abe 1 a un montón de cosas de "The Brutal Ballad of Fangus Klot", por ejemplo.
Para ser honesto, creo que ninguno de los materiales de Stranger estaba en NURBS, el modelo del protagonista principal para las cinemáticas tenía unos 500.000 polígonos. Sólo una parte de los modelos del juego se usaron en las cinemáticas, así que buena parte del remodelado se hizo a partir de los dibujos conceptuales originales o desde cero, o tomando los modelos del juego y añadiendo cosas.
Oddworld usó el hardware de Xbox razonablemente bien. Sus programadores usaron todos los trucos disponibles y los resultados era impresionantes para un juego de 2005. Esto no causó demasiados problemas con la versión de PC, principalmente porque la arquitectura es casi la misma que la de PC. Pero la versión de PS3 fue diferente. Primero había el problema de la arquitectura, porque PS3 es Big endian y el PC Little endian, con lo cual los sets de datos se deben convertir y cambiar. En segundo lugar, cualquier rutina en ensamblador de bajo nivel debía convertirse a C/C++ y dejar las optimizaciones para más adelante. Tercero, muchas rutinas funcionaban tanto en PC como en Xbox, pero no era el caso de PS3. Debían aislarse, hacer un wrapper y escribir la versión equivalente.
Fue muy importante. Al saber desde el principio que haríamos una versión HD para PS3 usamos tanta tecnología multiplataforma como fue posible para reducir el tiempo y el esfuerzo. La decisión fue usar OpenGL para renderizar, CG para los shaders, FMod para el audio, Granny para las animaciones y Bink para reproducir los vídeos. Para la versión PC básicamente escribimos un emulador. Era la forma más rápida de tener el proyecto funcionando porque necesitábamos resultados visuales lo antes posible.
Pasamos sólo unas pocas semanas haciendo wrapping de todas las llamadas DirectX de bajo nivel y escribiendo versiones equivalentes en OpenGL. Reescribimos los fragmentos de pixel shaders y vértices de bajo nivel con fragmentos de shaders CG. Una vez más, esto nos tomó sólo un par de semanas porque tan sólo habían 100 fragmentos de shader, más o menos. El sistema XACT de audio también se emuló con FMOD; reconstruimos el proyecto XACT con FMOD y remasterizamos el audio con calidad HD. Todos estos cambios nos ayudaron con la versión PS3, principalmente al tener una tecnología que funcionaba y estaba probada, pero con la que también estábamos familiarizados. Todo eso nos permitió ahorrar mucho tiempo.
"Para la versión PC básicamente escribimos un emulador. Era la forma más rápida de tener el proyecto funcionando porque necesitábamos resultados visuales lo antes posible."
Diría que el 95% del código es el original de la versión para Xbox. El código del juego se ha mantenido intacto. Lo dejamos así porque no queríamos cambiar el juego e introducir bugs y, además, ¿para qué cambiar algo que ya se juega tan bien? Al principio hicimos un port tal cual de la versión para PC a PS3. Esto funcionaba bien, pero era evidente que algunos aspectos clave debían reescribirse. Pasamos casi dos meses trabajando sólo en optimizaciones. También pasamos mucho tiempo perfilando el GPAD para identificar las areas más lentas, optimizando el código y volviéndolo a probar. Esto se hizo una y otra vez hasta que estuvimos contentos con el resultado. Siempre había que equilibrar el tiempo entre reescribir el código y si eso produciría grandes ganancias.
Un area clave era el sistema decorador, que se usa para dibujar el follaje. Ahora se hace por instancias, usando triángulos y renderizándolo todo en un grupo. Esto nos da una gran ventaja de velocidad respecto al renderizador de instancias individuales que se usaba en Xbox. También tuvimos que trabajar en los sistemas de partículas. Los sistemas estaban optimizados para DirectX usando buffers push, pero esto en PS3 no funciona y tuvimos que escribir renderizadores personalizados usando instancias. Los beneficios fueron enormes: algunos sistemas sin optimizar tomaban 5ms, y se redujeron a menos de 0.2ms.
En el guardado hemos tocado poco, porque una de las cosas que Oddworld siempre te ha dejado es guardar en el momento que quieras. En la versión para PS3 tenemos localizaciones con autoguardado, una opción de guardado rápido que actualiza el autoguardado con un punto exacto y el guardado manual, con una partida guardada permanente en ese lugar. Pero la dificultad sí era un problema. De hecho, hemos introducido modos de dificultad en el juego, así como equilibrado el modo "normal" en la parte final haciendo que sea un poquito más fácil.
Las mayores quejas creo que eran sobre la parte final del juego, que más o menos es un shooter en primera persona. Nos dimos cuenta al ver los guiones que el jugador en estas partes no tenía parámetros de salud adecuados para lo que hacía - y no entraré en detalle porque no quiero desvelar esa parte de la historia. Lo que sí diré es que pensamos que esas partes del original eran un paso atrás respecto a la parte anterior del juego, así que las retocamos para aumentar tu salud base y la cantidad de armadura.
Aparte de los modelos del juego, también redondeamos los barriles, tubos y árboles, y mejoramos el aspecto de todo lo que no era de la calidad que esperas de un juego actual. También alteramos todas las texturas del follaje del juego, porque algunas tenían una resolución bajísima: dibujadas en una pantalla 720p se veían feísimas, así que las hicimos de nuevo. Seguimos el ejemplo de Crysis, de la forma que tiene su hierba. En el Stranger original la hierba era plana, pero en esta versión la hierba es un objeto con múltiples caras, lo cual hace que se vea mucho más orgánica. Pensamos hacer carteles como los de Rage, pero eran demasiado viejos en términos de tecnología.
"La dificultad sí era un problema. De hecho, hemos introducido modos de dificultad en el juego, así como equilibrado el modo "normal" en la parte final para que sea un poquito más fácil."
Aunque no teníamos acceso al material original para esas cinemáticas, sí teníamos cada secuencia CG original renderizada como archivos .TIF. Estos estaban renderizados a 720x416, lo cual es más que la resolución 640x370 de la versión Xbox. Así que en primer lugar teníamos eso, pero también lo codificamos de forma menos agresiva que en Xbox, y por eso apenas hay artefactos en la reproducción, si es que los hay.
También recreamos dos vídeos desde cero que ahora están a 1280x720 nativo: el fondo del menú principal y el vídeo de los créditos. Para el primero creamos un nuevo fondo con la profundidad extra. Para los créditos tuvimos hasta cierto punto un poco de suerte. Encontramos la utilidad de composición original que usaban para las CG y scripts (Shake 2.5.1, de Apple) que podíamos ejecutar otra vez, aunque en una máquina virtual con Windows XP. Yo mismo pasé una semana intentando que esas herramientas funcionaran correctamente, e incluso hablé con la compañía que creó el plugin para esa versión de Shake.
Oddworld hizo un gran trabajo con el motor. Hacía streaming de los datos del nivel directamente de la Xbox. También tuvimos que hacer eso en PS3. Los materiales de PS3 son mucho más grandes, la carga poligonal es mayor y las texturas eran al menos cuatro veces más grandes. Esto ocupaba rápidamente memoria de la PPU, así que transferimos las texturas y mallas a la memoria local del RSX. También hacíamos streaming del audio al mismo tiempo, con lo cual hacer que todo funcionase de forma fluida era como poco un reto. El rendimiento del RSX siempre es un reto - hay exceso de dibujado, lo cual es difícil de eliminar. Tras intentar varias cosas alcanzamos los mayores beneficios aumentando el rendimiento z-cull. Usamos la opción de triple buffering del PSGL para ayudar a suavizar el frame-rate, así que si hay alguna caída baja de 60FPS a 40FPS en vez de 30FPS.
Exacto. No usábamos demasiado las SPUs, así que poner MLAA en las SPUs era lo lógico. El MSAA tiene un impacto en el rendimiento del RSX que nos hizo descartarlo, y estuvimos estudiando el FXAA pero no daba tan buenos resultados como el MLAA.
"No usábamos demasiado las SPUs, así que poner MLAA en las SPUs era lo lógico. El MSAA tiene un impacto en el rendimiento del RSX que nos hizo descartarlo."
Fue bastante directo. Renderizamos sobretodo en las texturas más que en la pantalla, sobretodo para los efectos de niebla y post-proceso. Tuvimos que hacer cambios en las librerías EDGE para que el MLAA funcionara con texturas PSGL. Implementamos también un sistema de doble buffer para que la SPU, el RSX y la PPU no tuvieran que esperar entre si. La SPU procesa el último frame mientras la PPU y el RSX renderizan el frame actual. Al final se muestra el último frame y se empieza a renderizar el siguiente. Intentamos aplicar MLAA al final de todo del renderizado, lo cual incluía la GUI, pero descubrimos que el MLAA añadía artefactos y la GUI se veía sucia. Al final lo cambiamos para que sólo al render 3D se le aplicase MLAA y la GUI se superpusiese.
No, nos hubiera gustado usar más las SPUs pero desde muy pronto decidimos intentar llevar tan al límite la PPU como nos fuese posible, y si nos hubiéramos quedado sin opciones habríamos usado las SPUs. Al final pudimos hacer lo que queríamos, que era correr el juego a 60FPS, así que reescribir el código para las SPUs era innecesario, añadiendo complejidad y retrasando el lanzamiento hasta 2012.
Bueno, hablamos con tres de los programadores originales sobre ciertas cosas, principalmente si podían recordar cómo funcionaban algunas de las herramientas originales, e incluso ahora seguimos sin tener ni idea sobre ciertos aspectos del proceso de creación. Uno de esos tipos trabaja ahora para Google en Munich, otro para Rad Game Tools y otro ha hecho cosas con Lorne Lanning para su otro proyecto.
"Hemos anunciado versiones de Stranger y Munch para Vita, pero en lo que respecta a Nintendo, no me interesa trabajar con ellos o en sus consolas."
Aparte de eso, tengo a Lorne en mi lista de Skype y he pasado un montón de horas hablando con él, pero más sobre su opinión sobre lo que estábamos haciendo. También hablamos con Raymond Swanland, que hizo parte del diseño de producción original y del propio Stranger. Además de los logos de Oddworld también creó los logos en alta definición para Stranger y Munch.
Todavía estamos tratando con Microsoft, así que no se técnicamente cuanto puedo decir, pero allá va. Primero miramos la ruta del Xbox Live Arcade, si podíamos meter el juego en 2GB. Tras preguntarnos si podíamos hacerlo, Microsoft tardó diez semanas en decir que no era para ellos. Esto fue a través de la ruta de publicación a través de MGS. Cuando les preguntamos sobre los juegos bajo demanda, en dos ocasiones nos dijeron que no por varias razones; la última fue que GoD tiene un precio mínimo fijado, un precio que es mucho más alto que el que tenemos en PS3.
También querían un lanzamiento simultaneo en PS3 y Xbox 360, pero cuando les preguntamos en mayo del año pasado sobre GoD dijeron que no habíamos vendido un millón de copias en formato físico para optar al servicio GoD. Esas son sólo algunas de las razones. Lo curioso es que si hubiese dicho que sí en mayo podríamos haber publicado el juego simultaneamente en ambas plataformas, y podríamos haber arreglado el tema del precio.
"Queremos terminar la pentalogía Oddworld, así que es evidente que pensamos en hacer Squeek's Oddysee, la tercera parte de la saga."
Bueno, ya hemos anunciado versiones de Stranger y Munch para Vita, pero en lo que respecta a Nintendo, no me interesa trabajar con ellos o en sus consolas. En estos años hemos hecho juegos para varias de sus plataformas, y cada vez está más claro que a no ser que el juego lo publique Nintendo no venderá demasiado bien.
Además tienen esa loca posición respecto a las IPs y se niegan a firmar NDAs con desarrolladores y distribuidores indies, dejándonos a los pequeños con el culo al aire para que roben nuestras ideas. Hemos mirado de hacer cosas en iOS y todo lo que puedo decir es que estéis atentos.
Ya estamos trabajado en Oddworld: Munch's Oddysee HD y esperamos sacarlo en la segunda mitad del año para PS3 y Vita, y en otras plataformas más adelante. También hemos empezado a trabajar en nuestro nuevo proyecto de Oddworld, que se basará en Abe y promete ser fantástico.
Bueno, yo, Lorne y Sherry (McKenna) queremos terminar la pentalogía Oddworld, así que es evidente que pensamos en hacer Squeek's Oddysee, la tercera parte de la saga. También pensamos que sería una pena no hacer nada con el proyecto Fangus. Pero más allá de eso no puedo decir nada más...