BlizzCon 2018 – Restaurar la Historia: Creando World of Warcraft Classic

Seguimos rememorando los paneles de la Blizzcon 2018 y ahora vamos a echar un vistazo a lo que se dijo en el panel de creación de World of Warcraft: Classic.

  • El panel estuvo organizado por Ion Hazzikostas, y nos hablaron de la creación Omar Gonzalez (Senior Software Engineer) y Brian Birmingham (Lead Engineer).
  • En este panel se cuenta cómo se puede volver a la historia que vimos en 2006.
  • Es el juego por el que existe BlizzCon porque el WoW forjó el vínculo entre los jugadores que querían participar y conocer a los amigos que ya conocían dentro del juego.
  • Se trata de una restauración y nos presenta a Omar Gonzalez que nos habla del origen del WoW Classic.
  • Omar es Ingeniero de Software Senior.
  • Empezó a trabajar en WoW en 2003, y para él es un honor trabajar en el proyecto y traer los recuerdos que tiene para traer de nuevo a la vida esos momentos e incluso mostrárselo a la siguiente generación.
  • Nos muestra la cantidad de puntos que existen para engendrar la base de datos como el daño y las estadísticas.
  • Otro componente son los componentes artísticos, como sonidos, texturas, movimientos de personajes.
  • Luego está el código fuente que une todo ello y los ordenadores saben qué hacer y que sonido tiene que haber, entre otras cosas.
  • Si miramos el código fuente, se guardaba en un repositorio y con ello tenemos todos los cambios desde 1997 en código. En Abril de 1997 se vieron algunos errores como que se pedía que se hiciera algo pero hacía lo opuesto, y así salió la primera corrección.
  • También nos hablarán de como trabajan con los datos de la base de datos. Primero había una versión sencilla y después un parche, y el parche se distribuyó por el servidor comercial para que pudieran disfrutarlo los jugadores.
  • Luego trabajaron en el siguiente parche pero sobre el parche anterior, y se perdían datos. Antes solamente se podía trabajar en un solo parche pero después se pudo trabajar en varios parches a la vez.
  • El parche 1.12.0 dio confianza para trabajar en la base de datos original. Porque fue el parche que funcionó para empezar a trabajar.
  • Luego miraron en qué trabajar, como los modelos que estaban en 2D y los cambiaron a 3D.
  • Tienen datos almacenados en red, pero solamente tenían lo más recientes. Así que fueron a los archivistas para preguntar si tenían los datos, pero tenían una cuenta respaldo en cintas en las que había una copia de la carpeta final del 1.12.0.
  • Al tener esta versión fiable de base de datos, código y datos artísticos lo reconstruyeron, y por suerte tenían una versión que pudieron ejecutar internamente, podían entrar, subir de nivel, etc. Pero tenían que volver hacia atrás.
  • Los servidores no operaban al vacío sino que eran parte de una red más grande como la autentificación de cuentas. Tampoco funcionaba en Battle.net y no había acceso al sistema de soporte al cliente.
  • Lo peor fue que cada error y problema y expolit no estaban reflejados en la calidad de Blizzard.
  • Vieron que no les gustaba lo que había en el código fuente pese a que les gustaba la base de datos y arte. Así que si tomaban el código fuente moderno y los datos antiguos, pensaron que las piezas podrían encajar y trabajar en conjunto. Pensaron en ello y vieron que no encajaban.
  • Se dieron más tiempo para ver si se podía hacer de alguna manera. Buscaron si se podía llegar a un punto medio.
  • Lo encontraron pero siempre había errores.
  • Pero al final había lo básico, las piezas principales del WoW como las misiones, personajes, habilidades, pero en la infraestructura moderna.
  • Para ello, sube Brian Birmingham para hablarnos de la Ingeniería. Jugó a WoW desde su primera Beta.
  • Cuando escuchó que el equipo de WoW iba a desarrollar Classic se sumó al equipo. Llegó a Blizzard en 2006 y estaba ya en el equipo de herramientas de WoW y trabajó 8 años en ello.
  • Tomó datos para la base de datos.
  • Las piezas se juntan para recrear a los jugadores como el terreno, las animaciones, etc.
  • El motor 1.12 esperaba cierto terreno que el motor moderno tiene y los terrenos y ubicaciones no encajaban.
  • Las herramientas modernas rescatan en cierto sentido todo estos problemas. Pueden hacer cosas para el motor moderno y restaurarlos en el Classic. Las herramientas también manejan los errores de manera diferente, y se puede ver en los colores. Decimos al modelo que tiene que producir una luz pero no el color y cambia de un sitio a otro.
  • El cazador tiene cosas que no están en el motor actual como el entrenamiento de mascotas, la felicidad o lealtad de la mascota.
  • Los pícaros volvieron con las fórmulas de combate, los combos, las habilidades de armas.
  • Volvió el código que sube de nivel que aumenta las posibilidades de golpear.
  • En cuanto a la personalización de personajes, está la combinación de clase y raza, donde se tuvo que restaurar el arte antiguo. Tuvieron que encontrar las acciones del motor que asegurase que tuviera unificación con el original.
  • El Bosque de Elwynn cambió e ingresaron los datos anteriores pero aparecieron problemas de luces demasiado bien iluminadas. La ecuación de distancia cambió con el tiempo y pudieron ajustar las sombras y niebla.
  • Hay muchas cosas que han cambiado en cuanto a la interfaz, como el cuadro de Instructores de Profesión que es completamente diferente.
  • Ademas de todo esto hay que retocar aún las capitales, las mazmorras y bandas y todo lo referente al JcJ.
  • Vuelve Ion Hazzikostas al escenario. Ion ha participado como consultor.
  • Realmente el trabajo creativo ya se hizo hace 12 años, y sus decisiones era la autenticidad y que la experiencia fuera igual al WoW del 2006.
  • No se trata solamente de habilidades de armas, sino también de la dinámica social que había entonces, siendo parte clave.
  • Si el resultado fuera distinto en todo, el proyecto quedaba totalmente desviado y hubiera sido algo totalmente distinto.
  • Buscador de mazmorras: no va a existir, lógicamente. Es una dinámica social clave hoy en día pero no estaba entonces. Tiene ciertas ventajas como teletransportarte directamente a la mazmorra. Pero la esencia de WoW en 2006 era pasar tiempo en la ciudad buscando un sanador y costó tanto que al final acababas agregando al jugador a tu lista de amigos y sabías que podías volver a contar con él.
  • Grupos entre reinos: tampoco existir.
  • Volar: por supuesto que no.
  • Logros: tampoco. En el mundo de entonces no era necesario.
  • Las casas de subastas unificadas tampoco estarán. Volveremos a las casas de subastas neutrales donde pagabas un extra.
  • Hay decisiones que aún están en el aire, como por ejemplo el límite de debuffs. En 2004 podías poner 8. En 2005 16, en la Burning 40. Restaurarán el límite de 16.
  • Correo: en aquel entonces, el correo tardaba en llegar 1 hora a cualquier miembro de la hermandad. Estas sutilezas te hacían ver que estabas en un mundo de verdad porque movías a la gente de un lugar a otro para hacer un intercambio.
  • Intercambio de botín: si hacías intercambio con un jefe de banda había era más libre entonces, no existía la limitación de 2 horas para entregárselo a otro miembro de la banda o incluso se podía entregar a otra persona que no estaba en la banda. Esto finalmente será como es actualmente porque así no necesariamente tienes que andar poniendo un ticket por algo que has hecho accidentalmente como lotear algo accidentalmente.
  • Regeneración de energía: ahora es regeneración predictiva modificada por la celeridad. Pero en el Classic el viejo modelo de regeneración de energía volverá.
  • La parte más difícil: Addons. Aún están en diálogo con los dearrolladores. Antes hacían cosas poderosas y se eliminó. Esta funcionalidad no estará disponible y los Addons que añadan cosas sociales como buscadores de mazmorras serán restringidos.
  • En cuanto al plan de contenido. En el 1.12 habrá un montón de cosas disponibles. En aquel entonces estaba Naxxramas, etc. Pero irán desbloqueando contenido progresivamente tras el lanzamiento.
  • Empezaremos con Núcleo de Magma y Onyxia como contenido de banda, La Masacre y jefes como Kazzak y Azuregos.
  • Posteriormente, saldrán recompensas de Campos de Batalla y JcJ. También saldrá posteriormente Guarida de Alanegra y Zul Gurub.
  • Después llegarán AQ 20/40 con la apertura de las puertas incluidas, Silithus y los Dragones Verdes.
  • Y finalmente, tendremos Naxxramas y su contenido correspondiente.
