cosa si può fare per migliorare il gioco di strategia AI in tempo reale folle?


12

Ho fatto una chiacchierata con un mio amico sul fatto che un'IA potesse essere creata o meno che potesse battere qualsiasi essere umano senza imbrogliare le risorse in un gioco di strategia in tempo reale. Un'intelligenza artificiale che giocherebbe quasi perfettamente. L'intelligenza artificiale dei giochi di oggi ha molte aree che possono essere migliorate, la maggior parte delle quali si basa sull'inganno delle risorse, un migliore sviluppo iniziale della base a causa di ciò e l'attacco a ondate.

Tuttavia, la domanda è cosa dovrebbe essere fatto per migliorare questo per ottenere l'IA finale. Inoltre, se hai qualche esempio di gioco in cui è stata utilizzata una certa funzionalità, sarebbe fantastico.

Modifica: ci sono pochi chiarimenti che posso fornire a coloro che non hanno letto il titolo o i pochi paragrafi che descrivono il problema. Si tratta di giochi di strategia in tempo reale e dell'IA finale. Ciò significa Strarcraft, Warcraft, Generali, Red Alert, Age of Empires, AI War ecc. Giochi che hanno più di un livello di difficoltà, ma il focus qui è sulla sfida finale.

tenpn ha un post fantastico pieno di grandi risorse. Grazie tenpn! Vorrei che più persone avrebbero contribuito in quella direzione.


6
Davvero questa domanda non ha senso senza un caso specifico. Tutti i giochi hanno diversi modi di implementare l'IA, a seconda delle meccaniche di gioco coinvolte, e "come migliorarli" varierà in modo massiccio. Almeno questo dovrebbe essere Community Wiki, in quanto non esiste una risposta "giusta" qui.
MrCranky,

2
Oltre al primo: considerare che gli scacchi sono un gioco di strategia.
Rushyo,

1
Perché vorresti farlo? Realizzare un'intelligenza artificiale perfetta per il gioco di Pong è assolutamente banale e assolutamente divertente contro cui giocare. L'obiettivo del gioco AI non è quello di battere il giocatore, poiché è il giocatore (non il computer) che dovrebbe divertirsi.
Ian Schreiber,

1
Ian: L'OP sta parlando di qualcosa di molto diverso da Pong. È facile realizzare un'intelligenza artificiale Pong imbattibile o un'intelligenza artificiale Tic-Tac-Toe. Gli scacchi possono essere portati a un'intelligenza artificiale che solo i migliori, i migliori possono sconfiggere. Ma RTS è un gioco di baseball diverso.
The Communist Duck,

2
Potresti essere interessato all'algoritmo STRIPS .
user712092

Risposte:


12

È una specie di domanda a cui rispondere. Per affermare ciò che deve essere migliorato, è necessario disporre di alcuni sistemi di intelligenza artificiale noti per lavorare. Tuttavia, ecco alcuni esempi di RTS AI di aigamedev.com (è richiesta la registrazione):

Purtroppo la maggior parte delle cose davvero buone è dietro il paywall.

Una soluzione AI comune è il pianificatore di azione orientato agli obiettivi, che utilizza le regole per formare piani per satsificare gli obiettivi. È in circolazione da un po 'di tempo, ma è molto bello. C'è una breve panoramica (pdf) disponibile sul sito di Jeff Orkin su come viene applicato a un FPS, ma esattamente lo stesso principio (con regole e obiettivi diversi) funziona per gli RTS.

Molti RTS useranno l'erarchia dei GOAP, con livelli diversi che ricevono obiettivi dal livello sopra e si preoccupano dei diversi livelli di dettaglio del campo di battaglia. Ho letto un ottimo articolo sull'intelligenza artificiale di Wargame esadecimale della Seconda Guerra Mondiale che era strutturato in questo modo, ma per tutto ciò che è Google non riesco a trovare il link ora. Stella d'oro per chiunque mi possa aiutare.

Naturalmente l'efficacia dei GOAP e di altri pianificatori dipende da quanto bene analizzi il tuo mondo di gioco e da quanto siano raffinate le tue azioni e i tuoi obiettivi.

Altre tecnologie comuni includono architetture di utilità (pdf) per punteggio e priorità e lavagne per l'analisi del mondo di gioco.


6

Il punto è che se hai un'intelligenza artificiale

che potrebbe battere qualsiasi umano senza imbrogliare le risorse in un gioco di strategia in tempo reale

allora hai un gioco a cui nessuno giocherà perché non sono riusciti a superare il primo livello.

La parte più difficile della programmazione AI è rendere l'IA battibile, ma battibile da qualcuno con un po 'di abilità. Renderlo troppo facile da battere e i giocatori rimarranno scoraggiati dalla mancanza di una sfida, renderlo troppo difficile e, di nuovo, la gente si stancherà di essere battuta tutto il tempo.

Quindi non si tratta di creare un'IA complessa (che non è difficile, dopotutto, l'IA può elaborare tutto nella sua area di gioco contemporaneamente mentre un giocatore può solo elaborare ciò che è sullo schermo), ma piuttosto creare un gioco equilibrato.


