Blizzard encuentra el error a los efectos de enraizamiento (TBC Classic)


Hemos recibido muchos comentarios sobre cuánto daño es necesario para romper un efecto de enraizamiento de un enemigo atrapado, como Nova de escarcha. Los que han probado la beta informaron sobre la necesidad de realizar demasiado daño para llegar a romper efectos de enraizamiento, y resulta que estaban en lo cierto. Nos costó un poco de investigación encontrar el problema, pero finalmente encontramos un error que explica el extraño comportamiento que vimos en la Beta, y deberíamos llegar a poder solucionarlo antes de la llegada de la primera temporada de Arena.

La historia

Para empezar, una de las razones por las que fue un desafío encontrarlo es que el comportamiento es intencionalmente aleatorio. No hay una cantidad fija de daño que sea necesaria para romper los efectos de enraizamiento; hay un rango de daño que podría ser necesario, lo que lo convierte en un cálculo de riesgo / recompensa para los jugadores. No se garantiza la reproducción del problema y probarlo puede llegar a parecer un efecto de suerte.

Cuando se informó esto por primera vez, miramos los scripts del hechizo y verificamos que coincidían con los datos originales, lo que nos llevó a concluir de forma inicial de que se trataba de rachas de suerte, al azar. Sin embargo, hemos visto ejemplos anteriores de que existe una capa más profunda en problemas como este, por lo que cuando los informes de errores continuaron llegando, sabíamos que merecía una mayor investigación.

Lo que estamos viendo son scripts que están en datos, por lo que podemos estar seguros de que coinciden al 100%. Al mismo tiempo, no estamos usando exactamente el mismo código que se usó en 2007, por lo que a veces vemos problemas causados por los pasos que hemos tomado para hacer que los datos originales y el código actual sean compatibles entre sí. Nuestro siguiente paso fue examinar las entradas al script del hechizo y verificar que realmente estábamos enviando la misma información para que el script lo evaluara. Después de completar una revisión de esos datos, una vez más llegamos a la conclusión de que esto parecía ser una casualidad aleatoria. Los valores de datos que nuestro código enviaba al script coincidían, las cosas que hacía con los resultados del script coincidían y el propio script coincidía.

Todo lo que miramos parecía correcto en todos los frentes, por lo que después de una segunda investigación, una vez más llegamos a la conclusión de que el cálculo aleatorio coincidía correctamente con nuestra intención.

Pero todavía se sentía mal

Este es el punto en el que descubrir un error se vuelve realmente difícil y donde a veces esperamos tener suerte. Resulta que después de seguir mirando el error y probarlo en el depurador de errores, vimos un comportamiento extraño: cuando la Descarga de agua impacta en un objetivo que estaba en Nova de escarcha, se evaluó como si fuera un ataque cuerpo a cuerpo, lo que no es correcto. Esa resultó ser la pista que nos llevó a la verdad. No hubo ningún error en el cálculo de la ruptura del enraizamiento, el error en sí fue aleatorio.

El error que a veces enviaba la fuente de daño incorrecta a la fórmula. Y como no siempre fue incorrecto, lo pasamos por alto en nuestra evaluación de código. Resulta que los ataques cuerpo a cuerpo tienen menos probabilidades de romper raíces que los ataques a distancia, y el error era que los ataques a distancia podían tratarse aleatoriamente como ataques cuerpo a cuerpo en ciertas condiciones difíciles de reproducir.

La conclusión

Lo que hizo que esto fuera un desafío fue que se trataba de un error que ocurre al azar en un sistema que se comporta de forma aleatoria cuando funciona correctamente, y dos fuentes de aleatoriedad se combinan para confundirnos.

¡Gracias a todos los que nos ayudaron a encontrar este!

Una corrección está en camino

Un aspecto interesante de esto es: con esta corrección, la probabilidad de romper enraizamientos con daño será en realidad un poco mayor que en la primera temporada de Burning Crusade original en 2007. Esto se debe a que estamos usando los datos 2.4.3, lo que aumentó las posibilidades de que el daño añada enraizamiento ligeramente en objetivos por encima del nivel 60.

Fuente: BLIZZ

Back to top