Bot sconfigge i migliori giocatori di Dota2: ecco come funziona l'IA vincente

OpenAI, azienda co-fondata da Elon Musk, ha creato un bot capace di sconfiggere i migliori giocatori di Dota 2, uno dei giochi più complessi sul mercato.

speciale Bot sconfigge i migliori giocatori di Dota2: ecco come funziona l'IA vincente
Articolo a cura di

Il settimo torneo internazionale di Dota 2 è ancora in corso ma ha già ha regalato un momento indimenticabile non solo agli appassionati del MOBA, ma anche a quelli che seguono gli sviluppi dell'intelligenza artificiale: c'è stato uno scontro epico tra Dendi, giocatore storico nonché uno dei migliori in assoluto di Dota 2 e un Bot programmato usando il Machine Learning dell'azienda non-profit OpenAI, co-fondata da Elon Musk. Lo scopo di OpenAI è sviluppare l'intelligenza artificiale in modo sicuro affinché possa giovare all'umanità in futuro, focalizzandosi su progetti a lungo termine senza pensare al profitto. Non è un caso se il team di ricercatori si è concentrato su un gioco come Dota 2: con premi in denaro sempre più elevati nei tornei e più di 10 milioni di giocatori unici al mese, è uno dei videogame più complessi sul mercato per via delle sue meccaniche che richiedono molti mesi per essere assimilate.

Nato da una costola di Warcraft 3, quando era una semplice mod chiamata D.O.T.A., ora il MOBA è un eSport internazionale che vede due squadre di 5 giocatori ciascuna sfidarsi con l'obiettivo di distruggersi la base. Dendi è stato battuto in diretta dal Bot programmato da OpenAI in modo schiacciante e la notizia ha subito fatto il giro della rete. Ma perché Dota 2 è così complesso? Quali sono i motivi per cui è stato scelto dall'azienda di Elon Musk per lo svillupo dell'intelligenza artificiale? Come ha fatto il Bot a battere Dendi?

Dota 2 mid-lane: due giocatori si sfidano al centro della mappa all'ultimo sangue

