Humboldt-Universität zu Berlin - Mathematisch-Naturwissenschaftliche Fakultät - Wissensmanagement in der Bioinformatik

Semesterprojekt Implementierung eines Brettspiels inklusive computergesteuerter Spieler

Patrick Schäfer, Prof. Leser

Mittels agiler Softwareentwicklung wird das Brettspiel "Zug um Zug" inklusive computergesteuerter Spieler in Gruppenarbeit implementiert. Zunächst werden die Anforderungen und Schnittstellen spezifiziert. Anschließend werden in Gruppenarbeit die Spiellogik und eine grafische Oberfläche implementiert. Danach werden in konkurrierenden Teams Computerspieler entwickelt. Zum Ende des Semester treten diese gegeneinander an. Die Gruppen organisieren sich in regelmäßigen Treffen und nehmen an moderierten, gruppenübergreifenden Treffen zur Absprache des Designs und der Schnittstellen teil. Projektbegleitend müssen die Ergebnisse in Vorträgen präsentiert werden.

Die Bewerbung für den Kurs erfolgt über Agnes. Agnes vergibt die begrenzten Plätze für das Semesterprojekt automatisch.

Am ersten Montag der Vorlesungszeit finden wegen des dies academicus keine Lehrveranstaltungen statt. Der Einführungstermin ist somit am Montag, den 22. Oktober 2018 von 13:00 bis 17:00 Uhr in RUD 25, 4.113. Hier werden das Semesterprojekt und der Product Backlog vorgestellt. Anschließend werden Scum Teams gebildet und der erste Sprint wird vorbereitet. Für die Teilnahme am Kurs ist die vollständige Anwesenheit an diesem ersten Termin erforderlich.

Voraussetzungen

Voraussetzung für den Besuch sind gute Kenntnisse in der Softwareentwicklung in einer Hochsprache (Java, C#, C++). Begeisterung für Brettspiele.

Struktur des Projekts

Das Semesterprojekt wird in zwei Meilensteine untergliedert.

  1. Meilenstein (Observer + Single-Player)
    • Observer Modus: Grafische Prototypen (Unity), Spiellogik, Interfaces und Dummy-KI,
    • Single-Player-Modus
    • Optionale Features: Sound, Android-Client, etc.
  2. Meilenstein (KI-Wettbewerb)
    • Wettbewerb mit KI-Spielern.

Zur Bearbeitung der Sprints werden drei Scrum-Teams aus je 5 Studierenden gebildet.

Die Betreuer übernehmen im Projekt die Rolle eines fiktiven Kunden (Product Owner), der eine Software in Auftrag gibt und vorgibt, wie das Endprodukt aussehen soll, aber nicht, wie man das am besten erreicht – das sollen die Studierenden im Projekt gemeinsam erarbeiten und umsetzen. Natürlich geben die Betreuer auch Hilfestellungen zu technischen Fragen und Schwierigkeiten durch.

Daily Scrums

Jedes Team trifft sich wöchentlich zu (mindestens) zwei Daily Scums:

  1. Alle: Montags zwischen 13-15 Uhr zum ersten Daily Scrum in RUD25, Raum 4.113
  2. Grün: Mittwochs ab 17 Uhr zum zweiten Daily Scrum in RUD25, Raum 4.113,
    Trello Team Green
  3. Rot: Donnerstags ab 13 Uhr zum zweiten Daily Scrum in RUD25, Raum 4.410
    Trello Team Red
  4. Schwarz: Donnerstags ab 17 Uhr zum zweiten Daily Scrum in RUD25, Raum 4.113
    Trello Team Black
  5. Blau: Freitags ab 11 Uhr zum zweiten Daily Scrum in RUD25, Raum 4.410
    Trello Team Blue

Vorträge / Folien

TTR-Server

Implementierung des Ticket-To-Ride Servers.

TTR-Client (C# / Unity)

Eine einfache Bibliothek die zur Kommunikation mit dem TTR-Server genutzt werden kann. Client-Server Kommunikation und JSON Parsen werden automatisch gehandhabt.
  • Client: Github Repository
  • Alle KIs des Semesterprojekts, die Benchmark-KI und Skript zum Starten

    • Alle KIs (Red, Green, Black, Green, HU-KI) und die Implementierung der Benchmark KI: Benchmark

    TTR-GUI

    Support erfolgt direkt durch Team Black.
    • Windows: Link.
    • Mac OS X: Link.
      Nach dem Download muss noch chmod +x TicketToRide.app/Contents/MacOS/TicketToRide ausgeführt werden, um die App ausführbar zu machen.
    • Übersicht der wichtigsten Tastenkombinationen: Anleitung

    Termine im ersten Meilenstein:

    43 KW: 22.10.VorbereitendBacklog Grooming, pro Scrum Team: Wahl einer Spiele-Engine und Technical Refinement
    44 KW: 29.10.Erster SprintSprint Planning
    45 KW: 05.11.VorbereitendBacklog Grooming und Technical Refinement
    46 KW: 12.11.Zweiter SprintDemo und Sprint Planning
    47 KW: 19.11.VorbereitendBacklog Grooming und Technical Refinement
    48 KW: 26.11.Dritter SprintDemo und Sprint Planning
    49 KW: 03.12.VorbereitendBacklog Grooming und Technical Refinement
    51 KW: 17.12.Ende 1. MeilensteinPräsentation & Wahl der Sieger-Engine

    Begleitprogramm

    Das Projekt wird durch begleitende Vorträge ergänzt. Geplant sind Kurzvorlesungen unter Anderem zu den folgenden Themen:
    • Versionierung und Bugtracking mit GitHub
    • Agile Softwareentwicklung mit Scrum
    • Kurzer Überblick zu Spieleentwicklung & Game Engines
    • Einführung zu künstlicher Intelligenz in Spielen
    • Coding Guidelines / Best Practices
    • Software-Tests

    Weiterführende Links