sabato 14 novembre 2009

Intelligenza Artificiale dei Faction Champions

Sin dagli albori della creazione dei videogiochi, uno degli elementi fondamentali della programmazione è stata la creazione dell'Intelligenza Artificiale (in gergo chiamata AI) che governa il nemico. Anche in WoW tutti i mob, dal primo critter all'ultimo boss sono governati da un'intelligenza artificiale più o meno complicta.

Senza saperlo abbiamo imparato a gestire il funzionamento di questa intelligenza artificiale. Sin dai primi livelli ci siamo resi conto che esiste un certo aggro range, cioè a meno di una certa distanza il mob si accorge di noi e ci attacca. Nelle instance abbiamo imparato a gestire la meccanica del threat, cioè il mob o boss di turno tende ad attaccare chi ha accumulato più aggro tra tutti. E' questa l'AI di cui stiamo parlando, il modo in cui viene programmato il comportamento dei mob e dei boss.

Sopra le ormai consuete meccaniche di aggro e threat, i vari boss presentano programmazioni specifiche sull'uso delle proprie abilità, alle quali ormai siamo abituati. I Faction Champions sono un caso molto particolare, perchè con essi la meccanica dell'aggro sembra casuale, ma non lo è.

Joanadark su Maintankadin ha studiato sin dall'inizio il comportamento apparentemente casuale dei Faction Champions e ci spiega come funzionano. Traduco dal suo post.

Le regole generali

E' importante sottolineare che niente è casuale, anche se lo sembra. Ogni azione segue una precisa meccanica basata sul threat, infatti tutte le abilità che hanno effetti o dipendono dal threat stesso, funzionano normalmente (parliamo di taunt, fade, etc).

Quello che è molto diverso dal solito, è come viene calcolato il threat
, perchè non dipende da danni e cure fatte, ma da altri parametri che ora andremo a spiegare per ciascuna delle categorie di mob coinvolti.

Melee DPS : I melee DPS scelgono il proprio bersaglio in base ai seguenti parametri

  • ARMOR : Minore è l'armor dei bersagli in range melee e maggiore è il threat generato
  • VICINANZA : Minore è la distanza dei bersagli in range melee e maggiore è il threat generato
  • DEFICIT VITA : Minore sono gli HP assoluti dei bersagli in range melee e maggiore è il threat generato
Ranged DPS : I ranged DPS scelgono il proprio bersaglio in base ai seguenti parametri
  • RESISTENZA : Minore è la resistenza dei bersagli agli spell del champion e maggiore è il threat generato
  • VICINANZA : Minore è la distanza dei bersagli e maggiore è il threat generato
  • DEFICIT VITA : Minore sono gli HP assoluti dei bersagli e maggiore è il threat generato
Healer : Gli healer scelgono il champion da curare in base ai seguenti parametri
  • HP ASSOLUTI : Il champion con meno HP in assoluto è quello che viene curato

L'intelligenza artificiale risultante

Le formule esatte che combinano le suddette regole non sono note dei dettagli, almeno non così come lo sono quelle che governano aggro e threat per i boss convenzionali. Tuttavia si riesce a comprendere la filosofia alla base di questa AI.

L'idea degli sviluppatori è stata quella di creare un boss (i Faction Champions) che avesse una qualche somiglianza con le arene PvP. Infatti se ci pensate bene, le suddette regole, seppur molto rozze, somigliano un po' alle tipiche strategie da arena. Si cerca infatti di fare focus sul target che prende più danni (minor armor e resistenze), mediamente sul più vicino e sicuramente su quello più vicino alla morte. E come healer si cura quasi sempre quello messo peggio come vita.

E' ovvio che per rendere il tutto giocabile hanno dovuto piegare un po' tali regole e fare eccezioni, per esempio avranno sicuramente impedito ai champion di fare focus tutti sistematicamente su un unico giocatore alla volta.


Qualche idea interessante

E' vero che come boss ormai non hanno una difficoltà particolare, però sarebbe interessante sfruttare un po' dei concetti sopra esposti per semplificare ancora di più il combattimento (Joanadark ci suggerisce alcune cose).

Per esempio potrebbe valer la pena provare a tenere un pet sempre a pochissimi HP, così che tutti gli healer dei champion siano rediretti su di lui. Oppure far prendere ai caster pozioni di resistenza generica, per ridurre il threat medio generato. Oppure portarsi dei tank con pochissima armor.

2 commenti:

Anonimo ha detto...

Per prima cosa complimenti per il blog sempre un ottima fonte di info.
Il tenere un pet con poca vita è una tattica che funziona benissimo,noi nei nostri run a toc la applichiamo sempre.

MaDdi3 ha detto...

Sparare i dot su uno dei pet dei champions e' effettivamente una tattica funzionante, il pet comincia a beccarsi le cure e distrae :)

Il "tank con poca armor" lo faccio io con il DK: passando in unholy presence l'armor si riduce di un botto. Generalmente ad inizio combattimento prendo un melee DPS (chi ha detto "rogue"?) e me lo porto lontan lontano. Dopodiche' rimango li a prendermi un te' con il malcapitato finche' il raid non ha segato tutti gli altri :)