Ich habe die Grundlagen von TCP-Sockets, UDP-Kommunikation usw., kann aber nicht viel darüber finden, wie diese auf eine Echtzeit-Spielumgebung angewendet werden können.
Ich habe einen Pong-Klon mit 4 Spielern und muss die Paddelpositionen zwischen den drei Clients und dem Server synchronisieren (der Server ist der vierte Spieler). Derzeit verwende ich UDP, um Echtzeit-Updates (Paddelbewegungen) zu senden, und TCP, um die Spielelobby usw. einzurichten.
Ist es eine SCHLECHTE Sache, riesige Mengen an UDP-Verkehr zu spammen? Sollte ich etwas wie DCCP auf seine Überlastungsmerkmale untersuchen? Oder ist das bei einem kleinen Projekt wie diesem nicht wirklich ein Problem?
Wann sollten Synchronisierungsnachrichten zwischen Client / Server gesendet werden? Derzeit spammt der Server UDP-Pakete mit dem aktuellen Spielstatus so schnell wie möglich aus, und Clients spammen ihre Paddelposition so schnell wie möglich an den Server zurück. Ist das der beste Weg, es zu tun? Gibt es eine Verzögerung, die ich hinzufügen sollte, damit Nachrichten alle X Millisekunden gesendet werden, oder sollte ich nur Nachrichten senden, wenn Ereignisse eintreten? (zB Paddelgeschwindigkeit aufgrund von Benutzereingaben geändert)
Wäre es besser, Kunden dazu zu bringen, ihre Paddelpositionen Peer-to-Peer miteinander zu kommunizieren?
Ich stelle diese Fragen im Kontext von Pong, bin aber auch daran interessiert, wie diese Probleme in anderen Spielen oder allgemeinen Lösungen überwunden werden.