3D mänguarenduse kursus (MTAT.03.283) Loeng 3 Jaanus Uri 2013
Teemad Tee leidmine ja navigatsioon Andmete protseduuriline genereerimine Projektijuhtimine
Tee leidmine Navigatsiooni võrgustik (navigation mesh) Navigatsiooni võrgustiku läbimise algoritmid: Dijkstra algoritm A* algoritm D* algoritm Navigatsiooni võrgustiku automaatne genereerimine
Navigatsiooni võrgustik
Dijkstra Sisend: Graafi G tipud ja servad Iga tipu kohta antud punkt P=(x,y,z) ja selle läbimise "hind" Tee leidmise alguse tipp A Tee leidmise lõpu tipp L Väljund Järjestatud nimekiri läbitavatest tippudest (A,..., L)
Dijkstra Plussid Lihtne Sisuliselt tavaline laiutiotsing Miinused Aeglane
Dijkstra https://en.wikipedia.org/wiki/file:dijkstras_progress_animation.gif by Subh83
A* Sisend ja väljund sama, mis Dijkstra algoritmil d(x,y) kaugus tippude x ja y punktide vahel g(x) läbitud teepikkus algustipust A f(x) heuristik iga tipu kohta f(x)=g(x)+h(x) h(x) d(x, L) Plussid Kiire Miinused Keerulisem implementeerida
A* http://en.wikipedia.org/wiki/file:astar_progress_animation.gif by Subh83
D* Inkrementaalne teeleidmine Lisaks A* hoitakse nimekirju selle kohta, missugused tipud on kõrgema ja väiksema läbimishinnaga Plussid Kui navigatsiooni võrgustik muutub, siis kiirem kui A* Miinused Veel keerulisem Alternatiiv: D* lite
Andmete protseduuriline genereerimine Perlini müra (Perlin noise) Protseduuriline genereerimine L-süsteemid Rakulised automaadid Lihtsad reeglid iga raku kohta Geneetilised algoritmid Ei toimi, kui tahta täpset tulemust
Perlini müra Lihtne genereerida Annab samasuguse tulemuse Saab kasutada fraktaalselt Filtreerides saadud väärtuste vahemikke saab naturaalsetena paistvaid pindu Simplex müra (simplex noise)
Perlini müra
Perlini müra
Protseduuriline genereerimine http://www.youtube.com/watch?v=-d2-ptk4f6y
Projektijuhtimine Rollid Projektijuht Tarkvara arhitekt Kunstiline juht Ressursside haldaja Testija Dokumenteerija
Reeglid Suurem inimeste arv grupis muudab tegutsemise keerulisemaks n inimese korral kokku suhtluskanaleid n*(n-1)/2 ehk graafi tippude arv, kui kõik suhtlevad kõigiga sama olukord programmi omaduste puhul Kui midagi teha, siis peab olema kirjas, kes seda teeb Kui mõne asjaga läheb kauem aega, kui planeeritud, siis tuleb midagi muud ära jätta
Dokumendid Visioon Kasutuslood Diagrammid ja andmemudel Ressursside loetelu Ülesannete loetelu koos ajaliste hinnangutega
Viited https://en.wikipedia.org/wiki/dijkstra%27s_algorithm http://en.wikipedia.org/wiki/a*_search_algorithm http://en.wikipedia.org/wiki/d* https://docs.google.com/viewer?a=v&q=cache:hkgzq7g5-rkj:idmlab.org/bib/abstracts/papers/aaai02b.pdf+&hl=en&gl=ee&pid=bl&srcid=adgeesjo5wglkf3asu o9zlah8zbzrpu8uwfr8sjd6l6fuijs20aoakctzugwupqi7wpu3f48v1- WeGENOzOxtuUikPrasrP4EMdvJsBthoakmXLj0Ye3lyHuxxtkNSxjxIKmUojwYO8q&sig=AHIEtb R-qOF2hhTkhJn-levIF8GIkPceoA (D* lite, Sven Koenig, Maxim Likhachev) http://www.cs.princeton.edu/courses/archive/spr06/cos423/handouts/epp%20shortest%20path %20algorithms.pdf http://en.wikipedia.org/wiki/perlin_noise http://webstaff.itn.liu.se/~stegu/tnm022-2005/perlinnoiselinks/perlin-noise-math-faq.html http://en.wikipedia.org/wiki/simplex_noise http://webstaff.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf http://www.dfpug.de/loseblattsammlung/online/workshop/design_patterns/sonstiges.htm http://en.wikipedia.org/wiki/cellular_automata
Küsimused