IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):AI i computerspil (Tirsdag kl. 13 - 19) 
Kursusnavn (engelsk):AI in Computer Games 
Semester:Efterår 2001 
Udbydes under:cand. it, softwareudvikling (swu) 
Omfang i ECTS:7,50 
Kursussprog:Dansk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:10 
Forventet antal deltagere:
Maks. antal deltagere:200 
Formelle forudsætninger:Grundlæggende programmering (kan ikke følges sideløbende) samt programmeringserfaring via et andet programmeringskursus (dispensation for dette kan søges hos de kursusansvarlige), matematik på niveau A eller tilsvarende.

Da kurset spænder vidt, forventes det, at de studerende arbejder med materialet, er velforberedte og er rede til at løse større implementationsopgaver. Kendskab til flere programmeringssprog og computergrafik (2D/3D) vil være en fordel. 
Læringsmål:Kurset har to mål:

  • at introducere højniveau programmeringssprog til at klare strukturelt besværlige problemer.
  • at give indsigt i 3D computergrafik og andre teknikker til pilprogrammering.


Efter kurset vil de studerende:

  • have kendskab til Haskell.
  • have kendskab til C++.
  • have kendskab til 3D grafik.
  • kunne implementere mindre oversættere.
  • kunne implementere mindre spil.
  • kunne implementere spil-AI (Atificial Intelligence).
  • have generelt kendskab til spilteknologi.

De nævnte emner vil blive introduceret i det omfang der er nødvendigt for at kunne løse de konkrete opgaver, og der er derfor ikke tale om et tilbundsgående kursus i Haskell, C++, 3D grafik, e.t.c.  
Fagligt indhold:Grundlæggende er moderne computerspil programmer som alle andre, men de er underlagt specielle vilkår - der er krav til indhold og hastighed. Disse to krav hiver i hver sin retning; forbrugeren vil gerne opleve fascinerende visuelle effekter og 3D verdener fyldt med NPC¹er (Non Player Characters) udstyret med anvanceret AI, men det er begrænset, hvor meget processorkraft der kan afses til begge dele, hvis der skal genereres 60 frames i sekundet.

Dette kalder på effektiv programmering: På bit-niveau vil hver CPU instruktion sparet med hensyn til grafikken give en ekstra CPU instruktion til AI¹en og omvendt. På et strukturelt niveau er det ofte store datamængder, der behandles og hvis en algoritme kan udskiftes med en mere avanceret, men med en bedre tidskompleksitet, kan det betyde store besparelser.


Dette kursus vil tage udgangspunkt i et spil, der skal udvikles i løbet af kurset. Forskelligartede teknologier vil blive introduceret og implementeret, som de får relevans for spillet, blandt andet:

  • Introduktion til Visual C++ og funktionsprogrammering i sproget Haskell.
  • Parsning og oversætterteknik i Haskell.
  • Spilalgoritmer og -strukturering i C++.
  • 3D grafik (OpenGL) i C++.


Det praktiske mål med kurset er, at de studerende i grupper vil få implementeret følgende bestanddele:

  • En oversætter (fra et AI-beskrivende højniveausprog til et AI lavniveausprog).
  • En fortolker til AI lavniveausproget.
  • En spil-engine (samme for alle grupper).
  • En 3D-engine.

Det er tanken, at de udviklede spil vil være indbyrdes kompatible, således at de vil kunne spille mod hinanden.
 
Læringsaktiviteter:

Forelæsninger og øvelser. 

Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), 13-skala, Intern censur

6 afleveringsopgaver og mundtlig eksamen.



Kurset kan evt. følges op af et 4-ugers projekt.

 

Litteratur udover forskningsartikler:Noter