Originally Posted by Blizzard Entertainment (Official Post)

En el seno de la comunidad, hace ya bastante tiempo que se habla de la esperada experiencia de World of Warcraft: Classic, pero para comprender bien la tarea de crear dicha experiencia con el nivel de calidad que caracteriza a Blizzard, nos subimos al escenario junto con los ingenieros de software Brian Birmingham y Omar Gonzalez y el director de juego Ion Hazzikostas.

Encontrar las piezas

Omar simplificó los fundamentos de la creación de un juego dividiéndolos en tres factores: datos de la base de datos, materiales artísticos y código fuente.

  • Los datos de la base de datos incluyen los puntos de salud de una criatura, el aguante de un objeto, las ubicaciones de aparición por el mundo y millones de cosas más.
  • Los materiales artísticos incluyen desde el aspecto que tiene un elfo de la noche cuando usa Fusión de las sombras hasta el movimiento de un orco al blandir su hacha, pasando por los sonidos que hace Piroexplosión.
  • El código fuente son las instrucciones necesarias para mostrar el juego, procesar las entradas y conectar a los jugadores.

Para comenzar, tuvimos que averiguar hasta qué fecha abarcaba nuestro código fuente y descubrimos que el depósito de código se remontaba al año 1997, mucho antes de que se empezara a desarrollar World of Warcraft.

