World of Warcraft

Resumen del panel Restoring History: Creating WoW Classic

Blizzard Entertainment

En la BlizzCon 2018, la comunidad de WoW tuvo su primera oportunidad de probar World of Warcraft Classic. Para ayudar a los jugadores a comprender el trabajo que se llevó a cabo para imprimir en este título la calidad característica de Blizzard, los ingenieros de software Brian Birmingham y Omar González y el director de juego Ion Hazzikostas subieron al escenario durante la tarde del sábado para compartir información sobre el proyecto.

En busca de las piezas

Antes de comenzar nuestro periplo para recrear la experiencia original de WoW con total fidelidad, el equipo de WoW Classic tuvo que analizar los elementos del juego original y decidir con cuáles trabajar. Finalmente, redujimos la selección a tres piezas principales: la información de la base de datos, los recursos artísticos y el código fuente.

  • La información de la base de datos incluye, por ejemplo, los puntos de salud de una criatura, la cantidad de aguante de un objeto, las ubicaciones de aparición del mapa y millones de otros datos.
  • Los recursos artísticos incluyen, por ejemplo, el aspecto de los elfos de la noche cuando usan Fusión de las sombras, el sonido que hace una Piroexplosión y la animación de los orcos al blandir un hacha.
  • El código fuente contiene las instrucciones sobre cómo mostrar el juego, procesar los comandos ingresados y conectar a las personas.

Para empezar, debíamos averiguar hasta qué año se remontaba nuestro archivo del código fuente. Descubrimos que las primeras líneas de código que quizás podrían tener alguna relación con WoW eran de 1997, varios años antes del comienzo del desarrollo de World of Warcraft.

Era un buen comienzo, pero había problemas con la forma en que los desarrolladores actualizaban la información de la base de datos. A diferencia del código fuente, para el que Blizzard archivaba distintas ramificaciones del juego que podían trabajarse y desarrollarse de forma separada, la información de la base de datos se sobrescribía con cada actualización proporcional. Afortunadamente, ese problema se solucionó al poco tiempo del lanzamiento y, cuando investigamos, descubrimos que había datos de la versión 1.12 e incluso de versiones anteriores.

Finalmente, encontramos los recursos artísticos en copias de seguridad viejas almacenadas en cintas magnéticas, que coincidían con toda la información de la base de datos que se había preservado.

Con los tres componentes, pudimos realizar una prueba e iniciar sesión en el juego, crear nuevos personajes, matar jabalíes y completar algunas misiones.

La experiencia de juego clásica en un mundo moderno

Si bien teníamos una versión del juego que funcionaba, había muchos desafíos por superar. La tecnología que sirve como base del juego ha evolucionado muchísimo desde su lanzamiento. Se han agregado funciones como la compatibilidad con la nube, la integración de la aplicación de escritorio Blizzard Battle.net, las opciones de servicio al cliente y muchos arreglos de errores y vulnerabilidades.

Para superar estos desafíos, analizamos los elementos que teníamos en busca de lo que nos gustaba (el arte y la información) y lo que no nos gustaba (el código). Queríamos comprobar si era posible utilizar los datos y recursos artísticos clásicos con nuestro código moderno y que todo se ejecutara sin problemas. En un principio no salió del todo bien, pero con un poco de ensayo y error logramos realizar una prueba de concepto para ver cómo encajarían las piezas y tener algo que se pudiera jugar. Esto reafirmó la confianza en nuestro objetivo: brindar una experiencia con la calidad de Blizzard en la plataforma moderna.

Del prototipo a la demo

Los tres cimientos (la información de la base de datos, el código y los recursos artísticos) interactúan entre ellos para crear características de la interfaz como el terreno, la experiencia de juego, las animaciones y la iluminación. Según las características, estos cimientos interactúan de distintas formas.

Para comprender cabalmente estas interacciones, veamos el terreno. Esto incluye la ubicación de las colinas y los valles, los árboles, los edificios y más. Cuando integramos los archivos de datos de terreno anteriores con el sistema del juego moderno, descubrimos que el sistema analizaba la forma de los datos de otra manera. Los datos del sistema actualizado y la base de datos clásica no lograban alinearse, y en consecuencia encontramos cosas extrañas como fogatas de los kolkar bajo el agua y árboles quemados de la época de Cataclysm en el mundo original.

