World of Warcraft

Charla de desarrolladores: World of Warcraft Classic

Charla de desarrolladores: World of Warcraft Classic

¡Saludos! El desarrollo de World of Warcraft Classic ya está en camino y nos entusiasma compartir algunos de los retos y soluciones en las que hemos estado trabajando. Como mencionamos durante la última BlizzCon, el proceso de restaurar el juego clásico no es sencillo y es importante que nos tomemos el tiempo que haga falta y realicemos las tareas necesarias para hacerlo bien. Esto incluye analizar varias versiones del juego, datos y código, y evaluar meticulosamente todos los cambios que hemos hecho durante los años. No te preocupes: el equipo de WoW Classic está trabajando arduamente para que este proyecto se haga realidad, y hemos llegado a un estadio del desarrollo en el que estamos listos para compartir algunos de los aspectos sobre los que hemos estado trabajando.


WoW Classic: el primer prototipo

La primera decisión que tuvimos que tomar —y una de las más importantes— fue qué versión del juego utilizaríamos como base. Como muchos sabrán, el período clásico duró dos años y estuvo repleto de cambios. Ciertas funciones principales, como los Campos de batalla, se incorporaron en parches posteriores al lanzamiento original de WoW, y el diseño de clases también fue cambiando con el tiempo. Después de analizarlo cuidadosamente, decidimos utilizar el parche 1.12: Tambores de guerra como base, porque representa la versión más completa de la experiencia clásica.

Una vez que establecimos nuestro punto de partida, empezamos a recopilar lo que teníamos en el código fuente y lo que podíamos conseguir, lo que incluyó restaurar la base de datos de desarrollo original desde las copias de respaldo de los archivos. Después de conectar varias piezas clave, logramos conseguir una versión reconstruida localmente del parche 1.12 que podía jugarse internamente. El equipo podía crear personajes, hacer misiones básicas, subir de nivel y morir, e hicimos todo esto una y otra vez. Por motivos profesionales, desde luego.

Nuestras pruebas iniciales revelaron algunos problemas (que habíamos anticipado): el juego se cerraba en ocasiones, no reconocía las tarjetas de video modernas y no era compatible con nuestro sistema de inicio de sesión actual. Esa primera prueba tampoco era compatible con nuestros sistemas de seguridad modernos y antitrampas. Era evidente que teníamos mucho trabajo por delante para que WoW Classic estuviera a la altura de los estándares de calidad de Blizzard y les diera a los jugadores una experiencia satisfactoria.


El camino que nos espera: el segundo prototipo

En el aspecto de ingeniería, World of Warcraft es un juego impulsado mayormente por datos, lo que quiere decir que el código base es flexible y su comportamiento se ve controlado por información que se encuentra dentro de bases de datos. Las reglas para las interacciones entre aspectos como las misiones, los monstruos y los objetos las definen los diseñadores y los artistas en los datos.

Entonces nos preguntamos si sería posible crear una experiencia clásica auténtica tomando el código moderno con todas sus mejoras y cambios de fondo y usándolo para procesar los datos de juego del parche 1.12. Si bien puede parecer contrario al sentido común, esto serviría para conservar de forma inherente los sistemas clásicos como los rangos de habilidades, misiones antiguas, terrenos anteriores, talentos y demás, mientras que funciones como las transfiguraciones y los logros no existirían ya que no estarían presentes entre los datos. Después de semanas de investigación y desarrollo, experimentación y creación de prototipos, teníamos la certeza de que podíamos volver a acceder al contenido y a la experiencia de juego de WoW clásica sin tener que sacrificar las millones de horas que, literalmente, se invirtieron en mejoras de fondo durante los últimos 13 años.

Mientras que nuestro esfuerzo inicial nos ayudó a determinar el tipo de experiencia que queríamos brindarles a los jugadores, este segundo prototipo definió efectivamente el camino que debíamos recorrer para lograrlo. Partimos de una arquitectura moderna —con todos sus cambios de seguridad y de estabilidad—, lo que significa que el equipo se puede concentrar en la búsqueda de una auténtica experiencia clásica. Todas las diferencias de comportamiento entre nuestras versiones en desarrollo y las referencias del parche 1.12 se pueden categorizar y corregir de forma sistemática mientras operamos desde una base estable y segura.


