Ich arbeite derzeit an einem Online-Multiplayer-Spiel in Echtzeit. Ziel ist eine Client / Server-basierte Verbindung mit dem UDP-Protokoll. Bisher habe ich UDP für Spielerbewegungen und TCP für Ereignisse verwendet (ein Spieler schießt, ein Spieler verliert das Leben), weil ich sicher sein muss, dass solche Daten bei allen mit dem Server verbundenen Spielern ankommen. Ich weiß, dass UDP als "unzuverlässig" bezeichnet wird und einige Pakete verloren gehen können. Aber ich habe überall gelesen, niemals TCP und UDP zu mischen, da dies die Verbindung beeinträchtigen kann.
Die Hauptfrage ist, wie ich mein Netzwerk organisieren soll.
UDP ist verbindungslos. Wie soll ich speichern, wer wer ist? Soll ich IP-Adressen der Kunden in einer Liste speichern?
Soll ich TCP für wichtige Ereignisse oder UDP verwenden? Wie kann ich sicherstellen, dass keine Daten verloren gehen, wenn ich UDP verwenden muss?
Wenn ich sowohl TCP als auch UDP verwende, muss ich für jeden Spieler seine IP in einer Liste (für UDP) und den TcpClient speichern, der in einer anderen Liste (für UDP) verbunden ist. Wie könnte ich das ändern, um effektiver zu sein?