Fue un buen comienzo, pero hubo problemas con la forma de gestionar las actualizaciones de la base de datos que tenían antes los desarrolladores. A diferencia de nuestro código, que tiene múltiples bifurcaciones del juego con las que se podría trabajar y desarrollar por separado, los primeros datos de la base de datos se sobrescribían con cada actualización. Por suerte, solucionamos ese problema muy rápido tras el lanzamiento y, después de buscar, encontramos datos que se remontaban a la versión 1.12, e incluso más.

Por último, encontramos nuestros materiales artísticos en copias de seguridad antiguas, que coincidían con todos los datos de la base de datos que conservábamos.

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

Estilo de juego clásico en un mundo moderno

Aunque teníamos una versión del juego funcional, había que solucionar muchos más retos. La tecnología que sustenta el juego ha evolucionado mucho desde su primer lanzamiento: compatibilidad con la nube, integración con la aplicación Battle.net, características de asistencia al cliente y un montón de errores y exploits que se han corregido desde entonces.

Para superar estos obstáculos, nos fijamos en lo que nos gustaba (arte y datos) y lo que no (el código). Queríamos comprobar si era posible utilizar los materiales artísticos y los datos clásicos en nuestro código moderno sin que volase todo por los aires. Las cosas no fueron bien desde el principio, pero, a base de ensayo y error, desarrollamos una prueba de concepto del proceso de integración que podía desembocar en algo jugable. Esto aumentó nuestra fe en nuestra capacidad de crear una experiencia con el nivel de calidad que caracteriza a Blizzard en nuestra plataforma moderna.

Desde el prototipo a la demo

Los pilares fundamentales, los datos de la base de datos, el código fuente y los materiales artísticos se unen para crear características de cara a los jugadores, como el terreno, las mecánicas de juego, la animación y la iluminación. Las diferentes características requieren que los elementos fundamentales se relacionen entre sí de diferentes formas.

Para entender por completo la interacción, pongamos como ejemplo el terreno. Esto incluye la ubicación de las colinas y valles, árboles, edificios y demás. Cuando conectamos los archivos de datos de terreno antiguos al nuevo sistema de juego, nos dimos cuenta de que este analizaba los datos de forma diferente. Como consecuencia, el sistema actualizado y los datos clásicos no se alineaban bien, por lo que nos encontrábamos cosas como hogueras Kolkar bajo el agua o árboles quemados de la época del Cataclismo.

