Pelitekoälyn päätöksenteko
Sillanpää, Janne (2020)
Sillanpää, Janne
2020
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2020120225635
https://urn.fi/URN:NBN:fi:amk-2020120225635
Tiivistelmä
Opinnäytetyössä tutkittiin pelitekoälyä ja sen päätöksentekoa. Tarkoituksena oli antaa selkeä kuva erilaisista päätöksentekotekniikoista sekä selostaa, miten näitä tekniikoita on sovellettu erilaisissa peleissä. Selitykset tapahtuivat teoriatasolla.
Työ aloitettiin ensiksi selittämällä mitä eroa on akateemisella tekoälyllä ja pelitekoälyllä. Tässä työssä keskityttiin pelitekoälyyn ja akateeminen jätettiin kokonaan pois. Tämän lisäksi selitettiin mikä on tekoälyn tarkoitus peleissä ja mitä päätöksenteko tarkoittaa tässä yhteydessä. Tärkeimmät asiat pelitekoälyn toteutukselle olivat hauskuus ja niin sanottu illuusio älykkyydestä.
Tekniikat, jotka käytiin läpi tämän työn aikana, olivat yksinkertainen päätöksenteko, äärelliset tilakoneet, käytöspuut, tavoitteellinen tehtäväsuunnittelija, hierarkkiset tehtäväverkostot, ohjaajajärjestelmä, Monte Carlo -menetelmä, hyötypohjainen päätöksenteko ja viimeiseksi neuroverkot.
Yksinkertainen päätöksenteko on helpoin tapa toteuttaa päätöksenteko. Tilakoneet ovat seuraava askel eteenpäin yksinkertaisesta päätöksenteosta ja ovat ensimmäinen oikea tekniikka, jota monet aloittelevat ohjelmoijat käyttävät. Se koostuu erilaisista tiloista ja niiden vaihtelusta. Käytöspuut ovat suosittu tekniikka nykyajan peleissä niiden joustavuuden ja helpon toteutuksen takia. Tavoitteellinen tehtäväsuunnittelija eroaa tilakoneista ja käytöspuista siinä, että sen sijaan, että se valitsisi suoraan tietyistä tiloista tai käytöksistä, se valitseekin useamman toimen, jotka siten johtavat tiettyyn lopputulokseen. Hierarkkiset tehtäväver-kostot on hieman muokattu versio tavoitteellisesta tehtäväsuunnittelijasta, joka luotiin ratkaisemaan suurimpia ongelmia tehtäväsuunnittelijassa.
Ohjaajajärjestelmä hallitsee pelien kulkua suoraan, ja sitä hyödynnetään yhdessä muiden tekniikoiden kanssa. Monte Carlo -menetelmä on toimiva ratkaisu erilaisissa strategiapeleissä, joissa tekoälylle voidaan antaa paljon aikaa miettimiseen. Hyötypohjainen päätöksenteko on sekoitus käytöspuusta ja tehtäväsuunnittelijasta. Sen avulla voidaan luoda tekoäly, jonka toiminta on monimutkaisempaa kuin käytöspuu, mutta kehittäjällä on enemmän hallintaa sen toiminnasta kuin tehtäväsuunnittelijassa. Neuroverkot ovat koneoppimistekniikka, jota harvoin käytetään peleissä. Se eroaa täysin edellä mainituista tekniikoista toiminnaltaan siinä, että se on täysin autonomisesti päättävä tekniikka.
Nämä tekniikat valittiin niiden mielenkiintoisuuden ja tärkeyden perusteella. Tavoite oli antaa ensiksi lyhyehkö kuvaus eri tekniikoista ja sen jälkeen yksi peliesimerkki kustakin tekniikasta. Nämä pelit ovat tärkeitä merkkipaaluja pelitekoälylle. Selityksissä käytiin tekniikoiden hyviä sekä huonoja puolia läpi. Työn aikana todettiin, että kaikista tekniikoista löytyi molempia, koska täydellisiä tekniikoita ei ole vielä keksitty. Peliesimerkeissä annettiin kuva siitä, miksi kehittäjät valitsivat juuri tämän tekniikan ja kuinka se hyödytti heidän peliään.
Työn loppupuolella pohdittiin eri tekniikoita ja annettiin niistä tulevaisuuden ennustuksia. Kaikki käydyt tekniikat tulevat olemaan tärkeitä myös tulevaisuudessa, mutta varsinkin neuroverkkojen hyödyntäminen peleissä mahdollisesti lisääntyy. Nämä ennustukset perustuivat kokemuksiin sekä työn aikana käytyihin materiaaleihin.
The subject of this Bachelor’s thesis was Decision Making in Game Artificial Intelligence. The purpose was to go through different decision-making techniques and explain what they are and how have they been used in different games. These explanations were more on the theoretical side and did not delve into actual implementation. The thesis began by explaining the difference between academic AI and game AI. In addition to this, it was explained what decision-making means in this context. The most important things for Game AI are fun and the so called “Illusion of intelligence”.
The techniques that were explained in this thesis were: simple decision making, finite state machine, behavior trees, goal-oriented action planning, hierarchical task networks, director system, Monte Carlo -method, utility AI and neural networks.
Simple decision making is the easiest one to implement. State machines are the next step forward in simple decision making. They are often the first proper technique many novice programmers use. They consist of different states and their changes. Behavior trees are a popular technique in modern games, because of their flexibility and ease of implementation. Goal-oriented action planning differs from state machines and behavior trees in that, instead of choosing directly from certain states or actions, it chooses a certain number of different actions, that lead to a certain outcome. Hierarchical task networks is a slightly modified version of goal-oriented action planning. It was created to solve the biggest problems of goal-oriented action planning.
The director system directly controls the flow of the game and it is often utilized in conjunction with other techniques. The Monte Carlo -method is a solution used in various strategy games where artificial intelligence can be given a lot of time to think. Utility based decision making is a mixture of behavior trees and planners like goal-oriented action planning. It can be used to create an artificial intelligence that is more complex than a behavior tree, but the developer retains more control over it, than in a planner. Neural networks are a machine learning technique rarely used in games. It differs completely from the above-mentioned techniques in that, it is a completely autonomous decision-making technique.
These techniques were chosen by their importance and interest. The goal was to first give a short description of the different techniques and then a single game example for every technique. These games are important milestones for game AI. Explanations went through both good and bad sides to every technique. During this thesis it was found out that there is no “perfect” technique. The game examples gave a picture of why developers chose a specific technique and how it benefited their game. Lastly different techniques were discussed, and predictions were given about their future. These predictions were based on experiences and sources that were used to create this thesis.
Työ aloitettiin ensiksi selittämällä mitä eroa on akateemisella tekoälyllä ja pelitekoälyllä. Tässä työssä keskityttiin pelitekoälyyn ja akateeminen jätettiin kokonaan pois. Tämän lisäksi selitettiin mikä on tekoälyn tarkoitus peleissä ja mitä päätöksenteko tarkoittaa tässä yhteydessä. Tärkeimmät asiat pelitekoälyn toteutukselle olivat hauskuus ja niin sanottu illuusio älykkyydestä.
Tekniikat, jotka käytiin läpi tämän työn aikana, olivat yksinkertainen päätöksenteko, äärelliset tilakoneet, käytöspuut, tavoitteellinen tehtäväsuunnittelija, hierarkkiset tehtäväverkostot, ohjaajajärjestelmä, Monte Carlo -menetelmä, hyötypohjainen päätöksenteko ja viimeiseksi neuroverkot.
Yksinkertainen päätöksenteko on helpoin tapa toteuttaa päätöksenteko. Tilakoneet ovat seuraava askel eteenpäin yksinkertaisesta päätöksenteosta ja ovat ensimmäinen oikea tekniikka, jota monet aloittelevat ohjelmoijat käyttävät. Se koostuu erilaisista tiloista ja niiden vaihtelusta. Käytöspuut ovat suosittu tekniikka nykyajan peleissä niiden joustavuuden ja helpon toteutuksen takia. Tavoitteellinen tehtäväsuunnittelija eroaa tilakoneista ja käytöspuista siinä, että sen sijaan, että se valitsisi suoraan tietyistä tiloista tai käytöksistä, se valitseekin useamman toimen, jotka siten johtavat tiettyyn lopputulokseen. Hierarkkiset tehtäväver-kostot on hieman muokattu versio tavoitteellisesta tehtäväsuunnittelijasta, joka luotiin ratkaisemaan suurimpia ongelmia tehtäväsuunnittelijassa.
Ohjaajajärjestelmä hallitsee pelien kulkua suoraan, ja sitä hyödynnetään yhdessä muiden tekniikoiden kanssa. Monte Carlo -menetelmä on toimiva ratkaisu erilaisissa strategiapeleissä, joissa tekoälylle voidaan antaa paljon aikaa miettimiseen. Hyötypohjainen päätöksenteko on sekoitus käytöspuusta ja tehtäväsuunnittelijasta. Sen avulla voidaan luoda tekoäly, jonka toiminta on monimutkaisempaa kuin käytöspuu, mutta kehittäjällä on enemmän hallintaa sen toiminnasta kuin tehtäväsuunnittelijassa. Neuroverkot ovat koneoppimistekniikka, jota harvoin käytetään peleissä. Se eroaa täysin edellä mainituista tekniikoista toiminnaltaan siinä, että se on täysin autonomisesti päättävä tekniikka.
Nämä tekniikat valittiin niiden mielenkiintoisuuden ja tärkeyden perusteella. Tavoite oli antaa ensiksi lyhyehkö kuvaus eri tekniikoista ja sen jälkeen yksi peliesimerkki kustakin tekniikasta. Nämä pelit ovat tärkeitä merkkipaaluja pelitekoälylle. Selityksissä käytiin tekniikoiden hyviä sekä huonoja puolia läpi. Työn aikana todettiin, että kaikista tekniikoista löytyi molempia, koska täydellisiä tekniikoita ei ole vielä keksitty. Peliesimerkeissä annettiin kuva siitä, miksi kehittäjät valitsivat juuri tämän tekniikan ja kuinka se hyödytti heidän peliään.
Työn loppupuolella pohdittiin eri tekniikoita ja annettiin niistä tulevaisuuden ennustuksia. Kaikki käydyt tekniikat tulevat olemaan tärkeitä myös tulevaisuudessa, mutta varsinkin neuroverkkojen hyödyntäminen peleissä mahdollisesti lisääntyy. Nämä ennustukset perustuivat kokemuksiin sekä työn aikana käytyihin materiaaleihin.
The subject of this Bachelor’s thesis was Decision Making in Game Artificial Intelligence. The purpose was to go through different decision-making techniques and explain what they are and how have they been used in different games. These explanations were more on the theoretical side and did not delve into actual implementation. The thesis began by explaining the difference between academic AI and game AI. In addition to this, it was explained what decision-making means in this context. The most important things for Game AI are fun and the so called “Illusion of intelligence”.
The techniques that were explained in this thesis were: simple decision making, finite state machine, behavior trees, goal-oriented action planning, hierarchical task networks, director system, Monte Carlo -method, utility AI and neural networks.
Simple decision making is the easiest one to implement. State machines are the next step forward in simple decision making. They are often the first proper technique many novice programmers use. They consist of different states and their changes. Behavior trees are a popular technique in modern games, because of their flexibility and ease of implementation. Goal-oriented action planning differs from state machines and behavior trees in that, instead of choosing directly from certain states or actions, it chooses a certain number of different actions, that lead to a certain outcome. Hierarchical task networks is a slightly modified version of goal-oriented action planning. It was created to solve the biggest problems of goal-oriented action planning.
The director system directly controls the flow of the game and it is often utilized in conjunction with other techniques. The Monte Carlo -method is a solution used in various strategy games where artificial intelligence can be given a lot of time to think. Utility based decision making is a mixture of behavior trees and planners like goal-oriented action planning. It can be used to create an artificial intelligence that is more complex than a behavior tree, but the developer retains more control over it, than in a planner. Neural networks are a machine learning technique rarely used in games. It differs completely from the above-mentioned techniques in that, it is a completely autonomous decision-making technique.
These techniques were chosen by their importance and interest. The goal was to first give a short description of the different techniques and then a single game example for every technique. These games are important milestones for game AI. Explanations went through both good and bad sides to every technique. During this thesis it was found out that there is no “perfect” technique. The game examples gave a picture of why developers chose a specific technique and how it benefited their game. Lastly different techniques were discussed, and predictions were given about their future. These predictions were based on experiences and sources that were used to create this thesis.