Efectuarea inteligenței artificiale bune pentru adversarii de pe computer este dificilă. Programarea unui joc ca schițele nu este o provocare teribilă; adăugând AI convingător, cu toate acestea, ar putea dura mai mult decât făcând jocul în sine. Dar ce facem când facem acest AI? Este important ca ea să examineze toate mișcările posibile pe tablă, sau să putem înșela și să facem să se miște în mod aleatoriu? Ce trebuie să facă un AI și (cel mai important) cum putem să ne asigurăm că jocul este distractiv?
Termenul "AI" este un concept foarte larg, iar tipul de AI depinde de joc. Asimetric jocuri, cum ar fi Space Invaders, Mario sau Turnul de Apărare, permit jucătorului să taie prin vărsare de dușmani fără efort. Din moment ce "echipele" (jucător vs totul) sunt dezechilibrate, aceste jocuri tind să utilizeze AI prost. Simetric jocuri, cum ar fi Starcraft, Street Fighter sau Civilization, se așteaptă ca jucătorul să bată adversarii pe picior de egalitate și astfel necesită AI mai complexă.
Space Invaders în stânga, Starcraft pe dreapta. Jucătorul se luptă cu o hoardă extraterestră în ambele; în Starcraft, cu toate acestea, au tendința de a lupta înapoi.Cu toate acestea, jocurile trebuie să fie distractive, în primul rând. Jucătorii se bucură de o provocare, fără a pierde în mod repetat. De fapt, unele jocuri, cum ar fi Checkers, au fost "rezolvate", ceea ce înseamnă că este posibil să construiți un AI care joacă un joc imbatabil.
Când echipa mea și cu mine lucrăm la computerul nostru / jocul de bord infectat, trebuia să facem AI-ul primului nivel intenționat îngrozitor, pentru a nu-i speria pe jucători. Jocul AI a fost inițial destul de simplist, iar calculatorul ar juca hiper agresiv, concentrându-se în întregime asupra jocurilor cu scoruri mari, fără nici un fel de apărare sau prezență la bord.
Chiar dacă AI a fost sărac, am descoperit că jucătorii noi ar fi zdrobiți și vor pierde interesul. Am revizuit AI de mai multe ori, deși sa dovedit a fi o provocare pentru jucători. În cele din urmă, am scos pur și simplu AI, așa că jocul ar face doar o mișcare aleatoare de fiecare dată. Deși unii jucători încă a reușit să piardă această retenție masiv îmbunătățită a jucătorului, permițându-ne să reintroducem AI "grav" la niveluri superioare.
Infectat, un joc destul de puternic bazat pe un joc Amiga cu același nume.Problema AI "prea bună" poate fi văzută într-o varietate de jocuri: jocuri FPS cu roboți care au o viziune de 360 de grade sau batai de luptă împotriva boturilor cu reflexe perfecte. Redarea împotriva acestor AI-uri nu îi învață pe jucători să joace bine jocul: le învață să "joace" roboții, pentru a încerca să găsească un defect în algoritmul care permite ucide ușor.
Acest lucru nu înseamnă că toate AI ar trebui să fie sărace, ci mai degrabă că AI bun este multi-fațetat. Face greșeli, dar încearcă să evite căderea în aceleași modele previzibile. Acordarea abilității de a adapta AI - și, prin urmare, de a oferi variante de joc - va oferi probabil mai multă divertisment jucătorului decât un AI care joacă același joc perfect de fiecare dată.
"Nu ești altceva decât un pachet de cărți!" strigă Alice. AI nerealist ar putea să ne facă să sunăm ceva similar: "Nu ești altceva decât o grămadă de cod!".Dupa ce am infectat, am jucat pe scurt cu un sequel infectat 2. A fost aceeasi premisa, dar la o scara mai mare, similar cu jocul clasic de risc Risk. Deoarece jocul a fost mai mare, a fost important să se îmbunătățească dramatic AI: ceva care ar putea menține jucătorul distras în timpul unui joc mult mai lung și în cazul în care mai multe AI ar putea concura unul împotriva celuilalt.
Am conectat vechiul AI și au existat mai multe probleme cu el. AI a fost predictibilă, dar a fost ceva care ar putea fi îmbunătățit cu puțină muncă. Problema mai largă se referea la atitudinea generală a AI și la modul în care a jucat.
Au existat trei probleme principale:
Jocul a fost distractiv impotriva celorlalti jucatori, dar nu impotriva AI. Deși a existat încă același nivel de provocare, de ce a existat o astfel de disparitate masivă între jucătorul împotriva AI și joc împotriva unei alte persoane, dacă jocul era același?
Apoi ne-am adus aminte că oamenii au un lucru pe care calculatoarele nu-l fac: emoții.
O parte din jocul unui joc devine emoțională; ne place o victorie palpitanta, ne uram o infrangere zdrobitoare. Ne place să ne freăm victoriile în fața prietenilor noștri și devenim mici și răzbunători atunci când ne trădează. Jocurile sunt legate intrinsec de emoțiile noastre și sunt ceva pe care un AI nu-l poate experimenta ... dar este ceva pe care dezvoltatorii îl putem emula.
De ce nu juca distracția AI?
Pentru că inteligența artificială era atât de evidentă artificial. Toți roboții au jucat în același mod; toți aveau aceeași abordare a jocului; toate erau la fel de previzibile în modelele lor de mișcare.
Chiar și în Pac-Man, cele patru fantome - Inky, Blinky, Pinky și Clyde - au propriile personalități și modele de mișcare.Avem nevoie de ceva pentru a le face să iasă unul de celălalt. Așa că am introdus personalități: nepăsător, defensiv, explorator. AI ar da o pondere artificială anumitor strategii și apoi se va deplasa în acele modele de atac.
Chiar și într-o formă de bază, aceasta a fost o îmbunătățire masivă: jocul nu mai era la fel, dar a adăugat imprevizibilitate mișcărilor inamice și a făcut mai greu să formulezi o singură strategie "câștigătoare de joc". Dacă IA au fost randomizate când a început jocul, atunci jucătorul nu ar fi putut să prezică cum se va desfășura jocul.
Personalitățile despre AI nu sunt o idee nouă. Civilizația dă personalități liderilor săi (Gandhi îi place să distrugă oamenii), vârsta mitologiei AI determină cât de probabil este să folosească strategii, cum ar fi turtling sau graba, iar roboții Unreal Tournament au arme preferate.
Gandhi în Civilizație 5: evitați să-i invocați mânia.Principala problemă a fost că AI a jucat ceea ce a considerat o "cea mai bună mișcare" în fiecare rundă. Ea a evaluat pur și simplu tabloul de joc, fără a lua în considerare diplomația. Dacă ar fi nevoie să te atace, ar fi. Dacă l-ați atacat înapoi, pur și simplu nu-i păsa. A văzut jocul ca un puzzle matematic care trebuie rezolvat, mai degrabă decât un joc împotriva jucătorilor umani complexe. Jocul împotriva inteligenței noastre artificiale a dus la un joc artificial.
Soluția noastră a venit dintr-un joc Amiga din 1989 numit Războiul Nuclear. În Războiul Nuclear, ați luptat împotriva diferiților lideri mondiali și ați încercat să distrugeți țara de la existență. Oricine a reușit să supraviețuiască ar câștiga. Deși simplist, a fost surprinzător de distractiv văzând că dușmanii tăi sunt prinși în vendette personale și aruncă focoase la fiecare altul.
Acest sistem "prieteni și dușmani" a folosit o metrică foarte simplă: fericirea. Fiecare lider mondial a avut o varietate de expresii faciale care au făcut ușor să-și judece atitudinea față de dumneavoastră. În mod surprinzător, oamenii de nuci au tendința să îi facă foarte nefericiți foarte repede. În plus, dușmanii tăi nu s-ar supăra cu tine, ci unul cu celălalt. Acest lucru însemna că o singură rachetă de rătăcire ar putea ajunge într-o luptă susținută până la moarte.
Încă o dată, acest sistem a fost folosit în multe jocuri, inclusiv în civilizație. O națiune inamică cu un nivel ridicat de "fericire" are mai multe șanse să se alieze cu tine și să-ți trimită daruri, în timp ce un dușman care te urăște ar putea să investească o mulțime de resurse în zdrobirea orașelor tale.
Prin adăugarea unui indicator de fericire rudimentar în jocul nostru, am permis prietenilor și rivalităților să se fierbe. Un joc este mai interesant atunci când dezvolți un nemesis sau când se formează echipe și alianțe. Dintr-o data, jocul a devenit personal, iar actiunile simteau ca au avut greutate. De asemenea, am constatat că un indicator de fericire vizibil este important, altfel jucătorul nu ar înțelege ce se întâmplă. O simplă icoană fericită a feței promovează imediat ideea că dușmanii se pot "supăra" și uitându-se la schimbarea feței la luarea anumitor acțiuni, a clarificat ce consecințe au avut aceste acțiuni.
Dilema prizonierului este un concept bine cunoscut de teorie a jocurilor și mulți programatori au petrecut timp încercând să construiască botul final pentru a concura în dilema prizonierului repetat. Curios, strategia câștigătoare de mai mulți ani a fost și cea mai simplă: cunoscută ca tit-for-tat, a copiat pur și simplu mișcarea adversarului.
Problema din infectate 2 a fost adesea că AI pur și simplu privea perspectiva pe termen scurt. AI urmărește să-și maximizeze scorul la fiecare mișcare: dacă aceasta ar însemna o mutare totală săracă, atunci ar face-o oricum.
Cea mai ușoară modalitate de a vă imagina este acest scenariu:
Problema era că AI ar face tot ceea ce ar însemna cele mai multe puncte. În scenariul de mai sus, aceasta însemna că Alice ar ataca pe Bob: pe termen scurt, o mișcare excelentă, dar pe termen lung, dezastruoasă. Nu numai că Alice face o mișcare care se confruntă cu ea însăși, ci condamnă și Bob la o anumită înfrângere. Bob este, desigur, supărat.
Acest tip de situație este dificil de evitat, deoarece văzând imaginea mai mare necesită un raționament complex dincolo de cel mai simplu AI. Am încercat să asigurăm "corectitudinea", făcând jucătorilor mai puțin probabil să fie atacați dacă au pierdut sau dacă au fost atacați recent. Deși nu fiecare joc poate aplica o soluție simplă, este important să se înțeleagă că jucătorii urăsc să fie atacați fără vreun motiv aparent.
În timp ce Infected 2 nu a reușit niciodată să treacă de etapa alfa, ne-a învățat câteva lecții valoroase. Cel mai important este că nu este suficient să joci doar împotriva bătăilor inamice: vrei să fii implicat în joc, să dezvolți rivalități și să zdrobești pe toți cei care te împotrivesc.
Cu mulți ani în urmă, a fost publicat un joc care părea sărituri înainte de competiție. Deși un joc multiplayer de design, botii erau destul de buni încât să se poată bucura de un singur jucător. Și, deși prin standardele de astăzi este sărac, acest joc - Unreal Tournament - a avut AI care a suflat alte jocuri în apă.
Ne putem uita la o captură de ecran în joc pentru a vedea câteva dintre ceea ce a fost făcut în a face un bot:
Bot 19, alias Tamerlane.Abilitatea a fost principalul factor în determinarea comportamentului botului: roboții novici au fost lenți, au trebuit să stea în picioare pentru a trage, și au rămas greu să se întoarcă, în timp ce boturile de nivel mai înalt au fost mai rapizi, s-ar putea să evite, să aibă un câmp mai mare de vedere și să- arme combo tehnici.
Bots ar putea fi apoi modificate în continuare cu precizie, vigilență, camping, și niveluri strafing. "Personalitatea" ar fi determinată de stilul de luptă și de arma preferată, determinând dacă botul a plăcut să se apropie de personal și să încerce să se ciocnească de la distanță. Bots ar fi, de asemenea, taunt jucător și să caute răzbunare. Fiecare dintre cele 32 de boturi ar putea fi personalizate individual, ceea ce înseamnă că ai 32 de personalități distincte. Anumiți roboți, cum ar fi Loque, au devenit notorii printre jucători.
Toți acești factori au ajutat la crearea de roboți care au simțit mai mult uman. În timp ce jocul ar fi în continuare bun fără această sofisticare, acesta adaugă un strat suplimentar, aproape imperceptibil de distracție.
La sfârșitul zilei, trebuie să întrebați: ce doriți de la AI? Sunt dușmanii care vor să se grăbească fără probleme cu jucătorul și să se plimbe mai întâi în capcană sau încercați să dezvoltați ceva mai mult, ceea ce oferă un nivel mai personal de interacțiune cu jucătorul? Orice ați decide, amintiți-vă trei puncte cheie: