Durante la pasada BlizzCon en el Anfiteatro de la Comunidad en la zona de la Feria de la Luna Negra del evento tuvo lugar un panel sobre Ingenería del WoW que no se pudo ver por ningún streaming pero que tuvo interesantes preguntas y comentarios de varios de los Ingenieros de World of Warcraft. Este panel tuvo lugar el Viernes día 4 y los chicos de MMO-Champion lo grabaron en vídeo y han realizado un resumen de lo más interesante que aquí os dejamos traducidos al español.
Panel de Ingeniería de WoW – Anfiteatro de la Comunidad
- Legion ha doblado o en algunas máquinas de última generación triplicado la distancia de visión.
- Se supone que La playa de los ancestros tiene que empezar cuando el barco llega al embarcadero, pero ha habido unos problemas con ese tiempo. La implementación original en la WoTLK tenía un PNJ invisible en el puerto y un barco con un facción opuesta y hostil. Los PNJ estarían en rango cuando el barco llegase, uno mataría al otro, y así empezaría el Campo de Batalla.
- Las cinemáticas de las construcciones de las Ciudadelas y otras similares solo utilizaban el modelo 3D del Texto, con lo que las cinemáticas no están localizadas. Solo les añadieron subtítulos para ayudar con la localización. Para Legion se ha creado un sistema para ayudar a enseñar el texto 3D flotante en el mundo que puede ser localizado.
- El equipo intenta pasar algún tiempo lidiando con los problemas técnicos cada vez que se completa una expansión.
- Cuando salió WoW, la mayoría de los jugadores tenían un ordenador con un solo núcleo y las tarjetas gráficas no procesaban muchos sombreados de pixeles.
- Cuando el equipo quería hacer un modelo de un personaje nuevo, se dieron cuenta de que triplicarían o cuadriplicarían la cantidad de huesos en las razas. El sistema de animación estaba escrito antes, cuando los jugadores tenían solo un núcleo y no estaba construido para soportar lo que necesitaban hacer. Los requisitos mínimos podían soportar multi-hilo ahora, con lo que escribieron un sistema de trabajos capaz de mandar cada modelo a un hilo para ser animado. El equipo se dio cuenta de que podían animar incluso más modelos, con lo que solucionar esos problemas técnicos ayudo a aumentar las capacidades del motor del juego. En algunas de las cinemáticas de Warlords puedes ver cientos de Orcos corriendo por el paisaje en el fondo, que es algo posible gracias a los cambios que el equipo hizo al sistema.
- Los “Stalkers” son unidades invisibles que hacen algo. El equipo de ingenieros ha sido una unidad relativamente pequeña últimamente, con lo que mucho contenido desarrollado por los diseñadores utiliza los “Stalkers” invisibles. Esto puede ocasionar algunos problemas de rendimiento y hacer difícil el hecho de reproducir un bug de comportamiento no determinista. El equipo puede ir atrás y mirar qué se está utilizando para averiguar qué tipo de herramienta pueden construir para ayudar a los diseñadores a crear el contenido.
- La batalla contra Al’Akir tenía cientos de “Stalkers” invisibles alrededor. Estos se usaban para mover a los personajes alrededor del vórtice, haciendo que el personaje se pegase al más cercano cuando saltabas dentro.
- El equipo de ingenieros ha revisado las mazmorras y bandas nuevas para ver cuantos “Stalkers” invisibles se están utilizando. Es un símbolo de peligro que muchos se estén usando, pero hay bastantes situaciones en las que su uso es razonable y válido.
- Las grandes multitudes en un juego son difíciles, ya que tu cliente necesita saber qué está haciendo todo el mundo. Esto es el porqué de limitar la cantidad de gente en una zona del juego, ayuda al rendimiento del servidor, del cliente, y del ancho de banda usado.
- El cliente manda el lanzamiento de un hechizo al servidor y asume que va a cumplirse. Ocasionalmente, lanzas un hechizo, el tiempo de reutilización comienza, y entonces te dice que en verdad estás silenciado y para. Las animaciones de lanzamiento de hechizos también empiezan de inmediato, eso es el porqué de que tengas las manos brillando antes de lanzar un hechizo si tienes una latencia alta. Hace que las respuestas de tus acciones parezcan inmediatas.
- Hechizos como la Descarga de Escarcha tienen una barra de lanzamiento de hechizos larga, con lo que puedes empezar la animación y la interfaz cambia de inmediato cuando lanzas el hechizo. Con hechizos instantáneos tienes que esperar la respuesta del servidor antes de actualizar nada. Si eres una clase melee te darás cuenta de que no parece tan responsivo. En Legion las animaciones de melee empiezan de inmediato y la respuesta del servidor se hace antes de que se resuelva el evento del impacto, con lo que el evento del impacto puede ser sincronizado con el movimiento de la animación, haciendo que todo parezca mucho mejor.
- Todos tus huecos de equipo, de bolsas y de banco estaban hardcoded en el juego original. Hay huecos que están hardcoded en el juego, como es el de las mochilas, con lo que, si la mochila original se tuviese que expandir, todas las otras tendrían que ser reorganizadas. También sería necesario una migración de datos en el proceso para guardar todos los datos de los personajes. Es un dilema complicado. Es simplemente más fácil aumentar el hueco de todas las otras bolsas.
- No existe una limitación técnica para que los jugadores no tengan piernas debajo de las túnicas. Pudo hacerse para los Nocheterna porque tenían un set de animaciones limitado, con lo que es fácil animar las piernas para evitar que traspasen las túnicas. En un personaje de un jugador la geometría de las piernas puede cambiar, como cuando se utilizan botas más grandes. Este es un problema que al equipo le gustaría resolver.
- Ahora mismo el cliente encripta las escenas de vídeo hasta que es el momento de que aparezcan. Al equipo le gustaría mejorar esto más allá del nivel de archivo especifico a la parte del video dentro del fichero. Es una tecnología que el equipo está intentando conseguir y todos los demás internamente están de acuerdo con esta opción.
- Resolver el problema de que los jugadores Tauren quepan por las puertas es difícil. Los Tauren tienen que tener una zona de colisión a su alrededor para determinar si se va a chocar. Esto determina como está en el suelo, si está nadando, y si puede pasar a través de una puerta. En arenas la caja de colisión se normaliza para que ninguna raza tenga ventaja sobre otra en el terreno. Los Gnomos y Enanos tienen un problema similar, ya que empiezan a ahogarse en aguas que todos los demás pueden estar de pie.
- El paquete de 20 unidades para muchos objetos es una decisión de diseño, no hay limitación técnica.
- Los cofres en el modo de botín personal permiten que todos puedan lotearlos una vez. Permitir que múltiples personas puedan lotear un cofre es bastante difícil. Esto es otro ejemplo de problema técnico.
- Había objetos que no parecían cofres, pero fueron implementados como estos y causaron un cuello de botella durante la salida de Warlords. Ahora hay unos sistemas de botín múltiple utilizado para este tipo de objetos, con lo que el equipo está constantemente trabajando para mejorar cosas.
- Cuando hay alguna característica que está generando una gran cantidad de tickets, esta se envía de inmediato al equipo de ingeniería para que la comience a investigar.
- El código para el movimiento corre en el servidor, para asegurarse de que no estás moviéndote de forma que no debería ser posible. Este código consigue hacerlo bien el 99,9% de las veces. El resto del tiempo algún problema puede causar que el servidor piense que te has movida de una forma que no deberías y serías desconectado. Los druidas tienen una zona de agua en su sede de clase que hace que te desconectes si utilizas ciertas monturas. Estas cosas a veces son difíciles de encontrar.
- Originalmente cuando se implementó las zonas entre reinos, un personaje concreto se desconectaba mientras iba entre el bosque de Elwynn y Ventormenta. El equipo intento reproducir este problema de multitud de formas, pero no fue caza de hacerlo. Eventualmente hicieron una copia del personaje para reproducir el fallo y resultó que era por una mejora de movimiento en sus botas que no se aplicaba de forma correcta en la transición de las zonas entre reinos.
- Durante un tiempo la información desaparecía de manera instantánea, pero al pasar el ratón por encima de un nodo en el mini mapa se solucionaba. Con el parche 7.0 esto se solucionó. El equipo no tiene ni idea de cómo, ¡Pero el bug ha sido arreglado!
- Cuando se reporta un bug, ayuda mucho el incluir donde estabas, que estabas haciendo, clase y raza, y tanta información como puedas dar para que el equipo pueda reproducir lo que pasó. Esto es especialmente importante cuando se trata de un cuelgue del juego.
- El equipo habló sobre los lugares emblemáticos de las Islas Abruptas en la reunión de diseño y la gente estuvo de acuerdo en que sería increíble ver todas estas zonas desde muy lejos.
- El mundo se siente mejor cuando parece estar vivo, con lo que la población de las zonas incrementa o reduce para conseguir un ajuste que sea divertido.
- La forma en que funciona el sistema de anclaje causa errores de coma flotante en todas partes, por lo que hay muchas texturas en la interfaz del usuario que le faltan medios píxeles. Los diseñadores de la interfaz han realizados cambios manualmente en el XML para que vuelva a parecer nítido.
- Hay mucha interacción con la comunidad de desarrolladores de addon. Hablan entre ellos todo el tiempo.
- A menudo los addons le muestran al equipo cosas que querían hacer, pero no se dieron cuenta hasta que el addon las estaba haciendo. Cuando se lanzó WoW, había múltiples grupos divididos y no un grupo de raid raid. Los grupos de Raid fueron originalmente un addon, pero ahora no puedes imaginarte el jugar sin que esto exista.
- El sistema de hechizos implica muchos mensajes de aplazamiento, lo que causa condición de carrera.
- El clan de los camorristas y los terrenos de prueba fueron creados en su totalidad por los diseñadores
- La frecuencia con la que el área de interés alrededor de tu personaje se actualiza con otros personajes, objetos y PNJ se incrementó mucho en Legion.
- El hecho de que el Zancudo Acuático a veces no caminase por el agua tiene que ver con la caja de colisión de los personajes. La caja está por debajo del agua un porcentaje para que no parezcas ridículo cuando nadas, pero la altura a la que se puede saltar es fija, con lo que no puedes saltar lo suficientemente alto para salir del agua.
- Las peleas que ponían a parte de la Raid en distintas fases hacían que una parte del grupo no pudiera ver a otro en lo que respecta a los registros de combate. El equipo intentó hacer un cambio de fase parcial para que se pudiese disponer del registro de combate completo, pero siempre suele haber un problema de última hora que previene esto.
- Cuando el equipo está tratando con problemas relacionados con el movimiento no tienen acceso al estado del servidor de ese momento, con lo que empiezan observando los registros.
- Cuando el equipo está tratando con problemas que causan que el juego se cuelgue, pueden ver la pila de llamadas y la excepción para averiguar como el juego llegó a ese estado.
- Si hay problemas en un área en concreto, el equipo realiza una revisión en el registro en un sistema para que puedan tener registros más detallados y averiguar que está pasando.
- Cuando usas Traslación, el servidor mira la distancia, el destino, y si el personaje puede llegar a ese destino.
- Cuando usas Rodar recibes un aura que te hace moverte más rápido y no puedas controlar hacia dónde.
- El problema de que desuello no fuera botín compartido se conocía antes de que saliese Legion. La solución ideal era que todo el mundo pudiese despellejar el PNJ, pero había algunas limitaciones técnicas que impedían este tipo de cosas. El equipo espera solucionar esto en el futuro.
- Algunos addons hacen cosas que el equipo no quiere que se hagan. El equipo ha movido la renderización de las marcas en el mapa a código C y han creado una API para addons para que interactúen con ellas sin que les sea posible obtener su posición.
- El equipo tiene muchas maneras de hacer correcciones en vivo en el juego ahora. Hay muchos datos del servidor que no están en el cliente que han sido corregidos en vivo durante mucho tiempo. Ahora el equipo puede realizar correcciones en vivo en el servidor y propagarlas al cliente, permitiendo al equipo cambiar cosas visuales como las animaciones, y el código binario del servidor y el cliente.
- Durante esta expansión el sistema de correcciones en vivo recibió una corrección en vivo. Estaban realizando tantas correcciones en vivo que se rompió y tuvieron que arreglarlo.
One Comment
Leave a Reply