Semesterprojekt Implementierung eines Brettspiels inklusive computergesteuerter Spieler
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 24. Oktober 2016 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 drei Meilensteine untergliedert.
- bis 12.12.16: Grafische Prototypen (Java-basiert, Unity), Spiellogik, Interfaces und Dummy-KI.
- 12.12.16-09.01.17: Optionale Features (Single-Player, Sound, Android-Client, Multi-Player, etc.)
- ab 09.01.17: 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 (Rot, Blau, Gelb) trifft sich wöchentlich zu (mindestens) zwei Daily Scums:
- Rot, Blau, Gelb: Montags zwischen 13-15 Uhr zum ersten Daily Scrum in RUD25, Raum 4.113
- Blau: Dienstags ab 17 Uhr zum zweiten Daily Scrum in RUD25, Raum 4.410
- Gelb: Mittwochs ab 17 Uhr zum zweiten Daily Scrum in RUD25, Raum 4.410
- Rot: Donnerstags ab 13 Uhr zum zweiten Daily Scrum in RUD25, Raum 4.410
Termine:
43 KW: 24.10. | Vorbereitend | Backlog Grooming, Wahl einer Spiele-Engine und Technical Refinement |
44 KW: 31.10. | Erster Sprint | Sprint Planning | PDF |
45 KW: 07.11. | Vorbereitend | Backlog Grooming und Technical Refinement |
46 KW: 14.11. | Zweiter Sprint | Demo und Sprint Planning |
47 KW: 21.11. | Vorbereitend | Backlog Grooming und Technical Refinement |
48 KW: 28.11. | Dritter Sprint | Demo und Sprint Planning |
49 KW: 05.11. | Vorbereitend | Backlog Grooming und Technical Refinement |
50 KW: 12.12. | Ende 1. Meilenstein | Präsentation & Wahl der Sieger-Engine | Ablauf |
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
Vorträge / Folien
- Einführung Semesterprojekt
- Links zu Game Development / Engines (korrigierte Fassung vom 25.10.)
- Einführung Scrum
- Versionierung und Bugtracking mit GitHub
- Introduction to Coding Conventions
- Unit Tests und Continuous Integration (aktualisierte Fassung vom 10.11.)
- Remote Procedure Calls
- Ticket to Ride: Concepts in Graph Theory
- Ablauf Zwischenpräsentation
- Einführung Spiele-KI
Wettbewerb
- Spielplan vom 16.01.
- Spielplan vom 23.01.
- Spielplan vom 30.01.
- Spielplan vom 06.02. (inklusive Batch-Modus)
- Finale vom 13.02.
Weiterführende Links
- Planning Poker App (Android)
- Git Einstieg
- Trello und GitHub
- Scrum Einführung: What is Scrum?
- Scrum Handout Einstieg
- Scrum Primer (englisch) (deutsch)
- Spielregeln (englisch) (deutsch)
- Coding Guidelines: C# | Java Google | Java Twitter
- gRPC
- Language Guide (proto3)