Blizzard tiende a tener una política de mejorar solo lo nuevo que va haciendo, dejando lo antiguo desactualizado, para que vayas a las cosas nuevas y dejes lo antiguo apartado.
Esto incluye cosas como estas.
Si bien las zonas de Legion tenían cierta caracterización con sus npcs, haciendo ciertas rutinas de comportamiento, en Battle for Azeroth han aumentado esto de forma masiva.
Solo hace falta darse una vuelta por Boralus o por Dazar’alor para comprobar como son las ciudades mas vivas del juego. Cada rincón tiene a npcs hablando, paseando, comprando, comiendo… Y no símplemente son rutinas simplistas, sino que hay algunos lugares con scrips que se activan con la presencia del jugador, como por ejemplo un sótano donde una camarera y un noble están reunidos juntos, y al ver al jugador sorprenderlos, tratan de disimular y se alejan.
Y esto no se reduce solo a las ciudades. Todas las zonas de Battle for Azeroth están bastante llenas de vida en ese sentido.
Por supuesto, no todo es perfecto y aún les queda mucho por mejorar, pero aquí ya entraríamos en dos problemas: Código y jugabilidad.
Yendo al mas simple, la jugabilidad, podemos pensaren lo interesane que sería el añadir ciertos recorridos para ciertos personajes, como en Skyrim o Fallout, donde personajes que te dan misiones pueden irse a sus casas a dormir, o salir a ciertos sitios en determinadas horas del día, pero en muchas ocasiones, el juego requiere que los npcs de misiones estén en lugares concretos, tanto para pasar de fase, como para que otros npcs cercanos que continuen la misión puedan estar fácilmente accesibles, y, por supuesto, para que los jugadores sepan exactamente a donde ir para entregar la misión (Ya hay muchisimos casos donde un npc se mueve de su área o está bajo tierra y wowhead se llena de comentarios de gente atascada en esa misión, reportando que está bugeada o incompleta ya que falta el npc, sin poder encontrarlo). En este último caso, por supuesto, habría que acostumbrar al jugador antes que nada, por lo que tendría que ir implementándose poco a poco, pero Blizzard desde Cataclysm decidió ir en dirección contraria a ese camino.
Yendo ahora al problema mas complejo, el código, a diferencia del anterior, este es muchísimo mas complicado de arreglar, o casi diría imposible.
Los juegos mentados anteriormente (Fallout y skyrim) y similares, tienen implementados en sus juegos unos patrones de comportamiento para sus npcs muy concretos. Si se les dice que tienen que ir a su casa a cierta hora, estén donde estén, van a buscar el camino hacia el lugar registrado como su casa y van a meterse en la cama. Esto lo hacen con un pathfinding específico. Intentarán buscar caminos adecuados y seguirán una ruta “natural” para cumplir ese patrón.
En WoW en cambio, el pathfinding de los npcs es muy diferente. Básicamente están programados para que vayan del punto A al punto B de la forma mas directa posible, esquivando objetos sólidos como puedan ser paredes.
Esto es así porque el sistema de combate del juego, a diferencia de los otros ejemplos, es estático. En Skyrim y Fallout necesitan moverse para defender, esquivar, ocultarse y demás. En cambio en el wow solo necesitan llegar hasta donde estés tú y quedarse quietos golpeando, o en su defecto, tener una línea de visión contigo para ataques y hechizos a distancia. Es por eso que, por ejemplo, si te persigue un mago npc, en el momento en el que pongas un bloque en medio (por ejemplo un arbol), el mago correrá en línea recta hacia ti hasta tenerte cerca a 2 metros para atacarte de nuevo con su hechizo, en lugar de simplemente moverse hacia un lado hasta volver a tener línea de visión.
Esto, aplicado a movimiento como patrullas, básicamente hace que los npcs vayan simplemente del punto A al punto B, y del B al C, y así sucesivamente haciendo un camino “manual”. Es cierto que en cierta medida, esto se puede automatizar, pero el patrón está muy lejos de llegar a ser un pathfinder competente. Mas bien es un simple algoritmo que le dice al npc cuantos metros tiene que moverse en qué dirección, sin salir del área de spawn.
Para hacer el efecto de manadas de lobos y similar, realmente lo único que hacen es hacer que estos patrones en lugar de afectar a un único npc, afecten a varios en un área, yendo así todos juntos.
En Warlords of Draenor hicieron la primera toma de contacto con el intento de crear un pathfinding real con npcs que tuvieran sus propias patrullas de comportamiento mucho mas semejantes a Skyrim, pero el resultado fue bastante pésimo. Los soldados y npcs de la ciudadela tienden a seguir ciertos patrones. Los soldados te saludan, los npcs te evitan al caminar reajustando su ruta para echarse a un lado, algunos van a la taberna y se sientan en sillas… Pero lejos de ser un sistema pulido, todos los movimientos se ven excesivamente robóticos. En lugar de adaptarse a cada npc, símplemente todos los npcs tienen las mismas rutas. Si te sientas en una silla de la taberna, vas a ver como cada 3 o 4 minutos siempre va a venir alguien exactamente igual que el anterior y se va a sentar, aún incluso cuando estés tú sentado en esta, y así en general con todo.
Por supuesto, en Legion y en BfA rescataron muchas de estas cosas (Por ejemplo, es normal ahora ver que los ciudadanos y guardias se aparten de ti en su ruta de camino), pero sus propios caminos, de nuevo, no están hechos bajo un pathfinding real, sino que están programados para que vayan del punto A al punto B y luego al C y así sucesivamente (Claro que, en sus rutas, hay muchos puntos, ya que cuantos mas puntos hayan, mas sensación de estar haciendo un camino “real” dan), pero están muy lejos de llegar al punto de Skyrim por ejemplo, donde los npcs tienen registrados por ejemplo una aldea, y en base al área de la aldea crean rutas de forma automática que los hacen parecer mas vivos.
Como siempre digo, esta clase de problemas se podrían solucionar en un wow 2, donde el código del juego no fuera tan limitante como actualmente lo es, pero viendo la dirección de Blizzard, dudo incluso que si sacaran un wow 2 a día de hoy se dedicaran a actualizar bien estas cosas tan secundarias.
Frío y eficaz. DG.