1
Per chiarire, creare un'intelligenza artificiale che può battere qualsiasi essere umano non è così difficile poiché l'IA può controllare le sue unità con una granularità migliore di quanto qualsiasi umano possa sperare (a causa dei vincoli dell'interfaccia utente). Un essere umano impiega pochi secondi per reagire agli eventi, selezionare e comandare le unità, mentre l'IA può aggiornare gli ordini per ogni unità singolarmente ogni "turno di gioco" in risposta a qualsiasi evento. Ma in pratica, ciò non viene fatto poiché renderebbe noioso il gioco. La parte davvero difficile è rendere l'IA abbastanza stupida da battere.
Skizz,

3
Chiarire il chiarimento - rendere imbattibile l'IA non è poi così difficile; rendere l'IA battibile, stimolante e coinvolgente è molto, molto più difficile.
Skizz,

3

Si potrebbe fare molto, ma la mia reazione immediata a questa domanda è stata una contro-domanda: perché qualcuno dovrebbe desiderare l'IA RTS definitiva? E perché questa persona non gioca solo online, contro un altro avversario umano?

Il punto cruciale è: non è il problema a rendere l'IA imbattibile, è il problema di farla pensare abbastanza velocemente (ad es. Deve prendere scorciatoie) per essere in grado di giocare contro 3 o persino 7 avversari AI sulla stessa mappa con un computer normale. Anche oggi e domani, e mi aspetto che non cambierà nemmeno tra dieci anni.

Il prossimo numero è: fintanto che l'IA seguirà regole rigide, sarà sfruttabile. Anche le regole fuzzy lo renderanno vulnerabile agli exploit. L'intelligenza artificiale dovrebbe imparare e dovrebbe commettere errori - intenzionali e non intenzionali. Dovrebbe anche sorprenderti. E poi stai giocando contro un altro essere umano. Dal momento che l'IA non si avvicina nemmeno alla copia del modo di pensare di un essere umano sia in termini algoritmici che in termini di potenza di elaborazione, stai molto meglio non perdere tempo con un'intelligenza artificiale a giocatore singolo che non è così divertente da giocare come un altro essere umano, se non altro per i fattori sociali coinvolti.


1

Ciò che definisci "imbrogliare le risorse" è come "aumentare il bilanciamento" nei giochi di corse. Il "boost" è usato per cercare di mantenere il gruppo relativamente vicino l'uno all'altro per creare l'illusione di una corsa serrata. Se il giocatore non è in testa, può tenere in vista il giocatore CPU, e se il giocatore è in testa mantiene la pressione mettendo gli avversari direttamente sulla coda, anche se la CPU stessa è un pilota mediocre.

In un RTS stai osservando una raccolta di valori che possono essere organizzati in modo ottimale. Sai esattamente quanto tempo ci vuole per ottenere una risorsa, quanto costano gli oggetti da costruire, i tempi di attraversamento della mappa, ecc.

Se sei tu quello che ha creato le tabelle e ha le informazioni prontamente disponibili per te, è solo una questione di numero sgranocchiando i dati per trovare i rapporti migliori per l'output.

Ma quanto è divertente giocare contro un nemico che fa sempre esattamente la stessa cosa in base al contesto del campo di gioco?

Quindi aggiungi il caos. Dai all'IA un'efficienza su una scala mobile. Hai molestare il giocatore. Se il giocatore sembra fare troppo bene, hai un po 'di intelligenza artificiale e gli dai delle risorse extra o rinforzi per tenere il giocatore in punta di piedi.

Volete che il giocatore senta la soddisfazione di affrontare un avversario sfidante, piuttosto che sculacciare un'intelligenza artificiale debole o essere massacrato da Hal9000. La perfezione di un avversario CPU risiede nella sua imperfezione. :)


2
E diverso, ma correlato: è bello se l'IA a volte fa cose che non sono tecnicamente la loro migliore opzione, ma aggiunge un po 'di divertimento al gioco, come l'uso di unità o mosse insolite (ad esempio truppe che saltano in aria sul retro della base del giocatore )
Bart van Heukelom il

0

Una cosa importante è che devi tenere il passo con lo sviluppo strategico del gioco. Nessuna quantità di sviluppo consentirà a un'IA di vincere una partita di Starcraft 1 (in fair play) se pensa che un esercito di base di marine sia il modo di giocare una partita Terran vs Terran.

Ciò non solo impedirà all'IA di essere costantemente battuta a causa della sua scelta di strategia obsoleta, ma avere un repertorio più ampio di approcci al gioco renderà l'IA più coinvolgente, se l'IA compie scelte praticabili lungo il percorso.

Un albero di strategia ricco consente anche un dispositivo di scorrimento di difficoltà; ad es. l'intraprendente intelligenza artificiale di Zerg tenderà ad adottare approcci flessibili in grado di adattarsi al nemico e di espandersi rapidamente quando gli viene data l'opportunità, ma a un livello di difficoltà normale è probabile che scelga costruzioni più rigide e sia meno incline alle espansioni di massa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.