Gå til innhold

Smartere AI i spill?


Anbefalte innlegg

Som vanlig kommer det en del desillusjonerte PC-spillere og forsøker å legge skylden på konsollene. Jeg var selv en stor PC-gamer i min tid da strategispill var mer populært enn det er nå, men det utvikles hverken PC-eksklusive, dype, strategispill på noe særlig stor skala eller AI til mer mainstreame spill, ganske enkelt fordi det ikke er penger å tjene på det. Det har veldig lite med prosessorkraft å gjøre, og veldig mye med hvilke strategiske vurderinger som lønner seg å gjøre for et selskap om de ønsker å maksimere sin profitt - noe jo alle selskap i prinsippet ønsker. AI kan ikke puttes bakpå boksen på samme måte som fin grafikk og at et spill inkluderer multiplayer, så da vil det, dessverre, fortsette å bli nedprioritert også om vi plutselig skulle få ti ganger mer prosessorkraft ved neste konsollgenerasjon.

  • Liker 5
Lenke til kommentar
Videoannonse
Annonse

Hverken FEAR eller Crysis har helt ok AI, men ikke god. Husker soldatene i Half-Life når det først kom i 1998, ble sykt imponert over hvor smarte de var, brukte cover, kastet granater og flanket!

 

Half-Life eksempelet ditt sier også noe annet, presentasjon er viktig! Grunnen til at AI'en i Half-Life fremstod som bra var jo at Valve gjorde det ekstremt enkelt å forstå hva soldatene gjorde. Du hørte jo radiosambandet konstant. Uten "flank him flank him" ville du neppe forstått hva AIen gjorde og bevegelsene dems ville fort blitt oppfattet som hjerneløse.

 

I mine øyne er noe av det viktigste for å skape en god AI å ta hensyn til hva AI'en kan klare når du designer spillet. Et godt designet spill kan få en spiller til å tro at det ligger mening bak hendelser som faktisk er helt tilfeldig.

 

Tidsaspektet ved utvikling gjør det nok også vanskeligere. Reglene i sjakk har f.eks vært konstante i evigheter, mens mye av AI'en til Civilization5 gjøres ubrukelig hver gang de patcher spillet. For et strategispill så er det selvsagt også veldig mye enklere å si hva AIen bør gjøre når tusenvis av spillere har funnet gode strategier. Dette betyr at en god AI til strategispill igrunn ikke kan skrives før etter at spillet har vært ute på markedet en stund.

 

Jeg vil dog ikke være med på helt svartmaling. I dag kan man faktisk spille FPS-spill der teammates oppfører seg bra nok til at de ikke ødelegger opplevelsen slik de gjorde før.

 

Så har vi dette med, hvor god AI vil vi ha? Hva er god AI? Hvem har ikke blitt forbanna når en AI i et FPS oppdager deg lynraskt på 1000 meters avstand og fyrer av et perfekt skudd. Er det god eller dårlig AI? Svaret er vel fort at vi vil ha en morsom AI å spille mot, ikke nødvendigvis en "god" en.

 

Så har du AI der folk ofte ikke tenker på AI. Når folk snakker om AI i f.eks SC2 så tenker de på den AIen du spiller mot, men også alle enhetene dine har jo en kunstig intelligens. Jeg synes disse jevnt over er mye smartere i dag enn hva de var før hvor de alltid gjorde noe ekstremt dumt.

  • Liker 2
Lenke til kommentar

Husker jeg ble imponert i 1996 eller deromkring når jeg så en bot mod til quake, som minte om å spille multiplayer med virkelige mennesker.

 

Fast forward 15 år og realiteten er at jeg ikke har sett en AI etter det, som har slått meg som spesielt mye bedre enn den Quake-moden.

 

Jeg tror det er lettvint å konkludere med at det er dyrt å utvikle AI og at vi ikke vil ha god AI. Realiteten er vel heller slik at god AI ikke finnes, fordi det er ingen som vet hvordan man skal lage det. Det forutsetter en grad av kunstig intelligens, en teknologi menneskeheten ikke har utviklet ennå.

  • Liker 2