Información de terrenos del 1.12

Motor del 1.12

Motor moderno

Altura del terreno

Agua

Césped

Ubicaciones de los objetos

Altura del terreno

Agua

Césped

Ubicaciones de los objetos

Altura del terreno

Ubicaciones de los objetos

Agua

Césped

Por suerte, el editor moderno de WoW puede realizar estas conversiones de datos, y logramos convertir los datos de terreno con el mismo editor que usamos en Battle for Azeroth. El editor moderno “sabe” cómo cargar los datos de terreno viejos, cómo transformarlos al formato de terreno nuevo y cómo exportarlos al motor moderno. Esto corrigió el problema de las fogatas en ubicaciones no deseadas y la apariencia de los árboles, entre otros errores.

Otro reto que tuvimos que superar fue cómo almacenar y fusionar nuestros datos. El equipo de World of Warcraft trabaja en más de una actualización o parche a la vez, cada uno en distintas etapas de desarrollo. Si un recurso artístico o archivo de terreno se agrega en un parche, el sistema hará que se muestre automáticamente en futuros parches, pues así está diseñado. Esto significa que, si hubiésemos insertado sin más un parche nuevo de WoW Classic en el entorno de desarrollo actual, podríamos haber sobrescrito algunas cosas y reemplazar, por ejemplo, la presa rota de Loch Modan por su versión intacta. Como podrán imaginar, eso habría causado algunos inconvenientes en Battle for Azeroth.

Para evitar esto, el equipo les “enseñó” a nuestras herramientas unos trucos nuevos para que pudiéramos actualizar WoW Classic sin afectar la versión actual del juego. Copiamos los datos del 1.12 en un proyecto nuevo y les enseñamos a las herramientas a distinguirlos: ahora, cuando el equipo de WoW Classic realiza parches, los cambios se limitan a la rama de Classic y nunca interactúan con los datos actuales del juego. Esto puede sonar sencillo, como si se tratase de copiar un directorio, pero la parte complicada es enseñarles a las herramientas cómo comprender este mecanismo para que puedan realizar ediciones automáticamente. Poder aprovechar nuestras herramientas internas es una gran ventaja, y queríamos asegurarnos de que Classic tuviera acceso a toda la infraestructura y datos de WoW.

Modelos y animaciones clásicas

También hemos restaurado completamente la apariencia clásica de los modelos, pero mientras trabajábamos para restaurarlos descubrimos que algunos estaban rotos. En algunos casos faltaban texturas, y tuvimos que investigar cómo deberían verse esos objetos y corregirlos dentro del sistema.

También hemos restaurado las animaciones originales, pero el sistema de animaciones de WoW está estrechamente ligado al código del juego. Tuvimos que realizar cambios en los datos y en el código para que las animaciones se vieran como en el 1.12. Nos topamos con un par de errores en el camino, como modelos que debían aparecer acostados y estaban erguidos, pero pudimos corregirlos.

La restauración de los sistemas de las clases

Algunos sistemas de las clases del juego original no tienen ningún equivalente moderno. Esto afecta en mayor medida a los cazadores. Los sistemas de felicidad y lealtad de las mascotas se eliminaron hace mucho tiempo, al igual que el entrenamiento de mascotas y la habilidad de usar un arma de largo alcance y un arma cuerpo a cuerpo. En estos casos, convertir los datos viejos al nuevo sistema no servía, simplemente porque no hay un sistema nuevo equivalente. Era necesario recuperar el código viejo... y eso fue lo que hicimos. Por suerte, completamos la restauración sin problemas, aunque el hecho concreto de tener que volver a comprar flechas o alimentar a las mascotas tomó por sorpresa a algunos de los testers internos.

