Sök:

AI-motor

Artificiell intelligens för spel


Artificiell intelligens (AI) är en stor del i dagens datorspel. För att få inblick i komplexiteten runt AI i spelutveckling och för att förstå delar som AI består av har detta projekt genomförts. Målet var att skapa en AI-motor från grunden med bra grundplattform som är enkel att bygga vidare på. Innan projektet startade utfördes en förundersökning där olika alternativ för kartrepresentationer och grafsökningsalgoritmer togs fram. Utvecklingen av AI-motorn har haft ett starkt beroende till projektet där en spelmotor utvecklats av Niklas Ekman och Christian Mesch. Detta projekt har utförts enligt den agila systemutvecklingsmetoden Scrum. Ett versionshanteringssystem har använts för att enkelt kunna dela källkod mellan projekten. AI-motorn har utvecklats i C++ och för operativsystemen Ubuntu och OSX. AI-motorn består av fyra huvuddelar; logik, navigering, kommunikation och AI-objekt. Logiken är hjärnan i AI-motorn, navigeringen använder sig av navmesh som kartrepresentation och A*-algoritmen är den grafsökningsalgoritm som har valts. Kommunikation sker mellan AI-motorn och spelmotorn för att kunna dela på funktionalitet. AI-objekten är främst informationsklasser som t.ex. håller reda på antalet registrerade datorstyrda spelare. Valet av metod för kartrepresentation avgjordes av att navmesh enkelt kunde genereras automatiskt med hjälp av verktyg vilket var svårare för de andra alternativen. A* valdes som grafsökningsalgoritm eftersom den gav en korrekt väg med minst antal beräkningar. AI-motorn uppfyller de krav som ställdes innan utvecklingen påbörjades och är en bra grund för att lätt kunna utöka motorn med mer avancerad funktionalitet, men det finns så klart förbättringar som kan göras.  

Författare

Emil Åström

Lärosäte och institution

Mittuniversitetet/Avdelningen för informations- och kommunikationssystem

Nivå:

"Kandidatuppsats". Självständigt arbete (examensarbete ) om minst 15 högskolepoäng utfört för att erhålla kandidatexamen.

Läs mer..