Chi conosce i MOBA sa bene come funziona Dota 2, ma probabilmente non è conoscenza di tutte le meccaniche di gioco che hanno fatto sì che venisse scelto da OpenAI per le loro ricerche. Il gioco è un 5 contro 5 su una mappa unica con una morfologia fissata nella quale sono distinguibili chiaramente 3 lane (corsie) che uniscono le basi delle due squadre avversarie. Nell'immagine successiva potete vedere come la mappa (non aggiornata ma simile a quella nuova) è divisa in due parti speculari e 3 lane che uniscono le due basi. Per l'esperimento OpenAI ha scelto il semplice 1v1, in quanto il 5v5 presenta una varietà di situazioni eccessiva per un primo esperimento, dunque troppo complessa attualmente (per quest'anno).

Quando due giocatori si affrontano si sceglie la MID lane che collega le due basi come territorio di sfida: oltre a presentare delle torri difensive in ogni corsia (punti verdi e rossi) vengono generati dei creep (creature deboli) che vanno automaticamente ad attaccare la base avversaria e si scontrano a metà mappa, sotto la scritta MID. I due giocatori dovranno scegliere due eroi (in questa particolare sfida Dendi e l'IA hanno preso lo stesso tra più di 100 eroi diversi, in modo da garantire uno scontro equo) che dovranno seguire i propri creep nella lane centrale, scontrandosi nel centro della mappa. Vince il primo giocatore che uccide due volte l'avversario o che distrugge la prima torre nemica. Prima di mostrarvi il video della partita vogliamo spiegare in breve le meccaniche principali della prima fase del gioco (in questo caso l'unica perché bastano 2 uccisioni per vincere la partita), il così detto early game.

Entrambi gli eroi partono dal livello 1 e comprano degli oggetti che gli garantiscono la sopravvivenza nella lane, come ad esempio pozioni curative o boost delle statistiche. Quando riescono ad uccidere un creep nemico guadagnano esperienza e soldi, ma solo ed esclusivamente se riescono a dargli l'ultimo colpo, il last hit. Oltre a questo dovranno cercare di evitare che l'eroe nemico dia il last hit ai propri creep, dunque potranno uccidere i propri creep che stanno per morire in modo da negare una parte di esperienza all'eroe nemico facendo il deny. Il last hit sul creep nemico viene indicato nel gioco da un quantitativo di soldi positivo (ad esempio +35) mentre il deny presenta un punto esclamativo. Controllare la lane significa fare più last hit dell'avversario e negargli i last hit, in modo che il nostro eroe abbia un livello superiore rispetto al nemico ovvero più vita e più danno in attacco. Ora che sapete le meccaniche di base potete guardare il video della partita, notando come nella fase iniziale i due giocatori cerchino di bloccare i propri creep in modo che quelli nemici si scontrino più vicino alla propria torre che inizialmente ha un danno così elevato da impedire all'eroe nemico di avvicinarsi ai creep stessi e quindi a preziosi last hit. Buona visione! (min 7:30 per vedere subito la partita)


I giocatori più bravi di Dota 2 sono stati annientati dal bot di OpenAI

Non solo Dendi in diretta, ma anche altri due giocatori famosi di Dota 2, Sumail e Arteezy, sono stati stracciati: il Bot riusciva a bloccare i propri creep in modo millimetrico negli istanti iniziali della partita, così da direzionare il primo scontro sotto la propria torre. Il pubblico non si è trattenuto nel notare la precisione sconvolgente dei suoi movimenti. Oltre a controllare i last hit sui creep avversari e i deny su quelli propri, il Bot manteneva un posizionamento strategico che gli consentiva di colpire l'avversario appena possibile, cercando di rimanere sull'altura che garantisce una percentuale di elusione rispetto ad un avversario nel fiume. I suoi attacchi erano sempre precisi e soprattutto decisi, tanto che dopo aver già ucciso Dendi una volta, ha scelto di suicidarsi per ucciderlo una seconda volta per aggiudicarsi il primo match. Nonostante il cambio di strategia di Dendi nel secondo match, il Bot non ha battuto ciglio neanche sotto la torre dell'avversario, inseguendolo verso la base per ucciderlo: a quel punto Dendi ha chiamato il gg (good game, ovvero si è arreso).

La scelta di OpenAI di optare per Dota 2 deriva dalla meccaniche interessanti che lo contraddistinguono nel 1v1, dove è necessario che il giocatore scelga come posizionarsi, quando fare last hit o deny, se colpire l'avversario o fare delle finte e gestire oggetti e abilità al momento opportuno: un numero di variabili davvero alto che vanno considerate in ogni singolo istante della partita e che cambiano continuamente, richiedendo una gran quantità di calcoli da parte del Bot. Non parliamo di una IA di uno sparatutto che è palesemente avvantaggiata rispetto ad un giocatore per il solo fatto di poter mirare in modo preciso senza errore, ma di un algoritmo complesso che calcola tutte le variabili del gioco in tempo reale senza seguire nessuna routine imposta dai programmatori.

La dura vita di un Bot, campione mondiale in sole due settimane

L'intelligenza artificiale di cui si sta parlando non è quella presente nei videogames che conosciamo bene, ma un algoritmo intelligente che riesce ad imparare dai propri errori. Le uniche direttive date al Bot dai programmatori sono una sorta di riconoscimento di una condotta buona e la capacità di imparare dalle sue esperienze, ma non gli è stata imposta nessuna tattica. Sono state necessarie 2 settimane di allenamento non stop per il Bot, che ha appreso pian piano tutte le meccaniche del gioco: i programmatori stessi hanno raccontato come all'inizio non faceva altro che star fermo senza far nulla. Sconfitta dopo sconfitta ha capito che doveva muoversi, cominciare a fare last hit e difendere la torre: all'inizio attaccava poco e in modo molto difensivo, senza esporsi troppo al nemico, mentre quel che abbiamo visto al settimo torneo internazionale di Dota 2 è una macchina da guerra che controlla la battaglia e addirittura fa da esca per ingannare il nemico, semplicemente finge di usare un'abilità speciale per poi fermarla all'ultimo istante. Arteezy, un altro giocatore famoso per essere uno dei migliori con Shadow Fiend (l'eroe scelto per la competizione), è stato sconfitto 10 volte di seguito senza mai vincere, un risultato davvero impressionante. Nel video a questo link sono spiegate tutte le strategie imparate dal Bot (alcune sono quelle che vi abbiamo introdotto prima, altre sono più avanzate) durante il suo allenamento.

OpenAI è solo all'inizio e vuole comparire al prossimo international per un 5v5

Siamo tutti rimasti increduli dalla capacità di un Bot programmato tramite Machine Learning che è riuscito ad imparare da solo a battere i professionisti di Dota 2. Dendi stesso, sconfitto in modo eclatante in diretta, ha detto di essere stupito, non credeva che un Bot potesse battere un essere umano ad un gioco che richiede decisioni strategiche istantanee e il controllo di diverse meccaniche non banali. Abituati ai Bot standard del gioco di base, questo nuovo Bot ha lasciato tutti a bocca aperta. C'è da dire che la sfida era un semplice 1v1 con un solo eroe su 113, quindi la maggior parte della componente strategica di Dota 2 era completamente assente nel video che abbiamo visto. OpenAI ha però incuriosito tutti quando ha promesso di tornare al prossimo International con una squadra di 5 bot allenati tramite Machine Learning per sconfiggere una squadra di 5 essere umani.

Lì le cose si complicheranno molto e sarà necessario gestire tutte le meccaniche del gioco per creare dei Bot convincenti che devono dominare le lane, scegliere gli oggetti da comprare, decidere delle strategie comuni che devono prendere in considerazione lo stile di gioco degli avversari e cercare di prevedere strategie nemiche. Quest'anno OpenAI ci ha colpiti, ma per sconvolgere il pubblico sarà necessario creare una squadra di Bot davvero convincente che riesca ad agire come 5 essere umani pensanti, una sfida decisamente ardua che nessuno fino ad ora aveva affrontato. Fino al prossimo anno, i giocatori di Dota 2 potranno sfidare il Bot di OpenAI (con modalità che ancora non sono state comunicate) e saranno regalati dei costosi set di Shadow Fiend ai primi 50 giocatori che riescono a sconfiggerlo. Sempre che riescano a farlo.