Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Ernsthaft, sowas sollte dringend getestet werden, bevor man irgendwelche wüsten Erwartungen aus dem Nichts erschafft. UDP hat gegenüber TCP diverse Probleme, die man eigentlich sehr ungern haben will. Man kann sich da oft eine Menge Ärger sparen, wenn man TCP nutzt. Selbst mit TCP ist ein Ping von 30ms und weniger drin. Also sollte das echt erst probiert werden. Ich frage mich eh woher dieses Vorurteil immer kommt. Es kursiert hier gefühlt in letzter Zeit immer die Meinung, dass TCP für alles zu langsam sei und das halte ich für großen Unsinn.In beiden Fällen möchte ich auf UDP setzen, da ich für das schnelle Gameplay mit TCP keine annehmbare Latenz erwarte.
Ich weis ja nicht wann du das letzte mal bei RakNet geschaut hast, aber interessanter weise hat die von dir gepostete Lib einen recht langen Lizenztext (im vergleich zu RakNet).Zitat
Raknet ist sicherlich toll, aber ich verwende nix was Lizenzen braucht.
Administrator
Ernsthaft, sowas sollte dringend getestet werden, bevor man irgendwelche wüsten Erwartungen aus dem Nichts erschafft.
Zitat von »https://1024monkeys.wordpress.com/2014/04/01/game-servers-udp-vs-tcp/«
Writing a few test programs showed the WiFi occasionally dropping packets, and every time that happened, server response time shot up from 100-150 ms to 1000-2000 ms.
No amount of tweaking of TCP settings could get around this issue.
We replaced the TCP code with a custom reliable UDP implementation which cut the penalty of a lost packet down to an additional 50 ms(!) – less than the time of a complete roundtrip. And that was only possible due having complete control of the reliability layer on top of UDP.
Zitat von »http://gafferongames.com/networking-for-game-programmers/udp-vs-tcp/«
Using TCP is the worst possible mistake you can make when developing a networked action game like an FPS! To understand why, you need to see what TCP is actually doing above IP to make everything look so simple! (...)
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
'nough said.zumindest im lokalen Netz
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »BlueCobold« (24.02.2015, 14:05)
Administrator
Na dann nenn mir mal die Lösung, die du gehst, wenn es sich bei dem verlorenen Paket um etwas wichtiges handelt - wie z.B. einen Schuss-Befehl, Bewegungs-Request des Spielers oder eigentlich überhaupt alles, was ein Spieler als Request an den Server schickt.
Sicherlich hatten auch wir Latenzen, aber die wichtigen sind immer die ausgehenden Befehle, die der User selbst auslöst - und da hast du überhaupt gar nichts davon, wenn diese nicht zuverlässig zum Server übermittelt werden - außer natürlich wütende Spieler ("ich habe 5mal geklickt und kein Schuss ging raus").
Du kannst natürlich Deiner UDP-Bibliothek sagen, dass diese Dinge wichtig sind und immer zuverlässig ankommen sollen, aber dann ist das schlecht und langsam implementiertes TCP auf UDP oben drauf. Na bravo.
Wie wäre es denn stattdessen Verbindungen sinnvoll zu trennen? Die Daten, die nicht wichtig sind und die, die es sind? Eine moderne Bibliothek kann das sicherlich, ohne dass ich sie dazu zwinge alles als Fake-TCP-over-UDP zu behandeln.
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Du musst lernen zu lesen und zu verstehen. Das da hat nämlich niemand behauptet. Ich habe behauptet, dass er so eine Anforderung eventuell gar nicht hat und sich mit TCP viel Ärger spart. Aber wie gesagt, da Ihr es alle genau wisst, soll er doch machen wie er/Ihr denkt. Is nicht mein ProblemIch weiss jetzt nicht wo der Aberglaube herkommt, dass TCP besser sein soll für Echtzeit-Spiele.
Oder natürlich das genaue Gegenteil ist der Fall - wie etwa bei Spielen, die Skills einsetzen im Gegensatz zu "point & click Shootern". Da kann es dann sogar sehr wichtig sein die Reihenfolge einzuhalten und alles andere zerstört komplett das ganze Match, wohingegen die Verzögerung verkraftbar gewesen wäre. Ich denke jetzt auch mal ein ein RTS, wie fatal wäre es da wohl wenn zwischendrin mal hier und da Klicks verschwinden würden oder sich deren Reihenfolge ändert? Bei den APM, die in den Ranking-Spielen ablaufen, wohl eher inakzeptabel.Manchmal ist es besser, die dann komplett fallenzulassen, sonst verärgerst du den Spieler noch mehr, weil nicht nur ein Schuss nicht ausgeführt wurde, sondern eine ganze Salve mit einer großen Verzögerung, dir alles sinnlos macht.
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »BlueCobold« (25.02.2015, 07:00)
Werbeanzeige