Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe
\\ice:2008 | Intelligent Communities for Europe Übersicht Warum Spielentwicklung? Warum XNA? Vorstellung der Praktika Erfahrungen XNA-Programmierung in der Software Engineering Ausbildung2
\\ice:2008 | Intelligent Communities for Europe Warum Spielentwicklung? Durch Vorlesungen erlangen Studierende keine Praxiserfahrung Deshalb Praktika und Abschlussarbeiten –Reale Projekte sind zu umfangreich für akademische Kurse –Eingeschränkte Teamarbeit Lösung: Spielentwicklung XNA-Programmierung in der Software Engineering Ausbildung3
\\ice:2008 | Intelligent Communities for Europe Warum Spielentwicklung? Vorteile der Spielentwicklung –Komplexität gut skalierbar –Spielentwicklung begeistert Studierende –Studierende haben Domänenwissen –Selbstständig neue Kenntnisse aneignen XNA-Programmierung in der Software Engineering Ausbildung4
\\ice:2008 | Intelligent Communities for Europe Warum Spielentwicklung? Vorteile der Spielentwicklung –Querschnitt der Informatik –Umsetzung von Algorithmen aus Vorlesungen –Fundierte Programmierkenntnisse erforderlich –Sichtbares Ergebnis XNA-Programmierung in der Software Engineering Ausbildung5
\\ice:2008 | Intelligent Communities for Europe Warum Spielentwicklung? Ziel –Software Engineering, Spielentwicklung nur Thema für Praktika –Keine Spielentwicklung-Ausbildung XNA-Programmierung in der Software Engineering Ausbildung6
\\ice:2008 | Intelligent Communities for Europe XNA.NET Framework zur Spielentwicklung Hobby-Programmierer –Professionals? Geschichte –DirectX –Managed DirectX (MDX) –XNA XNA Game Studio XNA-Programmierung in der Software Engineering Ausbildung7
\\ice:2008 | Intelligent Communities for Europe XNA Xbox 360 –.NET Compact Framework for Xbox 360 –XNA Creators Club MSDNAA Dreamspark –Xbox Marketplace XNA-Programmierung in der Software Engineering Ausbildung8
\\ice:2008 | Intelligent Communities for Europe Warum XNA? Standard für PC-Spiele: C/C++ und DirectX Studierende unerfahren mit C/C++ Momentan Java als verbreitete Lehrsprache –Geringe Unterstützung für Spielentwicklung –JOGL (Java Binding for OpenGL) Grafik-API Für schnelle Fortschritte leistungsfähige Spiele-API notwendig XNA-Programmierung in der Software Engineering Ausbildung9
\\ice:2008 | Intelligent Communities for Europe Warum XNA? Eigenschaften von XNA –C# und Java sind ähnlich –Spiele-API Hardwaresetup Verwaltung von Inhalten (Content Pipeline) Game Loop / Timing –.NET Bibliotheken sind einfacher zu erlernen als C++ STL –Zusätzliche Motivation: Xbox 360 Unterstützung XNA-Programmierung in der Software Engineering Ausbildung10
\\ice:2008 | Intelligent Communities for Europe Vergleich der Praktika XNA-Programmierung in der Software Engineering Ausbildung Erstes PraktikumZweites Praktikum Zwei Wochen, ganztägigSemester, vier Stunden pro Woche Fester Zeitplan: Vorlesungen am Morgen und Implementierung am Nachmittag Kein fester Zeitplan, keine Vorlesungen, Studierende beeinflussen Themen Spiel bereits vor dem Praktikum vollständig implementiert Spiel während des Praktikums implementiert Zweiergruppen arbeiten an der gleichen Aufgabe, Vervollständigen zuvor entfernte Teile des Spiels Kleingruppen arbeiten an verschiedenen Aufgaben eines gemeinsamen Spiels Fokus auf Implementierung von Algorithmen und Datenstrukturen Fokus auf Entwicklungsprozess und Inhalte (Features bestimmen, Aufgaben definieren, 3D-Modelle)
\\ice:2008 | Intelligent Communities for Europe Vorbereitung (Erstes Praktikum) Ziel: Entwicklung eines vollständigen Echtzeitstrategiespiels (feature-complete) Vorbereitungszeit von drei Monaten –Vorbereitungsteam von sechs Studierenden –Projektplan erstellen –Entwurf und Implementierung des Spiels –Vorbereitung der Vorlesungen C#-Test zur Auswahl geeigneter Praktikumsteilnehmer XNA-Programmierung in der Software Engineering Ausbildung12
\\ice:2008 | Intelligent Communities for Europe Screenshot (First Course) XNA-Programmierung in der Software Engineering Ausbildung
\\ice:2008 | Intelligent Communities for Europe Technische Details (Erstes Praktikum) XNA-Programmierung in der Software Engineering Ausbildung Features des Spiels RTS-typische Benutzerschnittstelle Bau von Stützpunkten Ressourcen sammeln Tech Tree KI-Gegner Intelligente Einheiten
\\ice:2008 | Intelligent Communities for Europe Technische Details (Erstes Praktikum) XNA-Programmierung in der Software Engineering Ausbildung Inhalt der Vorlesungen Endliche Automaten A* Algorithmus Quadtree Grafik: XNA + HLSL Repräsentation der Spielwelt
\\ice:2008 | Intelligent Communities for Europe Ergebnisse (Erstes Praktikum) Studierende hoch motiviert –Mehr Zeit als notwendig investiert –Diskussionen nach den Vorlesungen –Vergleich der Ergebnisse mit kommerziellen Spielen Studierende lobten die Möglichkeiten –schnellen Code zu schreiben –Code für GPUs zu schreiben Spiel verfügbar unter XNA-Programmierung in der Software Engineering Ausbildung16
\\ice:2008 | Intelligent Communities for Europe Vorbereitung (Zweites Praktikum) Ziel –Studierende sollen Projekterfahrung erlangen –Spiel für die Xbox 360 als zusätzliche Motivation Studierende nach Reihenfolge zugelassen Jump & Run Genre Spielhandlung vorgegeben: Henne sammelt verlorene Küken ein Grundlegende Spielarchitektur vorgegeben XNA-Programmierung in der Software Engineering Ausbildung17
\\ice:2008 | Intelligent Communities for Europe Ablauf (Zweites Praktikum) Einführungsvorlesung zu XNA und Spielentwicklung Keine Vorlesungen während des Praktikums Praktikum in drei Phasen eingeteilt (jeweils ein Monat) –Kick-off Meeting: Entscheidung über Ziele, Definition von Aufgaben und Zuweisung an Gruppen –Gruppentreffen und Bug-Tracking / Wiki XNA-Programmierung in der Software Engineering Ausbildung18
\\ice:2008 | Intelligent Communities for Europe Screenshot (Second Course) XNA-Programmierung in der Software Engineering Ausbildung
\\ice:2008 | Intelligent Communities for Europe Technische Details (Zweites Praktikum) Inhalte –3D-Modelle –Texturen –Animationen KI und Spielhandlung –Trigger und Skripte Physik –Kollisionserkennung durch Bounding Boxes –Einfaches Kräftesystem XNA-Programmierung in der Software Engineering Ausbildung20
\\ice:2008 | Intelligent Communities for Europe Technische Details (Zweites Praktikum) Level-Repräsentation –XML Datei –Inhalte referenziert –Leveleditor Probleme –3D-Modelle zu detailliert –Windows vs. Xbox 360.NET Framework Steuerung XNA-Programmierung in der Software Engineering Ausbildung21
\\ice:2008 | Intelligent Communities for Europe Ergebnisse (Zweites Praktikum) Studierende hoch motiviert –Fast alle Aufgaben fristgerecht beendet –Spiel um Rätsel erweitert –Grafik im Comic-Stil –Entscheidung animierte Modelle einzusetzen Studierende nutzen hauptsächlich Internet als Informationsquelle zu Spielentwicklung Spiel und weitere Informationen verfügbar unter XNA-Programmierung in der Software Engineering Ausbildung22
\\ice:2008 | Intelligent Communities for Europe Fazit – Kursformate Erstes Praktikum –Strikter Zeitplan mit Vorlesungen –Lerninhalte klar definiert Zweites Praktikum –Studierende eignen sich Wissen über Spielentwicklung selbst an –Aufgrund verschiedener Aufgaben, unterschiedliche Lerninhalte Alle Studierenden im Hauptdiplom Strikteres Kursformat auch im Vordiplom einsetzbar XNA-Programmierung in der Software Engineering Ausbildung23
\\ice:2008 | Intelligent Communities for Europe Fazit – Spielentwicklung Spielentwicklung für Software Engineering Ausbildung geeignet Studierende hoch motiviert –Thema Spielentwicklung als Hauptmotivation (Kursevaluierung) –Mehr Zeit investiert als notwendig –Sichtbare (Zwischen-)Ergebnisse XNA-Programmierung in der Software Engineering Ausbildung24
\\ice:2008 | Intelligent Communities for Europe Fazit – XNA Nutzung von XNA ermöglichte schnelle Fortschritte während der Praktika Verwaltung von –Inhalte –Hardware C# einfacher zu erlernen als C XNA-Programmierung in der Software Engineering Ausbildung25
\\ice:2008 | Intelligent Communities for Europe Ende Fragen? XNA-Programmierung in der Software Engineering Ausbildung