Rust in Aktion: Spieleprogrammierung und Parallelität

Die Teilnehmendenanzahl im Modul ist begrenzt. Die empfohlenen Vorkenntnisse für die Belegung sind dringend zu beachten.

Belegbar Wintersemester
ECTS-Punkte 10 (ca. 300 Stunden)
Fachgebiet Praktische Informatik

Ziel des Moduls

Dieses Modul versetzt Sie in die Lage, sichere und performante Anwendungen in der Systemprogrammiersprache Rust zu entwickeln. 

Sie verstehen das Ownership- und Borrowing-Modell von Rust und können es gezielt einsetzen, um Speicherfehler und Data Races bereits zur Kompilierzeit auszuschließen. Sie beherrschen fortgeschrittene Sprachkonzepte wie Generics, Traits, Closures und Iteratoren und können diese idiomatisch anwenden. Sie sind in der Lage, ein eigenständiges Spielprojekt (Asteroids-Klon) mit der Macroquad-Bibliothek zu entwickeln, einschließlich Game Loop, Kollisionserkennung und A*-Pathfinding. Sie können rechenintensive Spiellogik mit Threads und der Rayon-Bibliothek parallelisieren und dabei das Gather/Modify-Pattern anwenden. Am Ende des Moduls präsentieren Sie einen spielbaren Prototypen („First Playable“) und verfügen damit über fundierte Kenntnisse in moderner Systemprogrammierung sowie eine vorführbare Demo für Ihr Portfolio.

Inhalte des Moduls
  • Grundlagen der Rust-Programmierung: Cargo, Datentypen, Kontrollstrukturen, Funktionen
  • Ownership, Borrowing, Lifetimes und idiomatische Rust-Programmierung (Camouflage Programming)
  • Datenstrukturen, Enums, Pattern Matching, Generics, Traits, Option und Result
  • Funktionale Programmierung: Closures, Iteratoren und itertools
  • Grafikprogrammierung mit Macroquad: Sprites, Sound, Input, Camera2D, egui
  • Smart Pointer (Box, Rc, RefCell) und Trait Objects
  • Parallele Programmierung: Threading, Channels, Arc/Mutex, Rayon, Gather/Modify-Pattern
  • Spieleprogrammierung: Game Loop, Kollisionserkennung, A*-Pathfinding, Asteroids-Projekt
  • Optional: Tokio/Axum Webserver, Testen/Dokumentieren, Cargo Deepdive, unsafe/FFI/Macros
Umfang des Moduls
  • Screencasts mit begleitendem Source Code
  • Projektarbeit mit zwei Meilensteinen (Asteroids-Spielprojekt)
  • Beratungstermine (Einzel- oder Sammeltermine)
  • Meilensteinpräsentationen im Plenum
Empfohlene Vorkenntnisse

Grundkenntnisse in einer Programmiersprache (idealerweise C, C++ oder Java) werden empfohlen. 

Der Kurs richtet sich an Studierende, die nicht zwingend einen informatischen Erststudiengang absolviert haben müssen. Für Studierende ohne C/C++-Hintergrund ist ein optionaler Exkurs zum Speichermodell (Stack, Heap, Cache) im Kurs enthalten. Ebenso werden optionale Screencasts zu grundlegenden Konzepten der Spieleprogrammierung angeboten. Voraussetzung sind hier Mathematikenkenntnisse insbesondere lineare Algebra auf Abiturniveau.

Kursdauer
1 Semester

Kosten
zur Kostenübersicht Einzelmodule

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an VCRP/Panopto übermittelt. Weitere Informationen dazu finden Sie hier.

back-to-top nach oben