Hallo zusammen
ich bin gerade dabei als Schuleprojekt ein PingPong Spiel übers Netzwerk zu programmieren.
Dabei gibt es einen Server und 2 Clients pro Spiel.
Die Clients senden bei einem Tastendruck diese Information an den Server.
Der Server fürt die Berechnungen aus und sendet dann die Geschwindigkeit mit der sich das Objekt bewegt zu den Clients.
In bestimmten Zeitabständen wird zusätzlich die aktuelle exakte Position des Objekts vom Server an die Clients gesendet.
Die Bewegung von Objekten wird also gleichzeitig von Server und Clients ausgeführt und immer wieder synchronisiert.
Das Problem ist nun, dass der Server den Loop schneller abarbeitet als der Client (Der Client muss die Objekte auch neu zeichnen).
Außerdem kommt es auch vor, dass der Loop einmal schneller und einmal langsamer abgearbeitet wird. Hierfür merke ich mir die Zeit, die das durchlaufen des Loops benötigt hat und errechne mithilfe der Zeitdifferenz zwischen 2 durchläufen und der Bewegungsgeschwindigkeit des Objekts die aktuelle Position.
Es ist nun kein Problem, wenn der Loop einmal schneller bzw. langsamer durchlaufen wird, jedoch schaffe ich es nicht den "schnelleren" Server mit dem "langsameren" Client zu synchronisieren ohne das bei der Übertragung der aktuellen Position große Sprünge entstehen.
Zum Synchronisieren benötige ich zusätzlich das Delta des Servers, jedoch ist dafür das Netzwerk zu langsam.
Wie wird das in anderen Netzwerkspielen gelöst bzw. hat jemand eine Idee wie ich das lösen könnte?
Vielen Dank
ich bin gerade dabei als Schuleprojekt ein PingPong Spiel übers Netzwerk zu programmieren.
Dabei gibt es einen Server und 2 Clients pro Spiel.
Die Clients senden bei einem Tastendruck diese Information an den Server.
Der Server fürt die Berechnungen aus und sendet dann die Geschwindigkeit mit der sich das Objekt bewegt zu den Clients.
In bestimmten Zeitabständen wird zusätzlich die aktuelle exakte Position des Objekts vom Server an die Clients gesendet.
Die Bewegung von Objekten wird also gleichzeitig von Server und Clients ausgeführt und immer wieder synchronisiert.
Das Problem ist nun, dass der Server den Loop schneller abarbeitet als der Client (Der Client muss die Objekte auch neu zeichnen).
Außerdem kommt es auch vor, dass der Loop einmal schneller und einmal langsamer abgearbeitet wird. Hierfür merke ich mir die Zeit, die das durchlaufen des Loops benötigt hat und errechne mithilfe der Zeitdifferenz zwischen 2 durchläufen und der Bewegungsgeschwindigkeit des Objekts die aktuelle Position.
Es ist nun kein Problem, wenn der Loop einmal schneller bzw. langsamer durchlaufen wird, jedoch schaffe ich es nicht den "schnelleren" Server mit dem "langsameren" Client zu synchronisieren ohne das bei der Übertragung der aktuellen Position große Sprünge entstehen.
Zum Synchronisieren benötige ich zusätzlich das Delta des Servers, jedoch ist dafür das Netzwerk zu langsam.
Wie wird das in anderen Netzwerkspielen gelöst bzw. hat jemand eine Idee wie ich das lösen könnte?
Vielen Dank
Zuletzt bearbeitet: