World of Warcraft

Un café con los diseñadores: World of Warcraft: Classic

Un café con los diseñadores: World of Warcraft: Classic

¡Saludos! El desarrollo de World of Warcraft: Classic está en marcha y tenemos muchas ganas de compartir algunos de los retos y soluciones en las que hemos estado trabajando. Como ya dijimos en la última BlizzCon, el proceso de restauración de este gran clásico tiene sus complicaciones, y para nosotros es importante tomarnos el tiempo y esfuerzo necesarios para hacerlo bien, lo que incluye analizar las diferentes versiones del juego, los datos, la ingeniería y los números, así como todos los cambios que hemos hecho en los últimos años. Quedaos tranquilos: el equipo está trabajando duro para convertirlo en realidad y nos encontramos en un punto del desarrollo en el que estamos listos para compartir contaros algunas cosas.


WoW Classic: primer prototipo

La primera decisión y una de las más importantes que tuvimos que hacer fue la versión en la que nos íbamos a centrar. Como muchos de vosotros sabéis, el periodo clásico del juego duró dos años y hubo muchos cambios. En aquella época se añadieron los campos de batalla, además de muchas actualizaciones de mazmorras y bandas famosas. Después de darle muchas vueltas, nos decidimos por usar 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 tuvimos el punto de partida, empezamos a evaluar lo que había en el código fuente y lo que queríamos dejar, cosa que suponía echar un vistazo a la base de datos del desarrollo original. Después de unir varios puntos clave, reconstruimos una versión local del parche 1.12 y la ejecutamos internamente. El equipo pudo crear personajes, subir de nivel y hacer misiones básicas (además de morir, y mucho). Solo por probar, claro.

Las primeras veces que lo probamos nos encontramos con varios problemas que ya esperábamos: el juego se bloqueaba, no reconocía las tarjetas gráficas modernas y no era compatible con nuestro sistema actual de inicio de sesión. Tampoco funcionaban el sistema de seguridad moderno y las herramientas antitrampas. Estaba claro que teníamos mucho trabajo por delante para que estuviera al nivel de calidad que ofrecemos en Blizzard y exigen los jugadores. Pero la verdad es que nos encantan estos retos, y nuestro equipo de ingeniería de WoW Classic ha avanzado a paso de gigante.


El camino a seguir: el segundo prototipo

Hablando de ingeniería, World of Warcraft es un juego donde los datos son muy importantes, lo que significa que el código básico es flexible y su comportamiento concreto se controla por medio de la información de las bases de datos. Los diseñadores y artistas definen con datos las misiones, los monstruos, los objetos y todas las normas de interacción entre estos elementos.

Así que nos preguntamos si sería posible conseguir una experiencia clásica auténtica cogiendo el código moderno, con todos sus cambios y mejoras finales, y usándolo para procesar los datos del juego tal como estaban en el parche 1.12. Aunque parezca contradictorio, esto significa incorporar sistemas clásicos como la felicidad de las mascotas, la mejora de habilidades de armas, los talentos clásicos y demás, mientras que otras características más modernas como las batallas de mascotas, el buscador de grupo y los logros, dejarían de existir. Después de unas semanas de análisis técnicos, experimentos y prototipos, estamos seguros de que podríamos conseguir el contenido y juego clásico sin sacrificar las horas y el desarrollo de los que se ha nutrido el juego durante los últimos 13 años.

Aunque nuestro primer esfuerzo nos ayudó a determinar la experiencia que queríamos ofrecer, este segundo prototipo ha definido cómo vamos a conseguirlo. A partir de una arquitectura moderna (con todos sus cambios en cuestión de seguridad y de estabilidad), hemos identificado el trabajo que se necesita para llegar a una experiencia clásica auténtica. Cualquier diferencia de funcionamiento entre el desarrollo y la experiencia auténtica se puede catalogar y corregir sistemáticamente mientras se sigue funcionando desde una base estable y segura.


Profundizando

¿Qué se necesita para recrear una experiencia clásica auténtica con una ingeniería moderna? Empecemos por clasificar los diferentes tipos de datos del juego que forman World of Warcraft

  • Datos de la base de datos: la clase de información que casi siempre se representa con números. Los puntos de vida de una criatura, la fuerza de un objeto o el lugar de aparición de ciertas criaturas son ejemplos de los datos numéricos que se guardan en la base de datos. También podemos guardar e imponer relaciones entre los diferentes elementos de datos.
  • Datos de archivo: suelen ser datos muy densos, como modelos en 3D, texturas, animaciones y terreno. Nuestra IU está construida a partir de archivos XML y LUA. Mucho de los archivos artísticos no usan los mismos formatos que las herramientas de diseño. Con estos archivos en bruto construimos algo optimizado para que el juego lo lea y lo procese.
  • Scripts LUA: algunas características funcionan con scripts LUA que escriben los diseñadores, lo que les permite definir fácilmente comportamientos personalizados para el servidor sin saber demasiado de ingeniería.

Cómo ha cambiado la ingeniería

El reto al que nos enfrentamos es que los datos clásicos están en el formato original que se usaba en el lanzamiento del juego, pero el formato ha cambiado bastante. Se necesita mucho trabajo en esta área para que el cliente moderno sea compatible con los datos clásicos.

Por ejemplo, al principio los hechizos solo podían realizar tres acciones sobre sus objetivos. Tenían forma de tabla y eran más o menos así:

ID

Nombre

Efecto uno

Efecto dos

Efecto tres

Aura uno

Aura dos

Efecto de daño uno

Daño de aura uno

Daño de aura dos

1

Bola de Fuego

Causar daño

Aplicar aura

Nada

Nada

Causar daño periódicamente

30

Nada

3

2

Descarga de Escarcha

Causar daño

Aplicar aura

Nada

Nada

Ralentizar

20

Nada

Nada

Como podéis ver, hay mucho espacio ocupado por «nada». A lo largo de los años, hemos mejorado el diseño de datos y normalizado muchos datos de la base de datos. Hoy, esos mismos datos se separarían así:

Nombre de la tabla: hechizo

ID

Nombre

1

Bola de Fuego

2

Descarga de Escarcha

Nombre de la tabla: efecto de hechizo

ID

SpellID

Efecto

Daño

1

1

Daño

30

2

2

Daño

25

Nombre de la tabla: hechizo de aura

ID

SpellID

Aura

Daño

1

1

Causar daño periódicamente

3

2

2

Ralentizar

Nada

De esta forma se desperdicia menos espacio y los hechizos ya no se limitan a tres efectos. Pero antes de que podamos cargar cualquier dato de la base de datos, tenemos que adaptar el diseño antiguo de los datos al nuevo. Esto no se limita a los hechizos, ya que casi todos los sistemas de juego (incluidos objetos, criaturas, personajes de los jugadores, apariciones, IA y mucho más) han ido alterando su manera de integrarse en la base de datos con el paso de los años.


De cara al futuro

Todo el trabajo que estamos haciendo nos permitirá recrear una experiencia clásica auténtica en una plataforma mucho más estable y optimizada y nos ayudará a evitar problemas de latencia y estabilidad. Otras actualizaciones modernas incluirán la detección de trampas y bots, la asistencia al cliente y la integración de Battle.net, además de todas las mejoras orientadas a los jugadores que nos parezcan pertinentes.

Estamos deseando que lleguen más retos y compartir vuestra pasión por el juego clásico. Cada registro de código en la conversión de datos nos acerca más a World of Warcraft: Classic, para que tanto vosotros como nosotros podamos disfrutar de la auténtica experiencia. Gracias por acompañarnos en este viaje.

Siguiente artículo

Noticias destacadas