Skriv ut Forsiden > Studier > Bachelor > Spillprogrammering > Programmering av spillmotorer

Programmering av spillmotorer, PG591

Studiepoeng
10

Emneansvarlig
Tomas Sandnes

Tilsynssensor
Kjetil Svarstad

Hensikt
Spillutvikling foregår innenfor rammene av spillmotorer. I PG591 skal studentene lære hvordan en motor er satt sammen, og videreutvikle sine C++ kunnskaper til det som er nødvendig for å bygge en motor i C++.

Forutsetninger
Gode basisferdigheter i C++ programmering, gjennom emnet "PG330 Programmering i C++", eller tilsvarende.

Kompetansemål
Studentene skal lære hvordan en spillmotor er bygget opp. Etter fullført kurs skal studentene:

  • kunne programmere egne loggsystemer.
  • kjenne til Design Patterns som brukes mye innen spillindustrien, bl.a. Singleton.
  • kjenne til forskjellige memory management/garbage collection modeller for C++.
  • kjenne til function pointers, callback functions og functors, og i hvilke sammenhenger disse benyttes.
  • kjenne til hvordan man kan bygge opp en kernel/gameloop, og være i stand til å programmere sin egen, basert på STL lister og objekter med polymorfi/arv.
  • kunne programmere timing systemer med nøyaktighet ned til millisekund nivå eller lavere, ved hjelp av 3. parts biblioteker.
  • kjenne til både "event-driven" og "state snapshot" baserte input modeller, samt fordeler og ulemper ved begge løsningene, og kunne implementere disse i egen spillmotor.
  • kjenne til metoder for serialisering av (spill-)data.
  • kjenne til client-server og peer-to-peer kommunikasjon over TCP/IP (TCP og UDP), og kunne implementere en klient-tjener løsning som del av egen spillmotor.
  • kjenne til 2D grafikksystemer, og hvordan de selv programmerer den nødvendige kobling mellom spillmotor og 3. parts 2D system.
  • kjenne til forskjellige 3. parts api'er/systemer for rendering av 3D grafikk.
  • kjenne til 3. parts api'er/systemer for håndtering av lyd, og kjenne teorien for hvordan de selv implementerer posisjonell audio.

Gjennom semesteret vil temaene over gå igjen som øvingsoppgaver og innleveringer.

Gjennomføring
Kurset gjennomføres med 12 forelesninger av ca 2 timer og 12 lærerstyrte øvinger av ca 3 timer. Øvingene er ikke obligatoriske, men for å oppnå kompetansemålene forventes det at studentene fullfører øvingsoppgavene på egenhånd der øvingstimene ikke strekker til.

Vurdering skjer gjennom en mappeoppgave. Mappen består av 2 gruppeinnleveringer underveis i semesteret, og en individuell avsluttende prøve. Mappen vurderes som helhet, ikke med spesifisert vekting per element.

Pensum
Pensum er forelesningsmaterialet og nødvendige hjelpemidler for å gjennomføre øvingsopplegget. Materiellet gjøres tilgjengelig for studentene fortløpende gjennom kurset.

Karakterskala
Bokstavkarakter

Vitnemålstekst
Studentene har fått kunnskaper om modellene bak spill og spillmotorer og hvordan disse brukes for å utvikle spesifikke spill. De har også øvet ferdigheter innen enkel praksis på utvikling basert på slike modeller, i form av øvingsoppgaver og innleveringer innen memory management, error handling, timing, networking, input og output.

Vurdering
Vekting (%): 100%

Vurderingstype
Mappevurdering

Semester
4. semester, vår

TILBAKE TIL SPILLPROGRAMMERING

Med forbehold om endringer.