Los puntos de combo de los pícaros supusieron otro desafío, porque el sistema de recursos del juego moderno sabe cómo obtener y gastar puntos de combo, pero no cómo perderlos al cambiar de objetivo. También hay que considerar otras fórmulas de combate, así que tuvimos que recuperar el código de las fórmulas de combate antiguas, entre ellas las de los golpes críticos y los golpes aplastantes. La probabilidad de que estos golpes se utilicen se modifica según la diferencia entre la defensa del defensor y la habilidad con arma del atacante. Así es: vuelve la habilidad con arma. Teníamos los datos de este aspecto del juego clásico, pero también debimos restaurar el código que aumentaba tus habilidades cada vez que las usabas y hacía que el nivel de habilidad afectara tu probabilidad de dar un golpe o infligir un golpe de refilón.

Interfaz de usuario e iluminación

La pantalla de selección de personaje es un gran ejemplo de una interfaz de usuario emblemática que había que conservar, y nos esforzamos por restaurarla. Esto incluyó hasta los efectos de la pantalla y la iluminación detrás del personaje. Si bien no podemos prometer perfección, sí podemos prometer que haremos nuestro máximo esfuerzo por crear una experiencia auténtica de todas las formas posibles.

Otro ejemplo de iluminación es el Bosque de Elwynn. En un momento de la historia de Warcraft, cambiamos todas las ecuaciones de iluminación y, por ende, nuestros artistas de entornos tuvieron que revisar todas las zonas para mejorar la iluminación y aprovechar las nuevas ecuaciones. Para recrear la experiencia original, debíamos “dar marcha atrás” con esos cambios. Lo primero que hicimos fue restaurar los datos de iluminación viejos. Esto nos acercó bastante a la iluminación original, y con un par de cambios más en las fórmulas de distancia y niebla, y unos cambios en las sombras, pudimos acercarnos aun más a la iluminación original.

[insert examples]

¿Ya terminaron?

Tras todo este trabajo, seguramente todos se preguntan si ya hemos terminado, o si no habría sido más fácil actualizar el cliente de referencia.

Durante este año de trabajo en el proyecto, en el que nos abrimos paso entre errores y desafíos, el tema que surgía siempre era la diferencia claramente visible entre lo que tenemos y lo que queremos. Cuando observamos el World of Warcraft de hoy, las diferencias entre el juego moderno y el clásico son evidentes. Si hubiésemos decidido actualizar el cliente de referencia, tendríamos que haber rastreado muchísimos cambios “invisibles” como por ejemplo vulnerabilidades expuestas, errores que no aparecen hasta que se conectan millones de jugadores a la vez, y más. Elegimos encarar el problema de forma tal que nuestro trabajo fuera claro y visible, y no complicado y difícil de rastrear. 

Por lo tanto, aunque hoy puedan jugar una demo de WoW Classic, todavía no hemos terminado. Tenemos que revisar muchas de las funciones de las ciudades capitales, como los bancos y las casas de subastas. Debemos probar los calabozos y las bandas para verificar que las habilidades de los jefes funcionen correctamente. Tenemos que analizar nuestros sistemas de JcJ. Pero estamos dedicados a estudiar detenidamente estas y otras funciones para volver a darle vida al juego clásico.

Filosofía y planes futuros

Durante la restauración de World of Warcraft Classic, el principio que nos guio fue ofrecer una experiencia auténtica. Es posible que el juego se ejecute mejor y el hardware sea superior, pero el juego debe verse y sentirse como si estuvieras jugando World of Warcraft en 2006. Las ecuaciones de combate, los modelos originales y las habilidades de los cazadores son parte de esa sensación, pero también la dinámica social. El hecho de depender de otros jugadores, los esfuerzos para formar un grupo  y el impacto que tenía tu experiencia en los calabozos, todos esos factores son parte de la experiencia clásica que queremos preservar.

Muchas decisiones fueron muy sencillas de tomar. Hubo algunas funciones, como el buscador de calabozos, que claramente no íbamos a integrar. Lo mismo pensamos de los grupos interreinos, el sistema de logros, la casa de subastas unificada y la habilidad de volar. 

