Internet-Echtzeitspiele: UDP oder TCP?



  • Hallo,

    sind Echtzeit-Internetspiele TCP- oder UDP-basierte Anwendungen??
    bzw. welchen Typ von Socket sollte man für Internet-Verbindungen bei Echtzeitspielen (zB 3D-Shooter, Echtzeit-Strategiespiele, ...) benutzen:
    Verbindungsorientierte (TCP), oder Verbindungslose (UDP)?

    Vorteile von TCP:
    Der Spielstand ist zu jedem Zeitpunkt konsistent, d.h. die Spielstände der Teilnehmer sind synchronisiert, da ja keine Pakete Information verloren ging.
    Jeder sieht also den gleichen Zustand (wichtig für das Gefühl der Fairness)
    Nachteil: Ein Spieler mit schlechter Netzverbindung bremst das gesamte Spiel aus, da der Server auf die synchronisation warten muss (=>Lag).

    und entsprechend mit UDP:
    Spieler mit schneller Netzanbindung werden nicht durch die langsameren gestört.
    Aber: Es können Pakete verloren gehen oder zu späht ankommen.
    => Inkonsistenzen im Spielablauf (verschiedene Spieler sehen verschiedene Abbilder der Welt, es kommt u.U. zu abrupten Sprüngen der Spielfiguren, etc.)

    Frage: wie machen's wohl die Grossen? (Half-life, Counterstrike, Starcraft, ...)



  • Halflife dürfte mti UDP arbeiten. Bei 3D-Shootern ist es wichtiger, dass die Infos möglichst schnell ankommen als dass alle Infos ankommen. Reaktionszeit ist alles. Wenn die Figuren mal springen ist das besser als das ganze Spiel runterzuziehen und noch weiter, wenn ein Paket verloren geht und sagen wir erst 2 Sekunden später ankommt, ist die Info sowieso wertlos, da neue Infos bereits vorliegen.
    Starcraft würde ich mehr auf UDP tippen, dort ist weniger Action im Sekundenbruchteilbereich wichtig, sondern das Ergebnis.



  • Wenn man sich die notwendigen Firewall-Settings anschaut, so stellt man fest, daß praktisch alle Spiele sowohl TCP als auch UDP benutzen.

    Das macht auch Sinn, bestimmte elementare kleine Informationspakete zur Synchro verschickt man via TCP, den großen Datenfluß an allerlei Weltdaten und sukzessiven zeitlichen Änderungen (quasi die Frames im Rohformat) haut man per UDP raus, da dort Verluste gefangen werden können.

    Analogie: Standbilder per TCP, Bewegungsbilder per UDP. Sowie bei MPEG mit den I-Frames... ist der Stream gestört, fängt er sich an den FIxpunkten wieder.



  • Bei sämtlichen Blizzardspielen funktioniert das battle.net(also die Chatplattform) alleine mit TCP und im Spiel kommt dann UDP(und TCP auchnoch?) zum Einsatz.



  • Ich spielte oft Starcraft mit einem 56K modem.
    Kann mich nicht daran erinnern irgendwelche Inkonsistenzen gesehen zu haben.
    Tippe hier also auf 100% TCP.
    Bei 3D Shootern dagegen schon.

    Ich frage mich ausserdem:
    Läuft die Gesamte Spiel-Engine auf dem Server oder berechnen die Clients einen Teil?
    z.B. Kollisionsabfragen: Eigentlich müsste alles der Server übernehmen, um Konsistenz zu gewahren.
    Das Würde auch das weitverbreitete Cheating verhindern.
    Ist aber in der Praxis wohl nicht durchzuführen.



  • Nope Starcraft läuft auf jeden Fall auch mit UDP



  • jau 100 pro.
    Ich hab mal aus Spass versucht mich mit dem bnet über einen zweiten Rechner zu verbinden, also bnet->mein Programm(Rechner1)->Starcraft(Rechner2) weil ich mir mal anschauen wollte wie die das mit der Übertragung machen.
    Bis ins bnet bin ich gekommen, aber als ich spielen wollte meinte er ich utnerstütze kein UDP(war auch richtig, hatte ich ja auch nochnicht eingebaut sondern nur tcp/ip).



  • gehört wohl eher in das Spiele Forum



  • Ich verschieb dich mal ins Wichser-Forum



  • 😮 😮 😮 😮 😮 😮 😮 😮

    [ Dieser Beitrag wurde am 01.07.2003 um 18:05 Uhr von KXII editiert. ]



  • Original erstellt von TriPhoenix:
    Halflife dürfte mti UDP arbeiten. Bei 3D-Shootern ist es wichtiger, dass die Infos möglichst schnell ankommen [...]
    Starcraft würde ich mehr auf UDP tippen, dort ist weniger Action im Sekundenbruchteilbereich wichtig, sondern das Ergebnis.

    😕 ??

    TCP meinst Du wohl... 🙂

    Also Quake zeigt im Multiplayer als Protokoll ja UDP o. IPX an...

    Trotzdem wird die Verbindung meistens erst mit TCP aufgebaut. Und Chats etc. laufen auch mit TCP...

    Die Analogie mit den I-Frames is' gar net schlecht...

    DirectPlay funzt doch glaub' ich auch so, oda?!


Anmelden zum Antworten