Matematik for Spiludviklere - Forår 2025
Repo for MSU1 ved VIA
Kursusinformation¶
- Kursusansvarlig: Lektor Richard Brooks, rib@via.dk
- 5 ECTS (European Credit Transfer System), svarende til 130 timers arbejde
- 9 sessioner, hver med en varighed på 4 lektioner, starter i uge 6. Hertil kommer online videomateriale samt 3 x 4 lektioner til projektarbejde.
- Bachelor-niveau kursus - kurset er fagligt udfordrende
- Karakter: 7-trinsskala
- Bedømmelsesform: 20 minutters mundtlig eksamen med afsæt i gruppeprojekt (se eksamensbeskrivelse i menuen til venstre)
Kursusorganisering¶
Kurset er planlagt til at starte i uge 6 og vil blive afholdt om mandagen fra 9:00 til 12:00 i jeres lokale. Generelt består hver session af fire aktiviteter:
- Inden undervisningen skal du have set videoerne fra den aktuelle session. Dette udgør som minimum din forberedelse til hver session. Hertil kan du også læse i bogen.
- Jeg gir en kort recap af de væsentligste punkter for teorien
- Derefter arbejder I på øvelserne.
- Vi gennemgår sammen øvelserne og diskuterer løsninger.
Der er ingen obligatoriske opgaver, men det anbefales kraftigt at arbejde med øvelserne for hver session. Når vi mødes, er fokus derfor primært på praktisk arbejde og ikke så meget på teori. Det skal I gerne have styr på inden vi mødes.
Kursusindhold og læringsmål¶
Kurset vil hovedsageligt handle om det fagområde, man kalder Lineaær Algebra. Lineær Algebra er en gren af matematikken, der beskæftiger sig med vektorer og lineære transformationer mellem vektorrum. Lineær Algebra er en af de mest grundlæggende discipliner inden for matematikken og har mange anvendelser inden for naturvidenskab, ingeniørvidenskab og datalogi - og i særdeleshed inden for spiludvikling.
Læringsmål
- Lineær algebra og spiludvikling: Forstå de grundlæggende begreber inden for lineær algebra, herunder vektorrum, matrixoperationer og transformationer, og hvordan disse anvendes i spiludvikling, fx til modellering af 3D-miljøer og karakterbevægelser.
- Vektorer og matricer: Beskriv og analyser problemer i spiludvikling ved hjælp af vektorer og matricer. Forstå deres egenskaber og anvendelser i opgaver som transformationer, kollisionsdetektion og fysiksimuleringer.
- 3D-transformationer: Lær at implementere og analysere 3D-transformationer såsom skalering, rotation og translation ved brug af matricer i spilgrafik og fysikmotorer.
- Kamerabevægelser og perspektiv: Forstå, hvordan vektorrum og matrixoperationer bruges til at modellere kamerabevægelser og perspektivprojektioner i 3D-spil.
- Egenværdiproblemer og optimering: Lær at anvende egenværdiproblemer til at forstå objektdeformation, fysiksimuleringer og optimeringsproblemer inden for spil-AI.
- Ortogonalitet og geometriske transformationer: Undersøg ortogonalitetens rolle i kameraprojektioner, lysmodeller og kollisionsdetektion i 3D-rum, samt forstå betydningen af determinanter i geometriske transformationer.
- Matematisk problemløsning: Udvikl evnen til at anvende matematisk terminologi og symbolsprog til at løse praktiske problemer inden for spiludvikling, såsom optimering af algoritmer til realtidsrendering og AI-adfærd.
- Praktiske anvendelser af lineær algebra: Udvikl kompetencer til at bruge lineær algebra til at skabe realistiske spilmekanikker, optimere grafisk gengivelse og analysere fysiksimuleringer for realistiske spiloplevelser.
- Reelle spilscenarier: Anvend vektorer og matricer i løsningen af konkrete spiludviklingsproblemer, herunder kollisionsdetektion, beregning af kræfter og hastigheder samt optimering af spillets ydeevne.
Ressourcer¶
RDM: 3D Math Primer for Graphics and Game Development, Second Edition, by Fletcher Dunn and Ian Parberry, 2011, ISBN-13: 978-1568817231
Bogen findes i en online version: 3D Math Primer for Graphics and Game Development
Under Generelle ressourcer (til venstre) kan du også finde en PDF version af bogen.
Ikke-sessionsspecifikke ressourcer kan findes her:
Denne mappe er altid tilgængelig i menuen til venstre.
Orientér dig på kursus bogens hjemmeside: 3D Math Primer for Graphics and Game Development
Jeg synes egentlig Freya Holmér's Math for Game Devs er en god ressource. Den falder i 10 dele og dækker meget godt det vi skal igennem. Dette som supplement til bogen og mine videoer.
Men der er rigtig mange gode ressourcer på Youtube. Blot søg efter "Math for Game Developers" og I vil finde en masse gode videoer.
I skal have installeret Python og Jupyter Notebook. Jeg vil tro, at I bliver mest glade for at have det samlet i VS Code. Så I kan installere Python og Jupyter Notebook i VS Code. Følg de guides, der er her til punkt og prikke:
How to set up a Python environment
Og her er en video tutorial: Python How to setup vscode with Jupyter Notebooks to Code
Når I henter Python etc. så husk blot at vælge den nyeste stable version af Python - i videoen er det 3.12., men i skrivende stund er det 3.13.1.