Inhaltsverzeichnis
Details zu den Themen:
Genaue Beschreibungen zu den Themen sind im Bereich Programmierung zu finden, hier geht es lediglich um die Anwendbarkeit im Fachseminar.
Hilfreiche Vorlesungen:
In jedem Themengebiet haben wir hilfreiche Vorlesungen aufgelistet. Wenn du diese nicht mitgemacht hast (oder nicht verstanden), musst du dir das notwendige Wissen zusätzlich zum eigentlichen Thema erarbeiten. Je nach Themengebiet ist das eine Menge Arbeit, wir empfehlen also die Themen nur dann zu wählen, wenn du das Wissen der jeweiligen Vorlesungen schon großteils hast.
Generell ist jedes Modul hilfreich, das praktische Aufgaben zu dem Thema erfordert, wie z.B. Projekte, GBO, Tool & Plugin, etc..
User-Interface:
Besonders Anfängern zu empfehlen, da man sich auch ohne Vorkenntnisse einarbeiten kann und langsamer Fortschritt andere Teams nicht zu sehr aus bremst. Das Thema beinhaltet Menü und HUD Entwicklung mittels libGDX Scene2D.UI.
Hilfreiche Vorlesungen:
Allgemeine Recherche:
- Umgehen mit verschiedenen Auflösungen (Responsive Design)
- Benutzung von LibGDX Scene2D.
Vorschläge für Spezialgebiete:
- Eingabeverfahren (Maus, Keyboard, Gamepad, Touchscreen) für Navigation Texteingabe.
- Sehr Komplexe UI’s (z.B. bei RPGs) / Mögliche Lösungswege
- Schriftarten zeichnen (Kerning, Outlining, Schatten) und Spezielle Zeichenmethoden (z.B. Signed Distance Field oder Alpha Tested Magnification.. beides von Valve).
Gamelogik
Für dieses Thema ist etwas Erfahrung besonders für Aufbau und Herangehensweise hilfreich.
Hilfreiche Vorlesungen:
- Grafische Benutzeroberflächen (Klassen, Listener Pattern, MVC)
- Lineare Algebra (Vektoren)
Allgemeine Recherche:
- Game Engine Grundgerüst + Main Loop.
Vorschläge für Spezialgebiete:
- Entity Component System vs Klassisches Entity System (Vererbung)
- + Lifecycle Management: Speicher vs CPU
- Scripted Events (In Game Movies, Kamerafahrten, etc.)
- Input: QuickTime Events, Buttoncombos, Navigation, etc intuitiv gestalten.
- Abhängigkeitsmodelle (z.B. Point & Click, Trigger, Puzzle, etc.)
- In Place loading Verfahren (ohne Ladescreen weitere Levelteile laden) und Asset Preprocessing.
Physik
Sicherer Umgang mit der Programmiersprache erforderlich. Da dies oft ein essentieller Part des Spiels ist und früh benötigt wird, sollte man zügig Programmieren können.
Hilfreiche Vorlesungen:
- Lineare Algebra (Vektoren)
- Spieleprogrammierung
Allgemeine Recherche:
- 2D Physik mit Box2D
Vorschläge für Spezialgebiete:
- Probleme in der Hochgeschwindigkeitsphysik
- Fluid Simulation
- Swept Collision Detection
- Joints & Constraints
Rendering
Dieses Thema erfordert etwas Erfahrung im Bereich Computergrafik. Es beinhaltet das Rendern der Welt, Items, Partikeleffekte, Animationen, etc.
Hilfreiche Vorlesungen:
Allgemeine Recherche:
- Keine, da die Spezielgebiete umfangreich genug sind.
Vorschläge für Spezialgebiete:
- Qualität:
- Partikelsysteme
- Spezialeffekte (Blur, etc.)
- Fog of War
- Cell Shading
- etc.
- Quantität:
- Effizientes Rendern
- Tiled Map Rendering
- Texture Packing
- Rendering Reihenfolge
- etc.
Netzwerk
Das wohl schwierigste Thema und es steht nur dann zur Auswahl, wenn auch ein Netzwerkspiel entwickelt wird. Hierfür ist Vorwissen im Bereich Thread-Safety und Netzwerkkommunikation wichtig und sicherer Umgang mit der Programmiersprache ist unumgänglich.
Hilfreiche Vorlesungen:
Allgemeine Recherche:
- Synchronisation von Daten in Spielen
Vorschläge für Spezialgebiete:
- UDP NAT Punch Through (Hole Punching)
- Datenvolumen:
- Große Datenmengen managen
- Datenvolumen begrenzen
- Deltakompression
- etc.
- Zeitverzögerung:
- Level of Detail im Netzwerk
- Lag Compensation
- Prediction
- etc.
Künstliche Intelligenz
Dies Thema ist zur Zeit noch nicht in der Auswahl, wird aber eventuell bei Interesse (und Erfahrung) auch angeboten.