Das INFINITAG Protokoll

Heute beschäftigen wir uns mit den Daten, die wir mit einem „Schuss“ von einem Spieler zum anderen weitergeben wollen.

Hierfür sollte man sich zunächst erst einmal Gedanken dazu machen, was das System an Funktionen besitzen soll. Für das INFINITAG-Protokoll waren uns folgende Punkte sehr wichtig:

  • Unterschiedliche parallele Spiele
  • Ein oder mehrere Teams
    • klassisches Deathmatch: Jeder gegen jeden
    • Team-Deathmatch: min. 2 Teams
  • Pro Team min. 1 und max. 30 Spieler
  • Interaktion zwischen anderen Spielern oder der Umgebung
    •  z.B. Munitionskisten, Heilstationen, Flaggen etc.
  • Es gibt verschiedene Interaktionen mit unterschiedlichen Werten
    • Die Interaktion kann der abgegebene „Schuss“ an sich oder auch eine Sonderaktion wie z.B. das Heilen von Mitspielern sein

Protokollabschnitte

Somit ergeben sich folgende Abschnitte, die wir in unserem Protokoll abbilden müssen:

System: unterscheidet Spieler-Signal von System-Signalen
Spiel-ID: gibt die aktuelle Spiel-ID an
Team-ID: teilt die Spielergruppen in Teams auf
Spieler-ID: die Spielerkennung, die nur ein Spieler pro Team-ID und Game-ID trägt
Kommando: der gesendete Befehl (z. B. differenzierung zwischen Schaden und Heilung)
Wert: gibt den Wert des Kommandos an (z. B. die Höhe des Schadens eines Schusses)
Prüfziffer: dient zur Validierung des Signals

Jetzt müssen wir die maximalen Werte der jeweiligen Bereiche definieren. Hierbei spielen zwei Faktoren eine wichtige Rolle:

  1. Wir brauchen eine Datenstruktur, die alle Basis-Funktionen abdeckt und zusätzlich noch Spielraum für Extras offen lässt
  2. Dabei sollte jedoch das Signal nicht zu viele Daten enthalten, damit die Sendedauer möglichst kurz bleibt

 

Signalaufbau

Für uns hat sich daraus folgender Aufbau des Signales ergeben:

In Worte gefasst unterstützt das INFINITAG-Protokoll somit 4 parallel laufende Spiele in Sichtweite mit je maximal 8 Teams in denen bis zu 32 Spielern gleichzeitig spielen können. Das ergibt 1024 Spieler in Sichtreichweite, was unserer Meinung nach groß genug ist. Für die Interaktion besitzt das Protokoll für jeden Spieler 16 verschiedene Befehle mit einem Wertebereich bis 256. Die Befehle, die das System an die Spieler senden kann besitzt den gleichen Umfang.

Erster Quelltext

Da sowohl der Tagger als auch der Sensor mit dem Protokoll arbeitet, haben wir eine „Core“ Bibliothek ins Leben gerufen, auf die alle benötigten Komponenten zugreifen können. Den ersten Quellcode hierzu findet Ihr in unserem Git Repository unter: https://github.com/Infinitag/Infinitag_Core

Infos:

von Tobi am 16. Juli 2017

Kategorie: Allgemein