Lenke til kommentar

Jeg vil bare påpeke at manglende AI ikke har noen sammenheng med for svak maskinvare, heller for svak koding.

 

Med den mengden CPU/GPU vi har i dag, kunne vi nok oppnådd fiender som både lærer og utvikler seg, men vi er ikke kommet langt nok i kodingen.

 

 

Mener jeg leste det noen plass, muligens i en artikkel i Wired (Why the future doesn't need us).

Endret av Judgement
Lenke til kommentar

Far Cry, det første, synes jeg hadde ganske brukbar AI. Noe av det viktige der var at fienden faktisk hadde ett sett stridsdriller de fulgte. Normale, enkle, driller som vi i Norge kjenner innenfor ild og bevegelse. For min del gjør enkle ting, som minimums soldatferdigheter, stor forskjell. Fiender som jobber sammen, bruker skiftestilling istedenfor å poppe opp samme sted hver gang, går i dekning når de mottar massiv ild og ikke løper forran deg mens du skyter. Ting som er veldig enkle og ikke burde være så vanskelig å få til. Brothers in arms synes jeg også var ganske bra der, fienden tilpasset seg stride og reagerte på å bli skutt på. Lite som er så demotiverende som fiender som ikke bryr seg om å bli skutt på (cod)

  • Liker 3
Lenke til kommentar

Alle AI-er må jukse for å fungere. Å lage ein AI som utelukkande skal handle utfrå samme mengda informasjon som eit menneske ville fått går ikkje. (Hadde vi kunne fått til dette med ein vanleg PC ville rein kunstig intelligens vert vanlig for lenge sida). Akuratt dette påenget er derfor håplaust og diskutere.

 

Når det er sagt so kunne AI-en med fordel blitt laga betre med tanke på bevegelsesmønster. Dersom ein då i tilegg hadde brukt type små tropper, der kver bot fekk ulike personlighetsprofiler ville man få veldig variert gameplay. Å ha ein bot som koordinerte bevegelsane til folka ville og vert smart sidan man då med å skyte han vertfall midlertidig kunne desorientert den angripande gruppa litt (inntil ein ny tok over).

 

Alt det eg nemner her er veldig menneskelig atferd som man med enkelheit kan tilegge ein ai. I dag (kansje litt på grunn av konsoller) føler eg at dette blir direkte ignorert sidan det er mykje lettare å lage scripta hendingar (då forsvinner heile påenget med å lage ein taktisk ai sidan fienden spawner taktisk i utganspunktet). Resultatet av dette blir at vi får "åpne" spel som egentlig berre er ein glorifisert korridor fest uten reelle valg.

 

Eit spel som er på veg(eller nettop komt ut?) som kansje kan gjere noko med det her er Golden Eye (remaken). Eksempel på spel som er til dei grader scripta og fullstendig uten valgfrihet er jo alt av COD, MOH og ikkje minst Mass Effect (spesielt nr 2 er tidens scriptfest. Dette er jo og eit konsollspel i mykje større grad enn 1-aren (<<sammenheng??))

Lenke til kommentar

Her begynner det å dukke opp mye misforstått synsing. Jeg har selv programmert grunnleggende AI (stifinning, for det meste) for et kommersielt PC-spill og har sett hvor intensivt det kan være. Mitt første forsøk på stifinning på et svært begrenset kart med klare og tydelige parametre resulterte i en rutine som brukte 13 sekunder for å finne en optimal sti. 13 sekunder! Etter et par dager med nøye optimalisering reduserte vi denne tiden til ca 0,1 sekunder. Når det tar 0,1 sekunder for en optimalisert algoritme å gjøre en slik enkel operasjon, så sier det seg selv at skikkelig AI krever mye CPU. Dette var forøvrig med en av de enkleste og mest velkjente stifinningsalgoritmene som fins der ute. Enhver person med høyere utdanning innen systemutvikling vet nok hva jeg snakker om.

 

Fakta er at AI for spill er for alle praktiske formål ferdigforsket for dagens spillteknologi. Det er svært lite å hente på videre forskning innen temaet før vi har mer maskinkraft eller alternativ teknologi. Utvikling av AI handler i dag stort sett om at man skriver en ønskeliste over hva man vil få til, og så må man stryke urealistiske krav fra den etter hvert som realiteten synker inn.

 

Fakta er også det at AI er CPU-intensivt. Med mesteparten av grafikkoperasjoner flyttet over til GPU er det stort sett AI som er krevende for systemet i dag. Spill som Civilization har så store krav til AI at det kontinuerlig analyserer og planlegger i bakgrunnen mens du gjør dine egne trekk, og selv da må den bruke flere sekunder mellom rundene dine for å finne ut hva den skal gjøre. Det er ikke fordi AI-utviklerne der er late (og Sid Meier har skjønt det: Spillbarhet er viktigere enn realisme). Spill som Galactic Civilizations 2 analyserer løsninger hele tiden mens du spiller, og tvinger frem en løsning når du avslutter runden din. Vi snakker om enorme mengder maskinkraft når en moderne PC kan kverne spilldata i flere minutter uten å komme opp med en optimal løsning (sett fra spillbarhetsperspektiv).

 

Å skylde på svak koding er også helt meningsløst og tyder på at man selv ikke har satt seg inn i temaet. Det er alltid rom for forbedring i kode, men AI er et veldig solid utforsket felt innen spill, med enorme mengder velkjente og optimaliserte algoritmer. Det hjelper lite når den store majoriteten av dem ligger milevis over den kapasiteten en typisk spillmaskin har.

  • Liker 9
Lenke til kommentar

Problemet ligger vel ikke i å gjøre AIen god, men om å gjøre den menneskelignende og god samtidig.

 

En AI i et skytespill kunne lett ha hatt tilnærmet 100% nøyaktighet på headshots (innenfor parameterene til våpenet som er i bruk, så klart) og reagert på mindre enn et millisekund, men det hadde neppe vært morsomt. En AI i fightingspill kunne sikkert lett bli programmert til å automatisk utføre en 30-hit combo hver eneste gang med 100% nøyaktighet og timing i samme øyeblikk som spilleren ikke blokkerte lengre, og vunnet. Perfekt timing, perfekt utførelse hver eneste gang, men absolutt ikke mennesklig eller interessant.

 

Det vanskeligste med en AI er vel kanskje å unngå at de blir forutsigbare. Jeg har spillt den originale C&C nå i det siste, og det er utrolig for kjapt man legger merke til situasjonene hvor AIen ikke har noen god løsning på et problem, og deretter er det jo bare å sørge for at den situasjonen oppstår så ofte som mulig, og utnytte svakheten hver eneste gang. Avledningsmanøver + engineer rush, funker hver gang :p.

Endret av Pseudopod
  • Liker 3
Lenke til kommentar

AI er et vanskelig tema. Først må man definere intelligens. Hva er det? Hvordan fungerer det? Dette er spørsmål som vi ikke engang har et fullt konkret svar på når det gjelder oss selv. Så da kan man spørre seg, er god og realistisk ai det samme som at maskinstyrte motstandere oppfører seg akkurat som en menneskelig motstander gjør? For det første er det ikke mulig med dagens datamaskiner å få til dette. I en datamaskin er den elementære enheten en 'bit', strøm av eller strøm på. Det finnes kun to mulige tilstander. Menneskets hjerne er bygget opp av synapser, som kan ha flere tilstander, uten at jeg vet hvor mange, hvis tallet i det hele tatt er fastsatt enda. Så inntil den svært nyoppfunnede synapselike transistoren blir krympet til brukbare størrelser, satt i masseproduksjon og programvareplattformer som støtter den er utviklet, er det svært lite sannsynlig at vi ser noe som kommer til å nærme seg det folk tror de vil ha. Dette vil lite trolig skje i løpet av de nærmeste par tiårene.

 

I dag er fokuset ikke lagt til å lage ekte AI, men til å lage noe som oppfattes som bra og realistisk. Det er lenge siden det ble gitt opp å forsøke å lage en AI som kan gjøre mer enn en håndfull statiske valg i spill. Når du innfører et stort antall valg, ender du veldig raskt opp med noe som heter 'behaviour spin'. Det vil si at AIen har to tilstander som kaller hverandre på grunn av situasjonen. Ta for eksempel en fiende i et skytespill som går i dekning. Den går i dekning på grunn av at den blir skutt på. Men på grunn av for eksempel en smart plassering av spilleren kan ikke fienden se spilleren når han er i dekning, dermed går den ut av dekning igjen, for så å bli skutt på å trigge dekningsmanøveren på nytt, osv.

 

Som noen allerede har nevnt, er maskinens oppførsel i spill ofte et resultat av 'juks'. Flanking er et veldig godt eksempel. Det er veldig skjeldent at flankemanøvere er eksplisitt programmert inn i oppførselen. Det er mye vanligere at det er en følge av rutesystemet i spillet. En datastyrt aktør kan ikke navigere et område uten at det er definert ruter i brettet. Maskinen ser ikke 3D omgivelser og kan ikke gjøre valg tatt fra hvordan verden ser ut. Den er avhengig av et nettverk av noder som forteller noe om verden. De kan si ting som 'her kan du gå', 'her kan du ta dekning' og 'her kan du ta dekning, men plassen er opptatt'. AIen kjenner typisk til rutenodene i hele eller deler av et område, og kan dermed regne ut hva som er den beste veien å gå. Så hva er den beste veien å gå? Typisk bestemmes det ut i fra avstand. Korteste vei til målet er best, men hold avstand og ta dekning. Så kommer situasjonen hvor man møter fiender i et sett med korridorer, eller en åpen plass med diverse steder å ta dekning. De første fiendene vil naturligvis ta den korteste ruten de kan for å komme i rekkevidde og ta dekning. Når dette er gjort er disse plassene opptatt, og den ruten er dermed blokkert. De neste som kommer frem vil dermed ta en rute som går rundt, og en flankeoperasjon er utført. Hvorfor gjøre dette til en dyr og veldig problemrik operasjon når man kan jukse for å få akkurat det samme resultatet. Det er tross alt ikke noen god ide å splitte opp laget i en flankemanøver når man ikke har noen som passer på at fienden ikke flytter på seg i mellomtiden.

 

Skyrims svært tolerante npcer er et resultat av at spilleren har fått mye frihet. Det går enkelt og greit ikke an å forutse alt en spiller kan finne på. Sannsynligheten er stor for at hvis de hadde programmert inn en reaksjon på at spilleren gjorde uvanlige ting hadde det ødelagt langt mer enn det er verdt. Det er ikke spillødeleggende at hvis man går inn for å ødelegge spillet, så får man det til. Det er ikke forventet oppførsel å putte kurver på hodet til folk. Jeg er enig i at det kan være merkelig at fiender gir opp så fort når kompisene blir drept rundt dem. På den annen side ville det vært umulig å være sneaky om AIen var helt realistisk. Realistisk sett ville alle fiender i hele borgen vært ute etter deg og gjennomsøkt hver krik og krok før de ga seg. De gir seg litt fort, fordi det er morsommere å fortsette å plukke dem med bue fra skyggene enn å gjemme seg i et skap i flere timer. Alternativet er at det ville vært idioti å fokusere på sniking, siden man må ha tung rustning, skjold og sverd for å ha mulighet til å komme seg igjennom, siden man må slåss med alle på likt. I tillegg er det jo totalt urealistisk at man invaderer en borg alene.

 

Kort og godt, jeg tror folk bør tenke seg om litt før de spør om totalt realistisk oppførsel fra datamaskinen i spill.

  • Liker 5
Lenke til kommentar

...Fakta er at AI for spill er for alle praktiske formål ferdigforsket for dagens spillteknologi. ..

 

Veldig interessant å lese innlegget ditt!

Men utifra det jeg leser tenker jeg litt på søkemotorer og det markedet som var der før Google.

Kan det være at AI koding i dag trenger et lignende skift? Altså en helt ny måte kode på?

 

Kan null om koding, så spørsmålet er meget mulig idiotisk.

Lenke til kommentar

En måte å lage AIs på er jo å benytte ghosts, slik som man ser i for eksempel tekken 5 og 6. Slik jeg har forstått det så får man en ekte person til å spille med samme fighter mange hundre ganger, og deretter analyserer stilen hans, og man får en slags markov-lenke som etterligner den mennesklige spilleren. For eksempel "etter manøver B så er det en 78% sjangse for at manøver Y kommer", "etter at motstanderen blokkerer lavt er det en 26% sjangse for at manøver D utføres, og en 55% sjangse for at X utføres", etc.

Endret av Pseudopod
  • Liker 4
Lenke til kommentar

Jeg tror spillenes kompleksitet har kjørt ifra AI-teknologien. Det er vanskelig nok å lage en maskin som er god i sjakk, men det å ha en eller flere NPC-er som kan bevege seg i alle himmelretninger og utføre et utall handlinger akkurat når det måtte passe, blir så veldig mye mer. Det er nok derfor det hender jeg tenker at spill faktisk var glupere før.

Lenke til kommentar

Jeg vil påstå at Metal Gear Solid 4 har veldig god AI.

Apropos det. AI rutiner tok opp 33% av tilgjengelig CPU kraft i MGS2 på PS2 (i følge dev teamet selv), så det kan vel godt tenkes at det var maskinvaren som var begrensende der. Her hadde vi også AI som flanket, utførte systematiske klareringer i et hvilket som helst rom som et lag av soldater, ga hverandre suppressing fire, og kastet til og med granater inn i ventilasjonskanalene nå og da dersom de trodde jeg gjemte meg der.

 

Riktig nok hadde ikke soldatene i MGS2 verdens lengste synsrekkevidde, siden det da fort kunne ha blitt nesten umulig å komme seg forbi visse steder og forbli i stealth modus :p. I MGS3 fikk de derimot mye bedre syn, samtidig som spilleren ble gitt flere kamuflasjer å velge imellom.

Endret av Pseudopod
  • Liker 3
Lenke til kommentar

Vet ikke om det kan "regnes med", men AIen i SC2 er veldig smart (om man stiller AI til å være vanskeligere da, vel og merke). Men dette er kanskje fordi når vanskelighetsgrad generelt endres i strategispill er det intelligensen som endres, mens i f.eks. FPS-spill kan det være aimen til AIen. Unitsene i seg selv er like gode på forskjellige vanskelighetsgrader i SC2. Handikap kan jo også selvsagt legges til. Selv spiller jeg mot very hard (4/5 vanskelighetsgrad), da søker AIen etter proxy bygninger (bygninger overdrevent nærme motstander) - selv om AIen "vet alt" søker den om jeg har noe lureri på gang, om den ikke finner noe går den ofte på lureriet mitt. AI i SC2 reagerer og bygger også units til å kontre det jeg bygger basert på hva AIen scouter. Om jeg "gjemmer" mange fly for AIen, har den ikke nødvendigvis mye anti-air. Den sier til og med "gg" når løpet er kjørt :)

 