Datos del terreno 1.12

Motor 1.12

Motor moderno

Altura del terreno
Agua Hierba
Ubicación de objetos
Altura del terreno
Agua Hierba
Ubicación de objetos
Altura del terreno Ubicación de objetos
Agua Hierba

Por suerte, nuestro editor moderno es capaz de realizar algunas conversiones sobre estos datos. Los datos del terreno podemos convertirlos con el mismo editor que usamos en Battle for Azeroth. El editor moderno sabe cómo cargar el formato antiguo del terreno, transformarlo al formato nuevo y exportarlo a nuestro motor moderno. Esto corrigió los problemas relacionados con las ubicaciones de las hogueras y la aparición de árboles, entre otras cosas.

Otro obstáculo que superamos fue la forma de almacenar y combinar los datos. World of Warcraft tiene múltiples parches en desarrollo en todo momento porque cada parche se encuentra en una etapa de desarrollo diferente. Si añadíamos un elemento artístico o un archivo de terreno a un parche, queríamos que apareciese de forma automática en los parches siguientes. En los catorce años del proyecto, esto siempre se ha hecho siguiendo una secuencia cronológica. Si hubiésemos implementado el nuevo parche de Classic en el desarrollo actual, habríamos sobrescrito cosas como el dique actual en Loch Modan con la versión restaurada anterior. Esto habría provocado problemas con el lanzamiento de Battle for Azeroth.

Para evitar esto, les enseñamos a nuestras herramientas algunos trucos para poder implementar parches de Classicsin que afectasen a la versión actual del juego. Copiamos los datos de la versión 1.12 en un nuevo proyecto, enseñamos a las herramientas a distinguir entre ellos y ahora, al crear parches, todos los cambios permanecen en el proyecto clásico sin interactuar con los parches principales. Esto puede parecer sencillo —tanto como copiar un directorio—, pero la parte difícil es enseñar a las herramientas a entender el proceso para que puedan hacer modificaciones por nosotros de forma automática. La posibilidad de usar nuestras herramientas internas es una gran ventaja y queríamos asegurarnos de que Classic tuviera acceso a todos nuestros datos e infraestructuras.

Animaciones y modelos clásicos

También aprovechamos para restaurar por completo los modelos con su apariencia clásica, pero, durante el proceso, descubrimos que algunos estaban «rotos». En algunos casos nos faltaban las texturas, así que tuvimos que investigar para averiguar cómo debían aparecer estos elementos y corregirlos dentro del sistema.

También restauramos las animaciones originales, pero como nuestro sistema de animación está muy unido al código de juego, tuvimos que realizar cambios tanto en los datos como en el código para que las animaciones recuperaran el aspecto de la versión 1.12. Durante el proceso encontramos algunos fallos; por ejemplo, algunos modelos que debían aparecer tumbados lo hacían derechos, y viceversa. Sin embargo, pudimos corregirlos fácilmente.

Restaurar el sistema de clases

Aunque hemos realizado grandes progresos convirtiendo los datos en código, algunos sistemas carecen de equivalente moderno. Probablemente, la clase más afectada sea la del cazador. Los sistemas de lealtad y felicidad de las mascotas se habían eliminado, así como el entrenamiento de mascotas y la capacidad de usar tanto un arma a distancia como un arma cuerpo a cuerpo. En estos casos, convertir los datos antiguos al nuevo sistema no habría funcionado, puesto que no existía para ellos. Por lo tanto, teníamos que recuperar el código antiguo, y lo hicimos. Por suerte, el proceso de restauración fue como la seda…, pero la realidad de tener que comprar flechas o alimentar a las mascotas de nuevo pilló a muchos por sorpresa.

Este problema no estaba solo en el cazador. También tuvimos que cambiar el código de los puntos de combo de los pícaros, puesto que nuestro sistema de recursos moderno sabe cómo ganar y gastar los puntos de combo, pero no cómo perderlos al cambiar de objetivo. También debíamos tener en cuenta otras fórmulas de combate antiguas. En este caso recuperamos el código para las fórmulas de combate anteriores, incluidos los golpes críticos y los golpes aplastantes. La posibilidad de que se produzcan se modifica también por la diferencia entre la defensa del defensor y la habilidad de arma del atacante. ¡Sí, la habilidad con las armas ha regresado! Teníamos los datos, pero necesitábamos restaurar el código que aumentaba vuestras habilidades cuando las usabais y hacía que vuestro nivel de habilidad incidiera en la posibilidad de golpear o dar un golpe de refilón.

Interfaz de usuario e iluminación

El menú del personaje es un gran ejemplo de una interfaz de usuario emblemática que había que restaurar, esforzándose al máximo para que siguiera transmitiendo las mismas sensaciones, desde los efectos en pantalla hasta la iluminación del personaje. Aunque no queremos prometeros que será perfecta, os aseguramos que estamos realizando comparaciones paralelas sin escatimar trabajo para crear una experiencia auténtica.

Otro ejemplo de iluminación sería el Bosque de Elwynn. En la historia de Warcraft hubo un periodo en el que cambiamos todas las ecuaciones lumínicas y, como consecuencia, los grafistas de entorno tuvieron que repasar todas las zonas para mejorar la iluminación y aprovechar las nuevas ecuaciones. Para recrear la experiencia original hemos tenido que revertir dichos cambios. En primer lugar restauramos los datos de iluminación antiguos, lo que nos acercó mucho más a la iluminación original. Aplicando algunos cambios más en las fórmulas de niebla y distancia, así como una serie de modificaciones en las sombras, conseguimos acercarnos aún más a la iluminación original.

¿Habéis terminado ya?

Después de tanto trabajo, seguramente os preguntaréis si hemos terminado ya o si no habría sido más fácil que nos limitáramos a actualizar el cliente de referencia.

Tras pasar un año entero trabajando en este proyecto y bregando con diferentes errores y desafíos, hay un tema recurrente: que la diferencia entre lo que tenemos y lo que queremos es claramente visible. Cuando observamos el World of Warcraft actual, podemos ver las diferencias que existen. Si intentáramos actualizar el cliente de referencia, detectaríamos un montón de cambios invisibles, como vulnerabilidades potenciales, cierres inesperados que no aparecerían hasta que hubiera millones de jugadores jugando en línea a la vez, etc. Decimos abordar este problema de una forma que hiciera que nuestro trabajo fuera evidente, no algo difícil de detectar.

Pero todavía no hemos terminado: aún tenemos que examinar un montón de características de las capitales, como los bancos y las casas de subastas. También tenemos que probar las mazmorras y bandas para asegurarnos de que las habilidades de jefe sigan funcionando correctamente. Y además, tenemos que examinar todos los sistemas JcJ.

Filosofía y planes de futuro

Al restaurar World of Warcraft: Classic, queríamos ofrecer una experiencia auténtica para que, si alguien no había jugado al juego desde los primeros tiempos, pudiera retomarlo exactamente donde lo dejó. Puede que ahora las cosas vayan más fluidas y los equipos sean mejores, pero debería provocar las mismas sensaciones que al jugar a World of Warcraft en 2006. Incluso más allá de las ecuaciones del combate y la habilidad, una parte importante de ello son las dinámicas sociales y la dependencia en los demás; por ejemplo, la dificultad para encontrar un grupo y la confianza que se deposita en él cuando se entra en una mazmorra o en un combate.  Además, no queríamos vernos obligados a cambiar los datos de la versión 1.12 y la consiguiente experiencia de juego.

Muchas decisiones que tomamos estaban bastante claras. Era obvio que teníamos que quitar cosas como el buscador de mazmorras. También nos aseguramos de dejar fuera los grupos entre reinos, el sistema de logros, las casas de subastas unificadas y, sí, la capacidad de volar.

Otras decisiones fueron un poco más complejas. Hubo una época en la que el límite de perjuicios era 8. Luego se amplió a 16 y más tarde se eliminó definitivamente. Este cambio dio un giro radical al equilibrio de clases y a las estrategias de perjuicios que podían usar los jugadores para superar el contenido. Para no tener que modificar los datos de la versión 1.12, nos decidimos por el límite de 16 perjuicios para Classic.

