Was ist der beste Weg, um alle Clients mit einem Server und untereinander zu synchronisieren?
Derzeit verfolgen wir zwei Ansätze:
- Wenn ein Client etwas an den Server sendet, sendet der Server sofort Nachrichten an alle Clients, die sofort reagieren.
- Einführung einer gewissen Zeitverzögerung, bei der der Server mit der Anweisung "Nachrichten an alle Clients sendet"
t
.
Der zweite Ansatz scheint eher dazu zu führen, dass alle Clients besser synchronisiert werden (da er eine gewisse Verzögerung aufweist). Ich frage mich jedoch, ob die Reaktionsfähigkeit zu stark verloren gehen würde (dh der Benutzer klickt auf "Springen" und es gibt eine merkliche Lücke zwischen dem Drücken der Taste und dem tatsächlichen Springen).
Es besteht auch die Möglichkeit, dass Clients ihre eigene Position berechnen (und nicht darauf warten, dass Server sagen, dass Sie gesprungen sind). Aufgrund der unvermeidlichen Verzögerung würden die Clients jedoch nicht mehr synchron sein.
Dann gibt es die ganze Frage zwischen TCP und UDP. weil wir es schnell wollen, aber ich würde es auch hassen, wenn der Server sagt, dass Sie sich an einem völlig anderen Ort befinden, als Sie dachten.
Bei all diesen konkurrierenden Anforderungen wird es sehr ungewiss, wie wir dieses Problem angehen sollen. Welcher dieser (oder anderer) Ansätze eignet sich am besten, um Clients und Server synchron zu halten? Welche werden in der Branche tatsächlich eingesetzt?