Vis enkel innførsel

dc.contributor.advisorEidheim, Ole Christian
dc.contributor.authorBakhmadov, Magomed
dc.contributor.authorFridheim, Marius
dc.date.accessioned2020-08-16T16:01:55Z
dc.date.available2020-08-16T16:01:55Z
dc.date.issued2020
dc.identifier.urihttps://hdl.handle.net/11250/2672159
dc.description.abstractBacheloroppgaven er delt inn i en utviklings- og forskningsdel. I utviklingsdelen lager vi et system for Unreal Engine 4 som lar folk ta i bruk maskinlæring for å lage bots. Det er ingen støtte direkte i UE4 for maskinlæring, så vi måtte undersøke og eksperimentere for å finne ut hvordan vi ville få denne kombinasjonen til å fungere. Målet vårt er å gjøre dette så intuitivt som mulig, slik at enhver UE4-utvikler, selv med begrenset kunnskap om maskinlæring, kan bruke dette systemet. Den andre delen av oppgaven er å forske på hvordan vi kan lage forbindelsen mellom UE4 og et maskinlæringsbibliotek, og deretter hvordan vi kan lære opp agenter i en spillmotor som UE4. Vi løste utviklingsdelen av oppgaven vår ved å lage en plugin for UE4. Denne pluginen har en backend skrevet i Python som håndterer alle maskinlærings kalkulasjonene, mens frontend er en Blueprint-klasse som arver fra Controller-klassen i UE4. På denne måten kan vi bruke denne kontrolleren til å bygge på toppen av AIController-klassen i UE4 med ekstra støtte for maskinlæringsfunksjoner og justerbare variabler som kommuniserer med Python-backenden. Fordi vi har opprettet systemet vårt basert på arkitekturen i UE4, kan man ganske enkelt endre kontrolleren eller hjernen til en bot. For forskningsdelen brukte vi forskjellige typer inndata, og forskjellige miljøer for å teste hva som fungerte best i et slikt system. I tillegg prøvde vi å finne ut av den beste måten å trene en maskinlæringsagent i UE4. All denne forskningen er samlet i form av eksempler som viser frem forskjellige måter å bruke systemet på, som brukerne kan bruke som inspirasjon når de oppretter egne agenter. Resultatene våre viser at agentene er i stand til å lære fra forskjellige miljøer, og at det er potensiale for enda bedre resultater gjennom videre eksperimentering med tilstandsrepresentasjonen, justeringer av hyperparametere og Deep Q-Network (DQN) forbedringer. Agentene var i stand til å lære av å bruke bilder som inndata, men en tilstandspresentasjon av håndplukkede verdier ga de beste resultatene.
dc.description.abstractThe bachelor thesis is split into a development and research part. In the development part we create a system for Unreal Engine 4 that lets people create controllers for characters that utilize machine learning to make decisions based on input. There is no support directly from UE4 for machine learning, which meant that we had to research and experiment to figure out how we would make this combination work. Our goal is to make this as intuitive as possible so that any UE4 developer can use this system with limited knowledge about machine learning. The other part of the thesis is to research how we can make the connection between UE4 and a machine learning library, and then how we can go about training and using an agent in a game engine like UE4. We solved the development part of our thesis by creating a plugin for UE4. This plugin has a backend written in Python that handles all the machine learning calculations while the frontend is a Blueprint class that inherits from UE4's controller class. This way we can use this controller to build on top of UE4's AIController with added support for machine learning functions and tweakable variables that communicates with our Python backend. Therefore, because we have created our system based on UE4's architecture, one can simply change the controller or the brain of a bot. For the research part we used different input types as well as different environments to test what worked best in such a system as well as figuring out the best way to train a machine learning agent in UE4. All this research has been compiled into examples showing off different ways to use the system that the user can take inspiration from when creating their own agents. Our results show that the agents are able to learn from different environments, and that there is potential for even better results through further experimentation with the state representation, adjustments to the hyperparameters and additions to the Deep Q-Network (DQN). While the agents were able to learn from using images as input, a state representation of handpicked values yielded the best results.en
dc.publisherNTNU
dc.titleCombining Reinforcement Learning and Unreal Engine's AI-tools to Create Intelligent Bots
dc.typeBachelor thesis


Tilhørende fil(er)

Thumbnail

Denne innførselen finnes i følgende samling(er)

Vis enkel innførsel