Profundización

¿Qué se necesita para recrear una auténtica experiencia clásica con ingeniería moderna? Comencemos por categorizar los distintos tipos de datos del juego que componen a WoW:

  • Datos de tablas: Este tipo de información está casi siempre representada en forma de números. Los puntos de salud de una criatura, la cantidad de puntos de fuerza que otorga un objeto o dónde y cuándo aparecen ciertas criaturas son todos ejemplos de los datos numéricos que almacenamos en nuestras bases de datos. También podemos almacenar y forjar vínculos entre los distintos tipos de datos.
  • Datos de archivos: Normalmente estos son datos más pesados: modelos 3D, texturas, animaciones y terreno. Nuestra interfaz de usuario está compuesta por archivos XML y Lua. Muchos de los archivos de diseño no usan los mismos formatos que las herramientas comerciales. Nuestro cliente procesa estos archivos de diseño básicos y los traduce en objetos optimizados que nuestro juego pueda leer y procesar.
  • Scripts Lua: Algunos aspectos funcionan por medio de scripts Lua escritos por diseñadores, que les permiten definir fácilmente comportamientos personalizados de la lógica del servidor sin necesidad de tener un conocimiento profundo de ingeniería.

Cómo ha cambiado la ingeniería

Un desafío al que nos enfrentamos es que los datos clásicos tienen el formato original que se usó al momento del lanzamiento, pero ese formato ha cambiado sustancialmente con el correr de los años. Se necesita realizar un trabajo importante en este sentido para hacer que el cliente moderno se vuelva compatible con los datos clásicos.

Por ejemplo, los hechizos originalmente podían realizar solamente tres acciones sobre el objetivo. En el formato de tablas, esto se veía más o menos así:

ID

Nombre

Efecto uno

Efecto dos

Efecto tres

Aura uno

Aura dos

Efecto de daño uno

Aura daño uno

Aura daño dos

1

Bola de fuego

Infligir daño

Aplicar aura

Nada

Nada

Infligir daño periódicamente

30

Nada

3

2

Descarga de escarcha

Infligir daño

Aplicar aura

Nada

Nada

Ralentizar

20

Nada

Nada

Como ven, "Nada" ocupa varias secciones. Con el paso de los años de WoW, hemos mejorado el diseño de nuestros datos y normalizado una gran parte de la información de la base de datos. Hoy, esa misma información estaría separada de la siguiente forma:

Nombre de tabla: Hechizos

ID

Nombre

1

Bola de fuego

2

Descarga de escarcha

Nombre de tabla: Efecto de hechizo

ID

ID de hechizo

Efecto

Daño

1

1

Daño

30

2

2

Daño

25

Nombre de tabla: Aura de hechizo

ID

ID de hechizo

Aura

Daño

1

1

Infligir daño periódicamente

3

2

2

Ralentizar

Nada

De esta forma, se desperdicia mucho menos espacio y los hechizos ya no están limitados únicamente a esos tres efectos. Pero antes de que podamos cargar la información de la base de datos, tenemos que convertir el formato de los datos viejos al formato nuevo. Esto no se limita únicamente a los hechizos, ya que con el paso de los años se han modificado los formatos de las bases de datos de casi todos los sistemas del juego (esto incluye objetos, criaturas, personajes de jugadores, plazos y ubicaciones de apariciones, IA y más).


Vistas a futuro

Todo lo que estamos haciendo nos permitirá en última instancia recrear una experiencia clásica auténtica en una plataforma mucho más optimizada y estable, lo que nos ayudará a evitar problemas de estabilidad y de latencia. Entre otras mejoras adicionales se incluyen la detección de bots y antitrampas, integración con Battle.net y servicio al cliente y otros servicios similares que no afectan la experiencia de juego básica.

Estamos ansiosos por enfrentarnos a los desafíos que nos esperan y compartimos la misma pasión que ustedes por el juego clásico; todas las conversiones de código que realizamos nos acercan un poco más a nuestro deseo de que WoW Classic brinde una experiencia auténtica que tanto ustedes como nosotros queremos. Gracias por acompañarnos en este viaje.

Artículo siguiente

Noticias destacadas