Emne - Spillprogrammering - IMT3603
Spillprogrammering
Om
Om emnet
Faglig innhold
Forelesningstemaene vil fokusere på det studentene trenger å kunne for å komme videre i utvikling av spill ved hjelp av moderne teknologi. Temaene kan blant annet omfatte:
- Design patterns
- Grafikk
- Fysikk i spill
- Karakterutvikling
- Animasjon
- Game-spesifikk AI
- Implementering av spillmekanikk
- Game production process
- Prosjektledelse i team
- Memory management
- Algorithm efficiency
- Avanserte programmeringsteknikker
Læringsutbytte
Ved fullført emne har studentene:
Kunnskap
Studentene kan:
- forklare arkitekturen og kjerne-subsystemene i moderne game engines (rendering, physics, input, animation, scripting, asset pipeline)
- beskrive hvordan vanlige design patterns (component-based design, state machines, event systems, ECS) brukes i game programming
- forklare hvordan version control og continuous integration / continuous delivery (CI/CD) støtter game development workflows
- diskutere typiske tilnærminger til game-spesifikk AI (f.eks. finite state machines, behaviour trees, navigation) og deres innvirkning på gameplay
- analysere sosiale, kulturelle og etiske problemstillinger i game development, inkludert representasjon, player well-being, monetisation models og online behaviour
Ferdigheter
Studentene kan:
- designe, implementere og iterativt forbedre et lite, men komplett dataspill som del av en gruppe
- estimere arbeidsmengden som kreves for å implementere ulike funksjoner i et dataspill
- bruke project management tools til å planlegge og følge opp utviklingsarbeidet
- integrere og håndtere assets (graphics, audio, animation) og implementere grunnleggende UI/UX-flows, inkludert rask GUI prototyping av interaksjoner
- stille fokuserte, kritiske spørsmål om spill, spillmekanikk og utviklingsprosessen, og bruke svarene til å styre design og implementasjon
Generell kompetanse
Studentene kan:
- samarbeide effektivt i et development team, inkludert ta roller, håndtere avhengigheter og reflektere over gruppedynamikk og kommunikasjon
- gi og motta spesifikk, konstruktiv kritikk av game design, code og player experience på en profesjonell måte
- dokumentere spillet og utviklingsprosessen (design documents, technical notes, changelogs) og presentere resultatene både skriftlig og muntlig
- reflektere over egne styrker og svakheter som game programmers og gruppemedlemmer, og identifisere konkrete steg for videre profesjonell utvikling
Dette er et gruppearbeid, og en vesentlig del av læringsutbyttet er knyttet til å arbeide i gruppe og å kunne avgrense og estimere tiden det tar å designe og implementere et spill.
Læringsformer og aktiviteter
- Forelesninger
- Øvinger
- Prosjektarbeid
Tilleggsinformasjon: Studentene vil arbeide i grupper for å utvikle et spill. Øvinger i timene og forelesninger vil være knyttet til gjeldende fase i utviklingsprosessen.
Mer om vurdering
Vurderingsformer: Én større prosjektoppgave, som inkluderer jevnlige presentasjoner av framdrift, en video som viser gameplay av det ferdige produktet, samt en videobeskrivelse av koden som er utviklet. I tilfeller der grupper bryter sammen og ikke klarer å samarbeide, vil studentene få en muntlig eksamen for å vurdere deres ferdigheter og læringsutbytte.
Kontinuasjon: Ingen
Spesielle vilkår
Krever opptak til studieprogram:
Data - Ingeniørfag (BIDATA) - enkelte retninger
Programmering (BPROG)
Anbefalte forkunnskaper
Kursmateriell
Nettbasert materiale og tutorials. Anbefalt litteratur vil bli oppgitt ved kursstart.
Studiepoengreduksjon
| Emnekode | Reduksjon | Fra |
|---|---|---|
| IMT3601 | 7,5 sp | Høst 2022 |
Fagområder
- Informasjonsteknologi og informatikk