En la actualidad, el correo electrónico dentro del juego entre compañeros de hermandad es instantáneo, pero antiguamente tenía un retardo de una hora, al igual que entre desconocidos. El cambio al correo instantáneo facilitó las cosas, pero eliminó la interacción social de tener que quedar con alguien para realizar una transacción si se necesitaba algo antes. Por esta razón hemos reintroducido ese retardo. Hemos dejado otros cambios de tipo práctico, como el autocompletado de nombres o el vaciado rápido del buzón. Esta decisión fue bastante sencilla ya que cualquiera podría crear un complemento que hiciera lo mismo, y no nos parecía que tuviera sentido eliminar ese tipo de ayudas.

Antes, el intercambio de botín solía requerir la implicación de Asistencia al cliente si alguien obtenía por accidente algo que no debía. Con el actual sistema, más moderno, los jugadores tienen un periodo de tiempo en el que pueden intercambiarse botín. Nos pareció que merecía la pena mantener esta función en Classic para evitar un montón de solicitudes de asistencia que eran completamente innecesarias (¡lo sentimos, acaparadores!).

Para las clases que dependen de la regeneración de energía, como los pícaros, las cosas también han cambiado mucho desde los tiempos de Classic. Antes la regeneración se daba a intervalos, al ritmo del «latido» del servidor. Así, para ganar 20 de energía, se tardaban dos segundos enteros. Hoy en día, el sistema se ha perfeccionado, de forma que se regenera 1 de energía cada décima de segundo. Esta diferencia ha cambiado la frecuencia con la que se pueden usar ciertas habilidades. Lo que ahora podría parecer una ventaja menor, en realidad cambia el flujo mismo de las rotaciones de combate y la capacidad de daño explosivo del juego clásico. Nos parecía importante recuperarlo para ofrecer una experiencia auténtica.

Los complementos han cambiado mucho a lo largo de los años; se han vuelto mucho más sofisticados a medida que sus autores han ido ganando experiencia y conocimientos. Aún no hemos encontrado una solución plenamente coherente sobre lo que significa esto para Classic, pero lo que sí sabemos es que no vamos a volver a la API de complementos de la versión 1.12. De hacerlo, abriríamos la puerta a automatizar las decisiones de combate casi por completo, un comportamiento típico de «bots» que es contrario a la experiencia de juego de WoW. Tenemos claro que eso no lo queremos. Al otro lado del espectro, la API moderna ofrece más funcionalidad a la hora de crear características sociales que también podrían deteriorar la experiencia auténtica de Classic. Aún estamos puliendo los detalles y buscando un equilibrio entre los dos extremos. Estaremos muy pendientes de los comentarios de la comunidad y de los creadores de complementos para decidir dónde establecemos los límites.

Plan de lanzamientos del contenido

Aunque vamos a empezar con la versión 1.12, también queríamos estar seguros de ofrecer el viaje que esperan los jugadores. Como itinerario para ese viaje, tenemos cuatro etapas adicionales que pensamos incorporar a la experiencia con el tiempo.

  • Etapa 1: Núcleo de magma, Onyxia, La Masacre, Kazzak, Azurgos
  • Etapa 2: Guarida de Alanegra, Campos de batalla y recompensas JcJ, Zul’Gurub
  • Etapa 3: Ahn’Qiraj (incluido el evento de apertura), nivel 0,5, contenido de Silithus, dragones verdes
  • Etapa 4: Banda de Naxxramas, Invasión de la Plaga

Dichos planes podrían cambiar, pero queríamos contaros lo que tenemos preparado. Estamos deseando conocer vuestra opinión, a pesar de que nos queda mucho trabajo por delante.

Los asistentes a la BlizzCon y aquellos que posean la Entrada Virtual de la BlizzCon 2018 ya pueden probar la demo de Classic! Para saber más, leed la última entrega de Un café con los diseñadores y la publicación en el foro con las restricciones de la demo.

Leave a Reply