Original von Sarge
Niemand hat doch hier gesagt das UDP zwingend notwendig ist.
Hmmm, doch hat jemand (Drezil) gesagt, darauf bezog ich mich ja:
Das man bei solchen sachen auf UDP setzen sollte ist ohnehin schon klar
Bzgl. 3-way Handshake bei simplen requests und kurzen Abrufen ohne Folgepakete hast Du natuerlich Recht (DNS), aber das hatte ich im Falle eines Spieles eben sowieso ausgeschlossen. Hier moechte man ja defintiv eine verbindungsorientierte Kommunikation haben, ausser man spielt Fernschach mit einem Zug am Tag... Aber bei Realtime Multiplayer kommt man da nicht drum herum.
Congestion control hat man natuerlich auch, ja. Aber auch da kann man selbst Einfluss (allein die Auswahl potentieller Berechnungsalgorithmen ist gigantisch) nehmen, ist ja nicht als sei alles vorgegeben. Du kannst auch gnadenlos Pakete rauspumpen, egal ob Dir die Leitung vollaeuft und keine ACKS mehr zurueckkommen oder nicht... und die window size kannst du auch entsprechend anpassen. Grad bei hoher Latenz und dicken Leitungen macht so was ja Sinn (z.B. Hi-Speed TCP). Da ist man durch TCP nicht limitiert, sofern man nicht die Defaults nutzt (die in den meisten Faellen eh ausreichen).
Und TCP retransmit errechnet sich ja aus der geschaetzten RTT, von daher liegt das schon recht nah am Optimum. Dazu kommen mit fast retransmit noch Optimierungen/prediction durch den Kontext anderer Pakete. Ich bezweifle, dass selbstgestrickte Loesungen das sonderlich besser hinbekommen, dafuer ist schon zu viel Know-how in TCP geflossen (wenngleich es immer noch ein paar Schwachstellen hat).
Also ich bin in den meisten Faellen sehr klar pro TCP, auch wenn UDP sicher eine coole Sache ist, wenn es um Multimedia Content geht oder eben um verbindungslose Anfragen. ;)
Grad das AoE Paper ueberflogen, hab grad nicht mehr die Zeit ins Detail zu gehen, aber so wie ich das mit dem Turnkonzept und der lokal berechneten Simulation verstehe, ist das groesste Risiko dabei doch, dass man Clienthacking Informationen in die Hand gibt, die der normale User noch nicht hat. Sie schreiben Sicherheit sei grad ein Vorteil der Simulationsloesung, aber was wenn ein Hack einfach die Simulation normal ausfuehrt und in einem zusaetzlichen Layer zwei turns (also 200-400ms!) frueher Informationen einblendet, die man eigentlich erst zwei turns spaeter erfahren wuerde? Es macht doch einen Riesenunterschied, ob ich einen Wechsel im Focus fire des Gegners eine halbe Sekunde vorher mitbekomme oder nicht... und ich finde das ein ziemlich grosses Manko, bzw. ein Killerargument... oder hab ich da etwas falsch verstaden?
Ich vermute mal AoE hatte einfach keine Hacking Szene, die auch nur ansatzweise Skill und Popularitaet wie in d2 oder wc3 erreicht hat, wo komplette Komprimierungs- und Verschluesselungsalgorithmen reverse engineered wurden, sonst waere das Konzept ziemlich auf die Schnauze geflogen...