oliver denninger fzi forschungszentrum informatik, karlsruhe

26
XNA-PROGRAMMIERUNG IN DER SOFTWARE ENGINEERING AUSBILDUNG Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe http://www.fzi.de

Upload: gerlach-anschutz

Post on 06-Apr-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

XNA-PROGRAMMIERUNG IN DER SOFTWARE ENGINEERING AUSBILDUNG

Oliver DenningerFZI Forschungszentrum Informatik, Karlsruhehttp://www.fzi.de

Page 2: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 3: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 4: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 5: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 6: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 7: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 8: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 9: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 10: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 11: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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)

Page 12: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 13: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe

Screenshot (First Course)

30.08.2008 13XNA-Programmierung in der Software Engineering Ausbildung

Page 14: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 15: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 16: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 17: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 18: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 19: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe

Screenshot (Second Course)

30.08.2008 19XNA-Programmierung in der Software Engineering Ausbildung

Page 20: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 21: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 22: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 23: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 24: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 25: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

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

Page 26: Oliver Denninger FZI Forschungszentrum Informatik, Karlsruhe

Knowledge Community Success\\ice:2008 | Intelligent Communities for Europe

Ende

Fragen?

[email protected]

30.08.2008 26XNA-Programmierung in der Software Engineering Ausbildung