Otras decisiones fueron un poco más complejas. En un punto de la historia de WoW, había un límite de 8 perjuicios para un mismo objetivo. Luego se elevó a 16, y hoy en día no hay límite de perjuicios. Esto cambió radicalmente el balance de las clases y las estrategias que los jugadores podían usar. Para conservar este balance, y evitar la avalancha de problemas que surgirían si reajustamos los datos del parche 1.12 para compensar este cambio de la era moderna, estableceremos el límite de perjuicios en 16 para WoW Classic.

El correo entre los miembros de una hermandad ahora es instantáneo, pero en el pasado tenía una demora de una hora, tal como el correo entre desconocidos. El cambio al correo instantáneo hizo que todo fuera más cómodo pero eliminó la interacción social que implicaba reunirse con alguien para realizar una transacción si la querías más rápido. Por esa razón, reincorporamos la demora. Otras ventajas, como completar automáticamente los nombres o vaciar los buzones con rapidez, se mantuvieron. Estas decisiones fueron fáciles de tomar porque llegamos a la conclusión de que cualquiera podría desarrollar un add-on que cumpliera la misma función, y además creemos que este tipo de ventajas no tienen ningún impacto en la experiencia “clásica” fundamental.

En el pasado, si alguien despojaba un objeto por error en un grupo, los jugadores tenían que comunicarse con el servicio al cliente para poder intercambiarlo. En el sistema moderno, los jugadores disponen de un período en el que pueden intercambiar botín. Creímos que valía le pena conservar esta ventaja en Classic, en lugar de obligar a los jugadores a comunicarse con el servicio al cliente (¡les pedimos disculpas a los ninjas del botín!).

Las clases que dependen de la regeneración de energía, como los pícaros, han cambiado drásticamente desde la era clásica. Cierta cantidad de energía se regeneraba al ritmo de los “latidos” del servidor. Es decir que debían transcurrir 2 segundos para obtener 20 p. de energía. Hoy en día, el sistema se ha modificado para que se regenere 1 p. de energía cada décima de segundo. Esta diferencia cambió el ritmo con el que puedes usar ciertas habilidades. Puede parecer una ventaja pequeña, pero en realidad altera completamente el flujo de las habilidades en batalla y la capacidad de infligir ráfagas de daño en el juego clásico. Creímos que era importante restaurar este aspecto para ofrecer una experiencia auténtica.

El potencial de los add-ons cambió con el tiempo, y se han vuelto mucho más sofisticados a medida que los autores ganaron experiencia con los años. Aún no hemos llegado a una conclusión sobre este tema para WoW Classic, pero lo que sí sabemos es que no vamos a revertir la API de los add-ons a la versión del 1.12. Si hiciéramos eso, el combate podría automatizarse completamente, lo que provocaría comportamientos similares a los de un “bot”, y esto es algo que va totalmente en contra de la experiencia de juego de WoW. Sabemos que no es lo que deseamos. Del otro lado del espectro, la API moderna ofrece ciertas funciones sociales que podrían destruir la experiencia clásica auténtica. Aún estamos decidiendo los detalles para buscar un buen punto medio. Estaremos muy atentos a los comentarios y sugerencias de la comunidad y los autores de add-ons sobre dónde establecer los límites de la API.

Plan de lanzamiento del contenido

Si bien usaremos el parche 1.12 como base, también queríamos ofrecer la aventura que los jugadores esperan. El mapa de ruta de esta aventura incluye cuatro fases que integraremos con el tiempo:

  • Fase 1: Núcleo de Magma, Onyxia, La Masacre, Kazzak, Azuregos
  • Fase 2: Guarida de Alanegra, Campos de batalla y recompensas de JcJ, Zul’Gurub
  • Fase 3: Ahn’Qiraj (y su evento de apertura), armaduras de “tier 0.5”, contenido de Silithus, dragones verdes
  • Fase 4: Banda Naxxramas, Invasión de la Plaga

Estos bosquejos están sujetos a modificaciones, pero queríamos ofrecerles un vistazo de nuestros planes para el futuro. Seguiremos leyendo sus comentarios y sugerencias sobre cómo dar vida a WoW Classic.

¡Los asistentes a la BlizzCon y quienes hayan adquirido el boleto virtual de la BlizzCon 2018 pueden probar la demo de WoW Classic! Para obtener más información, lee nuestro artículo Reunión de desarrollo.