36
D IRBTINIS I NTELEKTAS Ž AIDIMUOSE Zbignev Monkevič

DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

DIRBTINIS INTELEKTAS ŽAIDIMUOSE

Zbignev Monkevič

Page 2: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

TurinysDirbtinis intelektas žaidimuose Kelio radimo algoritmai

A* Navigacijos tinklas

Unity navmesh Grupinės elgsenos Prototipai, jų veikimas ir įgyvendinimas

Formacija Paskirstytų vaidmenų grupės DI Minios simuliacija

Įgyta patirtis

Page 3: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Dirbtinis intelektas žaidimuose

Naudojamas sukurti intelekto iliuzija ne-žaidėjo valdomuose veikėjuose

Apribotas priverstinio interaktyvumo realiame laike

Page 4: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Dirbtinis intelektas žaidimuose(2)

Neturi būti maksimaliai efektyvus problemos sprendimas

Turi būti suprantamas žaidėjui bei imituoti mūsų apribojimus

Pagrindinis tikslas - suteikti žaidėjui malonumą

Page 5: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Įtakingiausi DI žaidimuose?

Page 6: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Sim City (gyvo miesto simuliavimas, atsirandančių savybių balansas)

Half-life (interaktyvus cut-scene, pirmas būrio DI)

Total War (tūkstančiai agentų, modeliuojamos karių emocijos)

Page 7: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Sims (emocinės interakcijos tarp veikėjų, žaidėjo pasirinkimų sąveika su centrinė logika)

F.E.A.R. (planuotojas generuoja kontekstinį elgesį, gerai įgyvendintas būrio DI, priešai naudoja aplinką)

Black & White (dizainas, kuris integruoja DI, neuroniniai tinklai, sprendimų medžiai)

Page 8: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

DI klaidosSC:BW (dragoon)

Sims (ciklas alkanas & pavargęs)

Black & White (no poo)

Skyrim bucket exploit

Page 9: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#
Page 10: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#
Page 11: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

2 min. pertrauka

Page 12: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Kelio radimo algoritmaiVienas svarbiausių pagalbinių DI algoritmų

Iš anksto suplanuojamas kelias atsižvelgiant į kliūtis

Page 13: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

A* algoritmasf(x) = g(x) + h(x) x - esama viršūnė

g(x) - kaina parsigavimo nuo starto viršūnės iki esamos

h(x) - euristika, įvertinama parsigavimo kaina iš esamos viršūnės iki galutinės

Page 14: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Navigacijos tinklasAbstakti duomenų struktūra

Pakeitė prieš tai naudojamus kelio taškų grafus

Didesnis tikslumas

Mažesnis duomenų kiekis

Page 15: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Unity Navigation Mesh

Page 16: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Unity Navigation Mesh (2)Navmesh Agent

Navmesh Obstacle

Offmeshlink

Page 17: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Mini-žaidimas Pacman'o DI Pacman Arcade

Page 18: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#
Page 19: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Pacman’o DI4 skirtingų charakterių vaiduokliai

3 skirtingos būsenos

išėjimas iš namuko

energizer piliulė

tunelis

Page 20: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Neatitikimai online ver.Neapsisuka pereinant į “frightened” būseną

Nepradeda “scatter” būsenoje

Išeina iš namuko pagal laiką, o ne suvalgytų piliulių kiekį

Neatitinka originalių vaiduoklių charakterių (?)

Nesumažina greičio tunely

Page 21: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Bakalauro darbo tikslasIšanalizuoti žaidimuose naudojamus grupinės elgsenos algoritmus

Sukurti prototipus

Įvertinti pritaikymo galimybes mobiliems įrenginiams, ištestuoti jų efektyvumą bei greitaveiką

Page 22: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Kodėl mobilieji įrenginiai?Žaidimų industrija – prognozuojama virš 70 mlrd. pelno šiais metas

Mobilieji žaidimai – sparčiausiai augantis industrijos segmentas

500+ mln žaidėjų

Vis dar yra neišnaudotų galimybių

Page 23: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Grupinės elgsenos algoritmaiGrupinė elgsena - tai lokalių sąveikų tarp grupės narių ir jų sąveikos su aplinka rezultatas

Grupė susideda iš subjektų, kurie randasi toje pačioje fizinėje aplinkoje, turi panašų tikslą ir gali elgtis skirtingai, kai yra vieni

Pvz: būriavimasis, išsiskyrimas/susirinkimas, lyderio siekimas, susidūrimų vengimas, tikslo pozicijos sekimas

Page 24: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Grupinės elgsenos algoritmai naudojami žaidimuose

Formacijos – pasitaiko visose realaus laiko strategijose

Būrio elgesys – naudojamas pirmo asmens šaudyklėse, kurios naudoja protinga priešų DI

Minios simuliacija – naudojama daugumoje didelių atviro pasaulio veiksmo-nuotykių žaidimų

Vaidmenų grupės narių – taikomas vaidmenų žaidimuose kur žaidėją lydi DI valdomi veikėjai

Page 25: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

2 min. pertrauka

Page 26: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

FormacijaFormacija - grupė, kurios nariai bando išlaikyti jų unikalią santykinę poziciją

Tikslas – judėti kartu

Page 27: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Formacija(2)Lyderis

Išsaugomos santykinės startinės pozicijos

Prie kliūčių išsisklaido

Page 28: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Testų rezultatai (1) Formacija

6 testai, nuo paprasto judėjimo iki skirtingų kliūčių ir prasilenkimo testų

Formacija naudojančios grupės prasilenkimo testus įveikdavo greičiau

Mažiau efektyvus negu grupės įveikiant kliūtis del būtino formacijos išsisklaidymo ir suformavimo

Page 29: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Paskirstytų vaidmenų grupė3 skirtingi vaidmenys, kiekvienas būtinas grupei

Gynėjas Žalos darytojas Gydytojas

Page 30: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Paskirstytų vaidmenų grupė(2)Tikslas – išgyventi kuo ilgiau, nugalėti kuo daugiau priešų

Page 31: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Testų rezultatai (2) Paskirstytų vaidmenų grupėŽymiai padidėjo priešų įveikimų kiekis bei išgyvenimo laikas Veikia bent dvigubai efektyviai negu atskirai veikianti grupė

Pasi

kart

ojim

ų ki

ekis

0

8

15

23

30

Išgyventas laikas

0-50 50-100 100-200 200-500 500-1000 1000-5000

Individuali I testasIndividuali II testasGrupinė I testasGrupinė II testas

Page 32: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Minios simuliacijaKolizijų vengimas

Standartinė ir kritinė būsenos

Page 33: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Minios simuliacija (2)Simuliuojama realaus pasaulio situacija – evakuacija, prasidėjus gaisrui

Gali būti naudojama rimtuose žaidimuose

Page 34: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Testų rezultatai (3) Minios simuliacija

Naujausi mobilieji įrenginiai leidžia vaizduoti detalią sceną ir virš 50 animuotų ar virš 100 neanimuotų veikėjų su 30 kadrų per sekundę greičiu

Įrenginys iPhone 5 iPad 2 iPad 4

Animuoti veikėjai 62 15 72

Neanimuoti veikėjai 120 26 136

Page 35: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Įgyta patirtisJei projektui pakanka Unity Navmesh’o funkcijų, drąsiai jas naudokite - palengvins ir pagreitins kūrimo procesą Naujausi mobilieji įrenginiai pakankamai spartūs didelio kiekio veikėjų vaizdavimui vienu metu. Tai suteikia galimybę iki šiol neišplėtotiems žaidimų tipams Pasirinkite įdomią temą rašto darbams

Page 36: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#

Klausimai