TU BRAUNSCHWEIG
| Carl Friedrich Gauß Faculty | Department of Computer Science
Informatikzentrum

Softwareentwicklungspraktikum: Turn Me Baby One More Time

Semester
IBR GroupCM (Prof. Wolf)
TypePraktikum
Lecturer
PhotoProf. Dr.-Ing. Lars Wolf
Institutsleiter
wolf[[at]]ibr.cs.tu-bs.de
+49 531 3913288
Room 138
Assistants
PhotoJan Schlichter
Wissenschaftlicher Mitarbeiter
schlichter[[at]]ibr.cs.tu-bs.de
+49 531 3913154
Room 118
PhotoRobert Hartung
Wissenschaftlicher Mitarbeiter
hartung[[at]]ibr.cs.tu-bs.de
+49 531 3913246
Room 131
StartSS2021
Attendees Studierende der Informatik, Wirtschaftsinformatik und Informations-Systemtechnik im vierten Semester
Schedule
[ Subscribe Calendar | Download Calendar ]
DateDescription
11.02.2021, 13:15Themenvorstellung (Webex SE1)
28.04.2021, 23:59Abgabe Angebot
19.05.2021, 23:59Abgabe Pflichtenheft & Abnahme Testspezifikation
09.06.2021, 23:59Abgabe Fachentwurf
30.06.2021, 23:59Abgabe Technischer Entwurf
14.07.2021, 23:59Abgabe Testdokumenation (Testspezifikation)
22.07.2021, 14:00Tag der jungen Software Entwickler (TDSE)
References

BBB

TBA

Vorlagen

Organisatorisches

SVN-Hilfen

Weitere Hilfen

Das SEP der Abteilung CM des IBR beschäftigt sich im Sommersemester 2020 mit dem Thema Latenz in Onlinespielen. Hierfür soll ein einfaches verteiltes Multiplayer-Spiel basierend auf dem Klassiker "Achtung, die Kurve" implementiert werden.

Aufgabe

Es soll ein verteiltes Multiplayer-Spiel basierend auf dem Klassiker "Achtung, die Kurve" implementiert werden. Im Gegensatz zu dem original Spiel, dass nur einen lokalen Mehrspielermodus hat, soll die hier entwickelte Variante eine Client-Server-Struktur verwenden. Hierdurch können Spieler aus der ganzen Welt zusammen kommen und gemeinsam spielen.

Das Hauptproblem bei der Entwicklung des Mehrspielermodus ist die Synchronisation der Clients, sodass trotz unterschiedlicher Latenzen alle Clients zeitgleich die gleiche Realität abbilden. Eine Möglichkeit dies zu erreichen wäre, dass der Server die Spiellogik abbildet und nur den synchronisierten Status des Spiels an alle Clients verteilt. Um die Komplexität des Servers möglichst gering zu halten, soll in diesem SEP allerdings die vollständige Spiellogik in den Clients und nicht im Server implementiert sein. Daraus folgt, dass der Server alle Steuerkommandos oder Statuswechsel der Clients entgegennimmt, diese synchronisiert und dann an alle anderen Clients weiterverteilt. Die für das Spiel relevanten Berechnungen auf Basis der Kommandos finden anschließend einzeln für jeden Client statt.

foo

Anforderungen

  • Als Basis dient das Spiel "Achtung, die Kurve" (Wikipedia)
    • Jeder Spieler ist ein sich ständig bewegender Punkt der eine Linie hinterlässt
    • Berührt ein Spieler die Ränder des Spielfeldes oder eine der Linien hat er die Runde verloren
    • Der letzte verbleibende Spieler gewinnt die Runde
    • Das Spiel kann um beliebige Power-Ups erweitert werden, die von den Spielern eingesammelt werden können
  • 2+ Spieler (je nach Gruppengröße mit der Möglichkeit zu KI-Gegnern)
  • Als Engine wird Unity enpfohlen (Programmmiersprache C#)
  • Es soll eine Client-Server-Architektur implementiert werden
    • Die Spielelogik wird durch die Clients implementiert und der Server dient nur zur Weiterleitung der jeweiligen Kommandos eines Clients an die anderen Clients
    • Der Server synchronisiert die Kommandos der Clients durch das Herstellen einer gemeinsamen Zeitbasis
      • Messung der Latenz zu den Clients
      • Individuelle Umrechnung der Kommandos anhand der Latenz der Clients
    • Das Auftauchen von Powerups zur selben Zeit an der selben Stelle für alle Clients kann durch die Verwendung des selben Seeds zur Zufallsgenerierung sichergestellt werden
    • Server und Clients können in verschiedenen VMs am IBR laufen und künstlich mit Latenzen belegt werden

Weitere Details folgen.


last changed 2021-02-11, 16:38 by Jan Schlichter
printemailtop