Kanskje andre sjangre/spill har noe å lære herfra?

Lenke til kommentar

Jeg leste et intervju med sjefsdesigneren for Civ5, og han sa rett ut at det ikke lønner seg å bruke ressurser på AI i forhold til grafikk. Dermed brukte utviklerne av civ5 halvannen stilling på AI-en, mot over 100 på grafikken - og dette i et strategispill hvor en virkelig skulle tro at AI spilte en rolle.

 

Av denne grunn, så tviler jeg sterkt på at vi, med muligens noen få hederlige unntak, vil få se noe særlig forbedring i AI med bedre maskinvare. Det som kreves er at noen får øynene opp for at dette ønsker spillere, men med dagens grafikktunge industri hvor årets utgave av forrige års spill selger 20+ millioner, så spørs det vel om vi kommer i den situasjonen med det første.

 

Det forklarer veldig veldig mye ang CIV V..for den AI`en er blandt de dummeste i spillverdenen. :whistle:

Problemet er,gamerne legger merke til hvor dårlig spillet er pga dette,så skal de selge en CIV 6 noen gang,så får de nok anstrenge seg litt mere.

 

Edit:

Sitter med Fable 3 akkurat nå,og skal runde spillet som ond :evil:

Når man er så ond som jeg er,så flykter de aller fleste innbyggere hylene bare ved synet av meg.

Da det er mulig å bli venner med folk,fks for å oppnå lavere priser i butikken som personen eier,så kan du fortsatt bli det,men det som da skjer,er at personen flykter likevel,for såvidt jeg ser dette riktig,så er personen da både livredd deg OG venner med deg samtidig :hmm:

Så han som står i kassa i den lokale pawnshoppen i en av byene,er en kompis av meg,jeg har ikke banket ham eller fornærmet han,han er redd meg pga ryktet mitt,og derfor løper han ut av butikken før jeg får handlet med han.Hehe..blir ganske dumt.Får derfor ikke solgt ting jeg ikke trenger noe sted,da alle pawnshop folkene gjør dette.

Noen som etterlyste bedre AI?

Ja her trengs det oppgraderinger i mange forskjellige spill.

Endret av ArkArk
Lenke til kommentar

 

 

Samtidig kan en veldig intelligent boss bli urettferdig god også. I motsetning til spilleren kan f.eks. en datakontrollert spiller kjenne til spillverdenen 100%, den skjønner spillereglene til punkt og prikke, kjenner til hver minste lille avkrok, vet nøyaktig hvor alle objekter befinner til enhver tid, vet nøyaktig hvordan fysikken fungerer etc.

Jeg vil ikke si at dette er eksempel på god AI. Jeg vil tro alle utviklere er i stand til å programmere fiendene i spillene sine til å skyte deg i hodet så fort de har klar skuddlinje. Det er jo et eksempel på en motstander som kjenner spillereglene til punkt å prikke, som du sier, men er det god AI?

 

Nei, god AI i denne sammenhengen er vel å være mest mulig menneskelig. Med andre ord må ikke CPU-motstanderen ha mer informasjon om situasjonen enn spilleren, f.eks. hvor mye den kan se og høre. Den bør heller ikke reagere unaturlig raskt og f.eks. ta headshot 1 hundredel etter den har oppdaget spilleren.

 

 

Ikke at jeg kan noe om AI-programmering, men GPGPU-er og massevis av kjerner i framtiden kan vel hjelpe til en del? AI-prosedyrer er vel stort sett binære trestrukturer av handlinger man kan parallellisere ganske bra?

Endret av kilik
Lenke til kommentar
Ikke at jeg kan noe om AI-programmering, men GPGPU-er og massevis av kjerner i framtiden kan vel hjelpe til en del? AI-prosedyrer er vel stort sett binære trestrukturer av handlinger man kan parallellisere ganske bra?

 

Sjekk Traveling Salesman-problemet for å se et godt eksempel på et stifinningsproblem som ikke kan løses optimalt ved å pøse på med kjerner. En av de viktigste forskjellene mellom våre datamaskiner og menneskehjernen er at bare sistnevnte får til ekte parallellisering. Når kompleksiteten til et problem øker eksponensielt blir den tradisjonelle datamaskinstrukturen svakere og svakere, noe som vi til nå har løst med å slenge mer og mer maskinkraft inn i bildet for å løse problemene med makt. AI fungerer dårlig når man gjør ting på den måten.

  • Liker 1
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...