Con estremo piacere (e orgoglio), oggi voglio parlarvi di un progetto tutto italiano (ma non Made in Italy…com’era quella storia dei cervelli in fuga?), che coniuga la ricerca e lo sviluppo di un’Intelligenza Artificiale realmente competitiva e il suo utilizzo in uno dei giochi più famosi di sempre: Pokémon. Il nome del progetto, dAItto, è soltanto la punta della genialità di un lavoro che, ve lo assicuro, saprete apprezzare di certo.

Facciamo anzitutto gli onori di casa ai creatori di questa piccola perla. dAItto è ideato, sviluppato e gestito da Emanuele e Massimiliano, due ragazzi nati e cresciuti a Roma ed entrambi laureati in fisica. Programmatori “solo” per passione (e a volte per necessità), mi hanno spiegato come, senza le loro conoscenze della fisica computazionale, probabilmente non sarebbero mai giunti ad un risultato del genere. dAItto è quindi un tipico esempio di come la padronanza di diverse discipline possa portare a risultati inaspettati e, altrimenti, semplicemente impossibili.

dAItto

Il progetto nasce dopo aver seguito con interesse l’IA sviluppata da Google e con l’intenzione, decisamente ambiziosa, di provare ad emularla. Inizialmente, come ci spiegano Emanuele e Massimiliano, il terreno di prova dovevano essere i giochi di carte. La scelta è poi virata su Pokémon sia per le dinamiche simili (parliamo sempre di un gioco a turni e con il team building che è simile al deck buildin), sia per comodità (meno carte da programmare) sia, ovviamente, per la risonanza che Pokémon avrebbe garantito al progetto.
In realtà, come ci spiega Emanuele, la scelta di Pokémon si è poi rivelata più complicata del previsto: “Ci siamo completamente dimenticati che si trattasse sì di un gioco a turni, ma in contemporanea. Prevedere le scelte dell’avversario e tutte le evoluzioni del gioco diventa quindi ancora più difficile, senza dimenticare che i giochi in simultanea non garantiscono il soddisfacimento dell’Equilibrio di Nash.”

Lo sviluppo di dAItto è durato circa 8 mesi, sfruttando solo il tempo libero e quasi “per gioco”. E’ incredibile scoprire come, spesso, i risultati migliori si ottengano quando si è animati da poche aspettative e molto entusiasmo.
Il primo prototipo di dAItto era in Python; per garantire una maggiore velocità di calcolo e di ragionamento dell’IA, si è necessariamente passati ad una versione in C++. Entrambi, inoltre, ci tengono a ricordare il fatto che siano i primi ad implementare un adattamento degli algoritmi del Metodo Monte Carlo in una tecnologia del genere.

Ma cos’è dAItto? Cosa ci permette di fare? Molto semplice: ci da’ la possibilità di battagliare contro l’IA più difficile mai vista su Pokémon. Le regole e le modalità sono chiaramente “immediate”: si tratta di incontri secchi, dove IA e utente utilizzano lo stesso team di Pokémon generato randomicamente. La scelta randomica del team è voluta, almeno inizialmente, per testare propriamente l’IA e permettere un approccio il più bilanciato possibile. Nel futuro, l’intenzione è quella di permettere a utente e IA di scegliere il proprio team.
Attualmente è presente tutta la prima generazione di Pokémon (compresi gli Alola) e la veste grafica è stata recentemente rimaneggiata.
Di seguito una dimostrazione pratica di cosa è dAItto, sfidato dal noto streamer Th3 R3al Khaos:

The Pokemon artificial intellegence, dAItto

Do we have what it takes to defeat our toughest challenger?Pokemon artificial intellegence!join the discord, pop in and say whats up on stream!https://discord.gg/CWThBt8

Publiée par Th3 R3al Khaos sur Dimanche 3 novembre 2019

dAItto

Ma qual’è l’obiettivo ultimo di dAItto e, in generale, di un’intelligenza artificiale del genere? A spiegarcelo è Massimiliano:
“Gli scacchisti sono stati i primi a rendersi conto dell’importanza di un’IA competitiva per allenarsi e migliorare. Sempre gli scacchi hanno dimostrato, tra l’altro, che un’intelligenza artificiale avanzata può anche superare le abilità di un essere umano. Nell’ambito gaming, un’IA particolarmente evoluta può non solo aiutare i pro player ad allenarsi, ma anche a capire e correggere eventuali sbilanciamenti di gioco in tempi estremamente più brevi. Ciò che un umano capta in 100 partite, con un’IA lo capteresti in 10.”
Obiettivo di Emanuele e Massimiliano, quindi, non è quello di limitarsi a creare una nuova intelligenza artificiale per Pokémon. L’intento è quello di poter applicare una tecnologia del genere in tutti i campi possibili, altri videogiochi compresi. L’invito a collaborare è quindi aperto a tutti gli sviluppatori e programmatori di giochi di qualsiasi genere, interessati a testare un’IA competitiva di questo tipo nei loro titoli.
dAItto è un mezzo per far conoscere la potenzialità di un progetto così ambizioso, non di certo il fine.

Se volete contattare il team, andate sulla pagina Facebook di dAItto o scrivete alla mail: daitto.ai@gmail.com.
Auguro a Emanuele e Massimiliano tutta la fortuna e il successo possibile. Noi, nel nostro piccolo, cerchiamo sempre di fare il nostro. E ogni tanto, forse, ci riusciamo.