Bakalárska práca sa zaoberá dvomi časťami hernej umelej inteligencie a tými sú hľadanie ciest a rozhodovanie. Pri hľadaní ciest sa bližšie pozrieme na algoritmy A* a Dijkstra. Rozoberieme si ich funkčnosť, využitie a pre každý vytvoríme demo poukazujúce na spôsob akým algoritmy fungujú. V ďalšej časti práce sa pozrieme na dva rozdielne prístupy pri tvorbe rozhodovania - konečné automaty a rozhodovacie stromy. Porovnáme tieto dva prístupy z hľadiska implementačnej náročnosti a škálovateľnosti. Toto dosiahneme napodobením iteratívneho vývojového cyklu, pri ktorom nadizajnujeme základné správanie NPC charakteru s drobnými nedostatkami a po otestovaní sa rozhodneme toto správanie rozšíriť. Na demonštráciu správania charakteru vytvoríme interaktívne demo, predstavujúce prototyp strielačky. V poslednej časti vytvoríme demo, v ktorom budeme demonštrovať správanie dvoch typov charakterov na seba reagujúcich a podnecovaných prostredím za použitia rozhodovacích stromov.
Anotace v angličtině
The bachelor thesis deals with the two parts of the game artificial intelligence, pathfinding and decision making. In the part about pathfinding, we will take a closer look at the A* and Dijkstra algorithms. We will discuss their functionality, usage, and we will demonstrate their approaches while searching for the shortest path. In the second part of the thesis, we will discuss two different approaches to decision making. These approaches are finite state machines and behavior trees. In this part, we will simulate the iterative development process where in the first stage we come up with some basic design of decision making for the character, with some unfinished parts. After testing this character, we will try to modify the mentioned designed behavior. For this demonstration, we will create an interactive demo, similar to a shooter prototype. The last part will demonstrate the behavior of the two types of characters reacting to each other and incited by the environment in which they are operating. All of this will be implemented with the usage of behavioral trees.
Bakalárska práca sa zaoberá dvomi časťami hernej umelej inteligencie a tými sú hľadanie ciest a rozhodovanie. Pri hľadaní ciest sa bližšie pozrieme na algoritmy A* a Dijkstra. Rozoberieme si ich funkčnosť, využitie a pre každý vytvoríme demo poukazujúce na spôsob akým algoritmy fungujú. V ďalšej časti práce sa pozrieme na dva rozdielne prístupy pri tvorbe rozhodovania - konečné automaty a rozhodovacie stromy. Porovnáme tieto dva prístupy z hľadiska implementačnej náročnosti a škálovateľnosti. Toto dosiahneme napodobením iteratívneho vývojového cyklu, pri ktorom nadizajnujeme základné správanie NPC charakteru s drobnými nedostatkami a po otestovaní sa rozhodneme toto správanie rozšíriť. Na demonštráciu správania charakteru vytvoríme interaktívne demo, predstavujúce prototyp strielačky. V poslednej časti vytvoríme demo, v ktorom budeme demonštrovať správanie dvoch typov charakterov na seba reagujúcich a podnecovaných prostredím za použitia rozhodovacích stromov.
Anotace v angličtině
The bachelor thesis deals with the two parts of the game artificial intelligence, pathfinding and decision making. In the part about pathfinding, we will take a closer look at the A* and Dijkstra algorithms. We will discuss their functionality, usage, and we will demonstrate their approaches while searching for the shortest path. In the second part of the thesis, we will discuss two different approaches to decision making. These approaches are finite state machines and behavior trees. In this part, we will simulate the iterative development process where in the first stage we come up with some basic design of decision making for the character, with some unfinished parts. After testing this character, we will try to modify the mentioned designed behavior. For this demonstration, we will create an interactive demo, similar to a shooter prototype. The last part will demonstrate the behavior of the two types of characters reacting to each other and incited by the environment in which they are operating. All of this will be implemented with the usage of behavioral trees.
Nastudujte vývojový framework Unity 3D a v rámci teoretické části jej popište.
Popište způsoby využití rozhodovacích algoritmů a algoritmů pro vyhledání cesty v rámci nasazení v herních aplikacích.
Teoreticky definujte způsob funkce alespoň 2 rozhodovacích algoritmů a algoritmů pro vyhledání cesty.
Prakticky implementujte jednoduchou demo aplikaci vizualizující způsob práce vybraných algoritmů.
Dále implementujte rozšířené demo, kde bude ukázka praktického nasazení vybraných algoritmů v jednoduché herní aplikaci disponující herní scénou.
Zásady pro vypracování
Nastudujte vývojový framework Unity 3D a v rámci teoretické části jej popište.
Popište způsoby využití rozhodovacích algoritmů a algoritmů pro vyhledání cesty v rámci nasazení v herních aplikacích.
Teoreticky definujte způsob funkce alespoň 2 rozhodovacích algoritmů a algoritmů pro vyhledání cesty.
Prakticky implementujte jednoduchou demo aplikaci vizualizující způsob práce vybraných algoritmů.
Dále implementujte rozšířené demo, kde bude ukázka praktického nasazení vybraných algoritmů v jednoduché herní aplikaci disponující herní scénou.
Seznam doporučené literatury
DAGRACA, Micael. Practical Game AI Programming. Birmingham, B3 2PB, UK: Packt Publishing, 2017. ISBN 978-1-78712-281-9.
SMED, Jouni a Harri HAKONEN. Algorithms and networking for computer games. Second edition. Hoboken, NJ, USA, 2017. ISBN 978-111-9259-824.
MILLINGTON, Ian a John David FUNGE. Artificial intelligence for games. 2nd ed. Burlington, MA: Morgan Kaufmann/Elsevier, c2009. ISBN 978-0-12-374731-0.
GONZÁLEZ CALERO, Pedro A. a Marco Antonio GÓMEZ-MARTÍN. Artificial Intelligence for Computer Games. New York: Springer, [2011]. ISBN 978-1-4419-8187-5.
KIRBY, Neil, Clifford PETERS a Aung Sithu KYAW. Introduction to game AI. Fourth Edition. Boston: Course Technology/Cengage Learning, c2011. ISBN 978-1-59863-998-8.
OKITA, Alex, Clifford PETERS a Aung Sithu KYAW. Learning C# programming with Unity 3D. Fourth Edition. Boca Raton: CRC Press, [2015]. ISBN 978-1-4665-8652-9.
Seznam doporučené literatury
DAGRACA, Micael. Practical Game AI Programming. Birmingham, B3 2PB, UK: Packt Publishing, 2017. ISBN 978-1-78712-281-9.
SMED, Jouni a Harri HAKONEN. Algorithms and networking for computer games. Second edition. Hoboken, NJ, USA, 2017. ISBN 978-111-9259-824.
MILLINGTON, Ian a John David FUNGE. Artificial intelligence for games. 2nd ed. Burlington, MA: Morgan Kaufmann/Elsevier, c2009. ISBN 978-0-12-374731-0.
GONZÁLEZ CALERO, Pedro A. a Marco Antonio GÓMEZ-MARTÍN. Artificial Intelligence for Computer Games. New York: Springer, [2011]. ISBN 978-1-4419-8187-5.
KIRBY, Neil, Clifford PETERS a Aung Sithu KYAW. Introduction to game AI. Fourth Edition. Boston: Course Technology/Cengage Learning, c2011. ISBN 978-1-59863-998-8.
OKITA, Alex, Clifford PETERS a Aung Sithu KYAW. Learning C# programming with Unity 3D. Fourth Edition. Boca Raton: CRC Press, [2015]. ISBN 978-1-4665-8652-9.
Přílohy volně vložené
-
Přílohy vázané v práci
-
Převzato z knihovny
Ne
Plný text práce
Přílohy
Posudek(y) oponenta
Hodnocení vedoucího
Záznam průběhu obhajoby
Student v krátké prezentaci seznámil komisi s výsledky své práce.
Po přečtení posudků vedoucího a oponenta byly zodpovězeny dotazy z posudků.
Následovala diskuze, ve které byly položeny následující dotazy:
dr. Král: Jakým způsobem byly řešeny příkazy např. "zaútoč" nebo "skryj se"?
dr. Král: Jak detekuje postava hráče?
dr. Král: Všechny použité funkce jsou Vaším vlastním dílem?