San Francisco – La gestione dell’intelligenza artificiale è da sempre una delle questioni più spinose per gli sviluppatori di videogiochi. Bisogna essere in grado di creare un software non solo capace di rispondere alle sollecitazioni del giocatore, ma anche di prendere l’iniziativa e rendere l’esperienza di gioco stimolante. Di solito, poi, si tratta di gestire l’input di un solo giocatore per volta, ma cosa succede quando si tratta di produzioni che fanno dell’interazione tra migliaia di persone contemporaneamente il loro punto di forza?L’abbiamo scoperto grazie a Mike Lewis, Senior Service Programmer di ArenaNet, al lavoro su Guild Wars 2, e Robert Zubek, che in Zynga ha lavorato su i vari social game sviluppati per Facebook.A prima vista si tratta di due esperienze simili, in tutt’e due i casi infatti parliamo di esperienze incentrate sulla socialità, ma scopriamo insieme in cosa, e di quanto, differiscono.
Risorse scarse per un mondo in movimento
Guild Wars 2, titolo appena entrato in fase di beta, ha dimostrato alla nostra prova di avere le carte in regola per farsi notare dagli appassionati di MMORPG, ma come funziona la gestione di una quantità di dati a prima vista soverchiante?Prima di tutto vanno fatti i conti con la potenza in gioco, Mike Lewis ci ha fatto notare che il giocatore che utilizza Xbox 360 ha a sua disposizione un’architettura tri-core che gira circa a 9.6 GHz. Non male, ma se lo confrontiamo con i 12 core e i 32 GB di RAM di un server di Guild Wars 2 non sembra più così tanto.Il fatto è che il server deve gestire, minimo minimo, cinquemila giocatori contemporaneamente: basta una rapida approssimazione per rendersi conto che ognuno di questi ha a sua disposizione circa 5 MHz (megahertz!) che equivalgono più o meno a cinque Atari 2600.Ora niente panico però, è vero che il rapporto potenza/giocatore è decisamente inferiore, ma il trucco per far funzionare il tutto sta sia nell’architettura dei server (che gestiscono diversi processi paralleli), sia nella programmazione di Guild Wars 2, che grazie alle istanze e alle zone impermeabili tra di loro riesce a isolare eventuali episodi di latenza.Il discorso sull’intelligenza artificiale si basa dunque sulla necessità di svilupparla così da renderla leggera e standardizzata: gli npc agiscono in base ad un diagramma ad albero con pochissimi rami anche perché le azioni possibili non sono poi così tante. Questa semplicità permette di avere contemporaneamente centinaia di giocatori e centinaia di intelligenze artificiali nella stessa zona, senza banalizzare però l’esperienza di gioco che risulterà comunque interattiva e intelligente.
Un approccio diverso: la via del social gaming
Per spiegarci come sia gestita l’intelligenza artificiale nei social game, Robert Zubek ha preso ad esempio una delle ultime produzioni di Zynga: Cityville. Più o meno tutti abbiamo visto le nostre bachece di Facebook riempirsi di richieste di ogni tipo legate alle produzioni della serie “ville” di Zynga, da Farmville a Castleville passando appunto per Frontierville e Cityville, è tutto un proliferare di notifiche che si diffondono a macchia d’olio tra i nostri contatti.Il segreto del successo è da ricercarsi sia nella facilità d’utilizzo (sono possibili brevissime sessioni e l’interfaccia è molto intuitiva), sia nella componente sociale, che permette di rimanere in contatto in maniera semplice e non invasiva.Il discorso sull’IA va incominciato trattando l’architettura su cui si basa il sistema di gioco: dimentichiamo i server di Guild Wars 2, qui stiamo parlando di una struttura molto più simile a quella che gestisce delle semplici pagine web: è così che il sistema è basato sulle richieste del giocatore (e non su un dialogo che veda il server come parte attiva) e garantisce un’ottimale gestione dell’eventuale lag.Una struttura di questo tipo ben si adatta dunque ad un’intelligenza artificiale che deve rispondere a semplici input dei giocatori, o meglio, del giocatore, visto che l’esperienza di gioco è fondamentalmente analoga a quelle singleplayer, dato che la componente social è sì importante dal punto di vista del gameplay, ma lo è molto meno da quello tecnico.Ancora una volta tornano i diagrammi ad albero: gli npc hanno una serie di azioni da compiere a seconda degli stimoli che ricevono e delle interazioni con altre IA, in un sistema che parte semplice e via via si complica col procedere nel gioco.Un altro punto di forza di questa tipologia di struttura è nella gestione avanzata dell’interfaccia, che è affidata completamente al client, lasciando così libero il server di gestirne in quantità senza sovraccarichi.
Vediamo dunque che alcune similitudini ci sono nell’analisi della struttura dell’intelligenza artificiale in Guild Wars 2 e Cityville, ma le due produzioni hanno come base due architetture completamente diverse che devono rispondere a sollecitazioni quasi opposte: semplici input di richiesta nel caso della produzione Zynga, complesse interazioni tra giocatori ed npc in quella ArenaNet.