Die Implementierung einer Netzwerkverzögerungskompensation ist schwierig. Wie kann dies vermieden werden?
Vielleicht ist es möglich, Tricks anzuwenden und Spielmechaniken so zu entwickeln, dass Verzögerung als unkritischer oder sogar natürlicher Teil des Spiels wahrgenommen wird?
Was sind diese Techniken und gibt es irgendwelche vorhandenen Spiele (MMORPG, Strategien, ...), die solche Techniken verwenden?
AKTUALISIEREN:
Rundenbasierte Spiele erfordern keine Verzögerungskompensation, aber es wäre interessant, Ansätze in Echtzeit zu sehen (oder nur einen Eindruck von Echtzeit, dem wichtigen Teil - Benutzer sollten nicht blockiert und gezwungen werden zu warten).
Der Hauptgrund für mich, Verzögerungskompensation zu vermeiden, ist die Einfachheit.
Antworten:
Es ist üblich, dass der Kunde eine Art Feedback implementiert, um dem Spieler sofort mitzuteilen, dass die von ihm gewählte Aktion registriert wurde, z.
Diese können stattfinden, während die Informationen zum Server übertragen werden, sodass der Spieler nicht merkt, dass seine Aktion noch nicht gestartet wurde. Solange der Server umgehend antwortet und die Aktion bald beginnt, bemerkt der Player die Verzögerung möglicherweise nicht.
Diese Tricks funktionieren in Spielen, in denen die Eingaben der Spieler relativ selten sind, und daher ist die Zeit, die Sie darauf warten, dass eine Eingabe wirksam wird, ein relativ kleiner Teil der gesamten Spielzeit. Daher möchten Sie Möglichkeiten finden, das Spiel so zu strukturieren, dass der Spieler weniger Eingaben vornimmt. Dies bedeutet wahrscheinlich, Spieleraktionen abstrakter zu gestalten und das Spiel das Verhalten auf niedriger Ebene implementieren zu lassen. Beispiele:
quelle
Zufällige Gedanken:
Also ja, viel schummeln.
quelle
Die Antwort ist ganz einfach - baue einfach Spiele, die keine zeitkritischen Abschnitte haben. Sie möchten diese Art von Interpolation aus einem bestimmten Grund vermeiden, den ich für richtig halte. Das bedeutet, dass Sie sich nicht um ein nervöses und schnelles Gameplay sorgen. Dies ist perfekt für viele Spiele, einschließlich Civilization (ein Strategiespiel). Verstehen Sie jedoch, dass dies für ein ECHTZEIT- Strategiespiel NICHT akzeptabel ist, bei dem Sie viele Daten zu variablen Zeiten über das Netzwerk übertragen müssen. Wenn Sie ein Spiel für ein Netzwerk mit sehr hoher Latenz entwerfen möchten, sollten Sie Folgendes berücksichtigen:
Ich hoffe das hilft wenigstens ein bisschen; Ohne genaue Spielideen zu kennen, ist es schwierig. Ich gehe davon aus, dass Sie Ihre Gründe dafür haben, Ihr Spiel nach einem solchen Muster zu erstellen (Einfachheit, Einsparung von Bandbreite, Reduzierung der Netzwerkkomplexität).
quelle
Du könntest auch dafür sorgen, dass Lag aus "realistischen" Gründen Teil deines Gameplays wird. Angenommen, Ihre Spieler sollen einige Roboter aus der Ferne steuern. Sie könnten eine Verzögerung von mindestens 500 ms oder 1 s erzwingen (Sie müssten ein dynamisches Verzögerungspolstersystem implementieren).
quelle
Es ist auch ein schöner Trick, die Aktionen der Spieler einfach zu verbergen. Viele FPS-Spiele machen genau das. Sie zeigen keine visuellen Elemente der meisten Kugeln, sondern es werden nur Geräusche abgespielt, und Sie erhalten das Ergebnis in Form von Schaden, der den Spielern zugefügt wird.
Ich habe einige FPS-Spiele gespielt, bei denen hochpräzise Waffen (Scharfschützen und dergleichen) sehr deutliche visuelle Effekte aufwiesen, und Sie konnten tatsächlich sehen, dass der andere Spieler hinter Ihnen schoss, aber Sie wurden wegen der Verzögerungskompensation getötet.
quelle