260 likes | 322 Vues
XNA-Programmierung in der Software Engineering Ausbildung. Oliver Denninger FZI Forschungszentrum Informatik , Karlsruhe http://www.fzi.de. Übersicht. Warum Spielentwicklung? Warum XNA? Vorstellung der Praktika Erfahrungen. Warum Spielentwicklung?.
E N D
XNA-Programmierung in der Software Engineering Ausbildung Oliver Denninger FZI ForschungszentrumInformatik, Karlsruhe http://www.fzi.de
Übersicht • Warum Spielentwicklung? • Warum XNA? • Vorstellung der Praktika • Erfahrungen XNA-Programmierung in der Software Engineering Ausbildung
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 Ausbildung
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 Ausbildung
Warum Spielentwicklung? • Vorteile der Spielentwicklung • Querschnitt der Informatik • Umsetzung von Algorithmen aus Vorlesungen • Fundierte Programmierkenntnisse erforderlich • Sichtbares Ergebnis XNA-Programmierung in der Software Engineering Ausbildung
Warum Spielentwicklung? • Ziel • Software Engineering, Spielentwicklung nur Thema für Praktika • Keine Spielentwicklung-Ausbildung XNA-Programmierung in der Software Engineering Ausbildung
XNA • .NET Framework zurSpielentwicklung • Hobby-Programmierer • Professionals? • Geschichte • DirectX • Managed DirectX (MDX) • XNA • XNA Game Studio XNA-Programmierung in der Software Engineering Ausbildung
XNA • Xbox 360 • .NET Compact Framework for Xbox 360 • XNA Creators Club • MSDNAA • Dreamspark • Xbox Marketplace XNA-Programmierung in der Software Engineering Ausbildung
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 forOpenGL) Grafik-API • Für schnelle Fortschritte leistungsfähige Spiele-API notwendig XNA-Programmierung in der Software Engineering Ausbildung
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 Ausbildung
Vergleich der Praktika XNA-Programmierung in der Software Engineering Ausbildung
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 Ausbildung
Screenshot (First Course) XNA-Programmierung in der Software Engineering Ausbildung
Technische Details (Erstes Praktikum) • Features des Spiels • RTS-typische Benutzerschnittstelle • Bau von Stützpunkten • Ressourcen sammeln • Tech Tree • KI-Gegner • Intelligente Einheiten XNA-Programmierung in der Software Engineering Ausbildung
Technische Details (Erstes Praktikum) • Inhalt der Vorlesungen • Endliche Automaten • A* Algorithmus • Quadtree • Grafik: XNA + HLSL • Repräsentation der Spielwelt XNA-Programmierung in der Software Engineering Ausbildung
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 http://www.coding4fun.de XNA-Programmierung in der Software Engineering Ausbildung
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 Ausbildung
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 Ausbildung
Screenshot (Second Course) XNA-Programmierung in der Software Engineering Ausbildung
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 Ausbildung
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 Ausbildung
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 http://zfs.fzi.de XNA-Programmierung in der Software Engineering Ausbildung
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 Ausbildung
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 Ausbildung
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 Ausbildung
Ende Fragen? denning@fzi.de XNA-Programmierung in der Software Engineering Ausbildung