Praxis der Softwareentwicklung

  • Typ: Vorlesung
  • Dozent:

    Stephan Bergmann
    Hauke Rehfeld

     

  • Hinweis:

    Die allgemeine Auftaktveranstaltung zum PSE im Sommersemester 2016 findet am Mittwoch, 2016-04-20 um 15:45 Uhr im Hörsaal am Fasanengarten (Geb. 50.35) statt.

    Die wöchentlichen Treffen finden jeweils Dienstags um 9:45 Uhr im Raum 148 statt.

PSE SS 2016 Teaser

Der Lehrstuhl für Computergrafik bietet zwei PSE-Teams von jeweils 5-6 Teilnehmern die Möglichkeit, ein einfaches Computerspiel zu entwickeln. Dieses Semester werden beide Team an Teilaspekten eines gemeinsamen Spiels arbeiten. Während das Hauptaugenmerk des einen Teams auf der audiovisuellen Darstellung des Spiels liegt, verantwortet das andere Team die prozedurale Erzeugung der Spielwelt und die Spielelogik an sich.

 

Die Aufgabenstellung gibt den Rahmen des Spieleprojekts vor, die Ausgestaltung können die teilnehmenden Gruppen während der ersten Phase festlegen. Die Spielidee ist dabei aus praktischen Gründen vorgegeben, dieses Jahr orientieren wir uns stark an Wipeout und ähnlichen Spielen (siehe Linkliste unten).Dabei sollen Flow und Geschwindigkeitsgefühl im Vordergrund stehen. Zu Beginn bekommen die Teams diese Aufgabenstellung etwas näher spezifiziert (siehe z.B. die Skizze unten) und soll diese dann mit eigenen Ideen konkretisieren und ausgestalten. Dabei bleibt genug Freiraum für die eigene Kreativität.


Das Konzept muss im Rahmen der Erstellung des Pflichentheftes genau spezifiziert und anschließend umgesetzt werden. Insgesamt ist das PSE in folgende Phasen unterteilt:

  • Erstellung des Pflichtenhefts
  • Systementwurf
  • Implementierung
  • Validierung (Qualitätskontrolle/Softwaretest)
  • Projektabnahme und Abschlussveranstaltung

 

Wir benutzen die jMonkeyEngine als Grundlage des Spieleprojekts. Diese setzt ihrerseits auf OpenGL für die Darstellung und weitere Bibliotheken, z.B. jBullet für die Physik auf. Die Entwicklung des Projekts erfolgt in in ersten Linie in Java, für die Grafik können/sollten auch Shader eingesetzt werden, die dann in GLSL programmiert werden. Wir setzen keine Erfahrung mit Grafikengines voraus, aber natürlich die Bereitschaft, sich einzuarbeiten. Wir empfehlen auch, sich die Engine (siehe Link unten) schon vor der Projektauswahl schon einmal anzuschauen.

 

Skizze einer Aufgabenstellung (aus einem früheren Semester)

Pflichtkriterien:

  • übersichtliche Darstellung, die auch komplexe 3D-Geometrie mit Verdeckungen frustfrei wahrnehmbar macht
  • intuitive Navigation
  • sinnvolles Undo
  • gute automatische Kameraführung
  • Highscores nach Zeit, in möglichst wenigen Schritten ...
  • einfaches Datenaustauschformat für die Levels
  • mindestens zehn eindeutige Level mit steigendem Schwierigkeitsgrad
  • 2. Modus: Levels, die nur durch mehrere Linienzüge lösbar sind

 Optionale Kriterien:

  • Fancy Grafik! Juice it up!
    • Shader
    • Explosionen
    • Partikelsysteme
  • schöne Kameraübergänge / -schwenks
  • Sound
  • Tutorialmodus
  • andere Modi: Spiel auf Zeit / begrenztes Bewegungskontingent
  • Online-Level-Datenbank / -Plattform
  • eigene Ideen!

Je nach vorgegebener Spielidee vielleicht auch:

  • Kollisionserkennung
  • Physiksimulation
  • Künstliche Intelligenz/Bots
  • Netzwerkunterstützung für Multiplayer

 

Links:

Inspirationsquellen:

Weitere Informationen:

Spiele aus vergangenen Semestern: