Netzcode: Was sind Ihre erwarteten und maximalen Ziele für Latenz und Paketverlust?

7

Welche Art von Latenzzielen und Paketverlustraten entwerfen Sie beim Erstellen des Netzcodes für ein Videospiel?

Um genauer zu sein, ich habe meinen Netzcode nur im Moment im lokalen Netzwerk. Ich habe vor, WANEM zu verwenden, um Paketverlust und Latenz zu simulieren, bin mir jedoch nicht sicher, was ich für Maximal- und Durchschnittswerte verwenden soll.

Steinmetall
quelle
1
Ich hoffe, dass jemand mit mehr Netzwerkerfahrung als ich mitspielt, aber eine Sache, die Sie beachten sollten, ist die erwartete Geografie Ihrer Spielerbasis. Die Latenzanforderungen für ein LAN-Partyspiel unterscheiden sich von denen, die für 8 bis 16 zufällige Spieler über das Internet ausgeführt werden. Sie unterscheiden sich von denen Ihres globalen MMO in Boston, das Verbindungen aus Taiwan erhält.
Ich schlage vor, es mit zwei oder mehr echten Internetverbindungen auszuprobieren, anstatt eine Simulation mit erratenen Parametern zu verwenden.
Hendrik Brummermann
@ Joe Wreschnig Es ist nur ich, der in meinem Keller herumalbert, es gibt keine erwartete Spielerbasis. Ich habe mich nur gefragt, welche realistischen Ziele angestrebt werden sollen.
Steinmetz

Antworten:

5

Paketverlust ist schwer zu erraten, aber Internet-Latenz sollten Sie wahrscheinlich bis zu ~ 750 ms einplanen, obwohl die überwiegende Mehrheit unter 500 ms liegen wird. Die größten Ausreißer sind Australien <-> US-Pings und Satelliten-Internet. Abhängig von Ihrem Zielmarkt können Sie diese möglicherweise ignorieren. Wenn Sie Dinge für mobile Geräte tun, kann dies noch unvorhersehbarer sein. Als zufällige Schätzung für weniger Paket würde ich sagen, dass wir höchstens 1-5% einplanen sollten. Im Allgemeinen sehen wir viel weniger als das (~ 0,1% im schlimmsten Fall) und normalerweise nur in Großbritannien <-> US-Links zu Stoßzeiten (dh in Großbritannien). Der Paketverlust selbst ist kein Problem, aber wenn Sie die transatlantische Latenz in die Mischung mit der TCP-Neuübertragung einbeziehen, erhalten Sie eine sehr nervöse Verbindung und können Probleme beim Verwalten von Netzwerkpuffern haben (dies war für Dateiübertragungen,

Codierer
quelle
1
Ich bin kein Experte, aber ich teste normalerweise mit weitaus schlechteren Paketverlustraten. Mindestens 10-20%. Einmal habe ich versehentlich den künstlichen Paketverlust in gelassen und ein Spiel mit 90% Paketverlust vorgeführt (es hat perfekt funktioniert);)
Martin
Wir haben seltene Fälle von bis zu 50% gesehen, aber nichts, worauf es sich zu testen lohnt. Ich denke, das Beste (das Schlimmste?), An das ich mich erinnern kann, war ein Mann, der WLAN aus mehreren Gebäuden auf einer Militärbasis im honduranischen Dschungel nutzte (der dann für den Backhaul über Satellit ging). ~ 1000 ms Latenz und 50% Paketverlust. Im Allgemeinen verhindert das Fenster normalerweise, dass TCP zu viel sendet, sobald die Verbindung überlastet ist, sodass nur eine Latenzzeit auftritt. UDP ist eine andere Geschichte, aber Sie sollten UDP heutzutage wahrscheinlich nicht für Spiele verwenden.
Coderanger
2
Ich benutze immer UDP für Spiele, aber das hängt sehr stark von der Art der Spiele ab, die Sie machen!
Martin
Nein, das tut es wirklich nicht. UDP hat heutzutage keinen Platz mehr im Gaming. Die Leute scheinen zu glauben, dass TCP einen verrückten Overhead hat, wenn dies wirklich nicht der Fall ist, solange Sie NODELAY einstellen.
Coderanger
1
@coderanger Es geht um Latenz. Wenn ein Paket verloren geht, möchten Sie manchmal nicht eine ganze Ping-Zeit warten, um es erneut zu senden! Manchmal möchten Sie einfach das verlorene Paket vergessen und trotzdem das nächste Paket senden. Denken Sie daran, dass bei einem schnelllebigen Shooter eine Latenz von 100 ms erkennbar ist und die Zuverlässigkeit von TCP Spitzen von bis zu einer Sekunde verursachen kann.
user253751