DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis...
Transcript of DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis...
![Page 1: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/1.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/2.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/3.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/4.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/5.jpg)
Į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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/6.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/7.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/8.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/9.jpg)
![Page 10: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/10.jpg)
![Page 11: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/11.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/12.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/13.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/14.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/15.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/16.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/17.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/18.jpg)
![Page 19: DIRBTINIS INTELEKTAS ŽAIDIMUOSEazuolas.org/~mantasp/php/kza2013/kza-12.pdfTurinys Dirbtinis intelektas žaidimuose# Kelio radimo algoritmai# A*# Navigacijos tinklas# Unity navmesh#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/19.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/20.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/21.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/22.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/23.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/24.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/25.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/26.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/27.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/28.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/29.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/30.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/31.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/32.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/33.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/34.jpg)
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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/35.jpg)
Į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#](https://reader035.fdocument.pub/reader035/viewer/2022070215/6118ee08be02e327b976886d/html5/thumbnails/36.jpg)
Klausimai