Ich muss dem ganzen leider doch einen kleinen Dämpfer geben.
Ich habe mich selbst mit der Sache schon auseinandergesetzt und auch schon Kontakt zu den WTV Entwicklern gesucht. Ausserdem habe ich mich mit Dari der damals den FSGS geschrieben hatte in Verbindung gesetzt.
Jetzt zu den Ergebnissen:
a) Die Entwickler von WTV sind beides Studenten die richtung Diplom gehen und schlicht und einfach zu ausgelastet sind um die entsprechenden Analysen des Netcodes von Broodwar zu machen.
b) Grundsätzlich würden sie es schon machen.... wenn die Zeit da wäre
c) Es gibt erhebliche Unterschiede zwischen WC3 und BW vorallem im bezug auf den Netcode.
-WC3 basiert auf einem Hostbezogenen TCP/IP Modell bei dem ein Spieler als Server agiert und alle Pakete zunächst an diesen Server geschickt werden. Zu diesem Zweck wird wie schon gesagt TCP verwendet. TCP zeichnet sich dadurch aus das eine stehende Verbindung aufgebaut wird bei der das Protokoll dafür sorg das die Pakete überhaupt ankommen (bzw notfalls nachgeschickt werden) und dann auch in der richtigen Reihenfolge an die Aplikation weitergeleitet wird. Die Applikation muss sich also nicht um die Datenübermittlung selbst kümmern.
-Starcraft/Broodwar basiert auf einem UDP/IP Peer-to-Peer Modell. Jeder Teilnehmer schickt an jeden anderen Teilnehmer seine Daten - es gibt keinen Server. UDP ist verbindungslos, d.h. Pakete werden einfach abgeschickt egal ob sie ankommen oder nicht. Der Empfänger quittiert auf Protokollebene keine Pakete und auch die Reihenfolge spielt für das Protokoll keine Rolle. Hier muss die Anwendung durch Timestamps bzw Hashalgorithmen sicherstellen das alle Pakete angekommen sind und in die richtige Reihenfolge gebracht werden. Für den Fall das ein Paket fehlt wird das entsprechende Paket vom entsprechenden Teilnehmer angefordert. So kommt es auch zum ruckeln das durch High Latency verbessert werden kann. Die Latencyeinstellungen sorgen dafür das jedes Paket mehrfach verschickt wird wodurch die Verlustrate gesenkt werden kann. Das bringt natürlich nur etwas wenn die Pakete verloren gehen - wenn die Verbindung überlastet ist verschlimmert sich die Situation schlicht und einfach durch erhöhten Traffic.
Was heißt das nun konkret?
Bei Starcraft:Broodwar wurden auf Applikationsebene Hashalgorithmen eingesetzt die die es ermöglichen die Pakete zu sortieren und Konsistenz gewährleisten - manipulationen an den Paketen sind somit wesentlich schwieriger zu bewerkstelligen. Ausserdem gibt es nicht nur EINEN Datenstrom von Server zu Client sondern jeder Client-Clientdatenstrom müsste bei der Funktionsweise von WTV simuliert werden.
Warum hat Blizzard das gemacht?
UDP war in den 90er Jahren absolut gängig im Onlinegamingbereich da Verbindungslose Protokolle wesentlich weniger Overhead produzieren. Pakete müssen nicht quitiert werden und der Traffic sinkt. Ausserdem muss man bedenken das es zu Modemzeiten ohne getrennten Up und Downstream schlecht realsierbar gewesen wäre ein Servermodell zu realisieren bei dem der Server bis zu 7 eingehende Datenströme und 7 (8 mal so große) ausgehende Datenströme bereitstellen muss.
Kann man dennoch mit so etwas wie BWaaaghTV rechnen?
Denkbar ist das sehr wohl. Dari hatte damals Teile des Hashcodes ermittelt - hat sich dann aber WC3 hingegeben und hat seine Ergebnisse inzwischen nichtmehr um sie weiterzugeben. Ein anderer Ansatz geht etwas tiefer in das Spielt und geht ähnlich heran wie einige Hacks oder TCs. Das Abgreifen der Spieldaten auf Speicherebene wäre durchaus denkbar - ist aber auch alles andere als einfach zu Programmieren.
Riesig sind die Hoffnungen also nicht... aber vielleicht finden sich ja ein paar ambitionierte Programmierer die Erfahrung in diesen Bereichen haben - und u.U. lässt sich ja auch ein Hackprogrammierer mal dazu bekehren sein KnowHow mal für etwas sinnvolles einzusetzen.
So far...
ich hoffe ich habe alles noch richtig zusammenbekommen...
Dominik
