XNA-Programmierung in der Software Engineering Ausbildung
description
Transcript of XNA-Programmierung in der Software Engineering Ausbildung
XNA-PROGRAMMIERUNG IN DER SOFTWARE ENGINEERING AUSBILDUNG
Oliver DenningerFZI Forschungszentrum Informatik, Karlsruhehttp://www.fzi.de
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
XNA-Programmierung in der Software Engineering Ausbildung 2
Übersicht
Warum Spielentwicklung? Warum XNA? Vorstellung der Praktika Erfahrungen
30.08.2008
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
XNA-Programmierung in der Software Engineering Ausbildung 3
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
30.08.2008
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
XNA-Programmierung in der Software Engineering Ausbildung 4
Warum Spielentwicklung?
Vorteile der Spielentwicklung– Komplexität gut skalierbar– Spielentwicklung begeistert Studierende– Studierende haben Domänenwissen– Selbstständig neue Kenntnisse aneignen
30.08.2008
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
XNA-Programmierung in der Software Engineering Ausbildung 5
Warum Spielentwicklung?
Vorteile der Spielentwicklung– Querschnitt der Informatik– Umsetzung von Algorithmen aus Vorlesungen– Fundierte Programmierkenntnisse erforderlich– Sichtbares Ergebnis
30.08.2008
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
XNA-Programmierung in der Software Engineering Ausbildung 6
Warum Spielentwicklung?
Ziel– Software Engineering, Spielentwicklung
nur Thema für Praktika– Keine Spielentwicklung-Ausbildung
30.08.2008
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
XNA
.NET Framework zur Spielentwicklung Hobby-Programmierer
– Professionals? Geschichte
– DirectX– Managed DirectX (MDX)– XNA
XNA Game Studio
30.08.2008 XNA-Programmierung in der Software Engineering Ausbildung 7
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
XNA
Xbox 360– .NET Compact Framework for Xbox 360– XNA Creators Club
• MSDNAA• Dreamspark
– Xbox Marketplace
30.08.2008 XNA-Programmierung in der Software Engineering Ausbildung 8
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
XNA-Programmierung in der Software Engineering Ausbildung 9
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
30.08.2008
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
XNA-Programmierung in der Software Engineering Ausbildung 10
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
30.08.2008
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
Vergleich der Praktika
30.08.2008 11XNA-Programmierung in der Software Engineering Ausbildung
Erstes Praktikum Zweites Praktikum
Zwei Wochen, ganztägig Semester, 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)
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
XNA-Programmierung in der Software Engineering Ausbildung 12
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
30.08.2008
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
Screenshot (First Course)
30.08.2008 13XNA-Programmierung in der Software Engineering Ausbildung
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
Technische Details (Erstes Praktikum)
30.08.2008 14XNA-Programmierung in der Software Engineering Ausbildung
Features des Spiels• RTS-typische
Benutzerschnittstelle• Bau von Stützpunkten• Ressourcen sammeln• Tech Tree• KI-Gegner• Intelligente Einheiten
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
Technische Details (Erstes Praktikum)
30.08.2008 15XNA-Programmierung in der Software Engineering Ausbildung
Inhalt der Vorlesungen• Endliche Automaten• A* Algorithmus• Quadtree• Grafik: XNA + HLSL• Repräsentation der
Spielwelt
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
XNA-Programmierung in der Software Engineering Ausbildung 16
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 30.08.2008
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
XNA-Programmierung in der Software Engineering Ausbildung 17
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 vorgegeben30.08.2008
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
XNA-Programmierung in der Software Engineering Ausbildung 18
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
30.08.2008
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
Screenshot (Second Course)
30.08.2008 19XNA-Programmierung in der Software Engineering Ausbildung
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
XNA-Programmierung in der Software Engineering Ausbildung 20
Technische Details (Zweites Praktikum)
Inhalte– 3D-Modelle– Texturen– Animationen
KI und Spielhandlung– Trigger und Skripte
Physik– Kollisionserkennung durch Bounding Boxes– Einfaches Kräftesystem
30.08.2008
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
XNA-Programmierung in der Software Engineering Ausbildung 21
Technische Details (Zweites Praktikum)
Level-Repräsentation– XML Datei– Inhalte referenziert– Leveleditor
Probleme– 3D-Modelle zu detailliert– Windows vs. Xbox 360
• .NET Framework• Steuerung
30.08.2008
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
XNA-Programmierung in der Software Engineering Ausbildung 22
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
30.08.2008
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
XNA-Programmierung in der Software Engineering Ausbildung 23
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 einsetzbar30.08.2008
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
XNA-Programmierung in der Software Engineering Ausbildung 24
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
30.08.2008
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
XNA-Programmierung in der Software Engineering Ausbildung 25
Fazit – XNA
Nutzung von XNA ermöglichte schnelle Fortschritte während der Praktika
Verwaltung von– Inhalte– Hardware
C# „einfacher“ zu erlernen als C++
30.08.2008
Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe
Ende
Fragen?
30.08.2008 26XNA-Programmierung in der Software Engineering Ausbildung