Tetrinet entwicklung

Aus LaborWiki
Wechseln zu: Navigation, Suche


Motivation

Inzwischen hat fast jeder herausgefunden, das man den tetrinet server prima auf verschiedenste Arten betrügen kann. Jetzt soll schluss damit sein: Wir entwickeln ein neues tetrinet Protokoll und basteln einen Server und Client drumrum.

Auch in Punkto fairness soll etwas getan werden: So soll ein Spieler, der in der Rangliste relativ weit unten steht und einen höher stehenden Spieler besiegt, dafür etwas mehr Punkte bekommen.

Cheater wird man auch nicht mit einem neuen Protokoll komplett erschlagen, aber man kann es zumindest eindämmen.

Protokoll

Das zukünftige Protokoll soll dem Client die "Rechte" entziehen und Serverlastiger werden. So soll es nicht mehr möglich sein, das der Client seine Specials selbst wählt.

Ideen zum Protokoll

  • Um Lags zu vermeiden könnte man eine bestimmte Anzahl an Steinen & Specials dem Client im Voraus schicken. Vorschlag: Jeweils ein Stein und ein Special im Voraus.
  • Eine spätere Erweiterung soll es ermöglichen, das der Client sich bei dem Server einen Nickname reservieren kann. So kann niemand einfach so den Nickname übernehmen.
  • Voting gegen Cheater: Wenn mehr als n Prozent (n einstellbar) der Mitspieler einen dritten hinausvoten, wird dieser vom Server oder aus dem Raum gekickt. So sind Admins fast nicht mehr nötig für solch alltägliche Probleme.
  • Mehr als 6 Mitspieler: Clients teilen dem Server mit, wieviele Mitspieler sie darstellen können und wollen. Der Server setzt dann das Limit für den jeweiligen Raum auf die kleinste gemeinsame Anzahl Spieler (>= 6).

Server

Der Server bekommt Routinen zu Plausibelitätsprüfung verpasst.

Client

Die Bedienung des Clients soll intuitiver werden. So soll es z.B. eine Taste geben, mit der man sich selbst Specials zuteilt, anstatt nur einer Nummer. Die Nummern hingegen werden kontnuirlich an alle anderen Teilnehmer vergeben.

Netzwerk Library

Eine Netzwerk Library soll es anderen Programmierern ermöglichen, ihren Client darauf aufzubauen. Das verhindert auch anfänglichen "Wildwuchs".

Mögliche Sprachen für eine solche Library:

  • Java
  • C
  • C++
  • ADA