Ich habe derzeit ein ziemlich ehrgeiziges Projekt durchgeführt. Kurz gesagt, es ist ein Echtzeit-Multiplayer-Strategiespiel mit Bakterienmechanik.
Im Wesentlichen habe ich zwei entfernte Spieler in der Umgebung, die bakterienähnliche Einheiten hervorbringen können, die sich gegenseitig angreifen und vermehren und sich selbst duplizieren, bis ein Ressourcenlimit erreicht ist. Dies führt häufig dazu, dass mehr als 200 Spielobjekte auf dem Bildschirm gerendert werden, jedes mit seinem eigenen Status und seiner eigenen Bewegung. Das hört sich schlecht an, aber das lokale Gameplay gegen einen Bot ist tatsächlich sehr gut, und ich habe es geschafft, es ziemlich performant zu machen.
Das Problem tritt jedoch auf, wenn ich versuche, dieses Spiel zu vernetzen. Ich habe bereits versucht, diesem Handbuch zu folgen, um diese Funktion zu implementieren: http://www.paladinstudios.com/2013/07/10/how-to-create-an-online-multiplayer-game-with-unity/
Dies erzeugt selbst bei bester Latenz ein ziemlich langsames, unangenehmes Spielerlebnis. Dies wird wahrscheinlich dadurch verursacht, dass Bewegungsdaten für Hunderte von Einheiten übertragen werden müssen.
Die Frage, die ich stelle:
Wie kann ich die Vernetzung und Synchronisation vieler sich bewegender Einheiten zwischen zwei Clients optimieren?
Ich habe bereits über einen Weg nachgedacht, dies zu tun. Nachdem sie eine Einheit erzeugt haben, bewegen sie sich nur in eine Richtung, bis sie auf etwas treffen - vielleicht kann ich nur synchronisieren, wenn Einheiten erzeugt werden und wenn sie mit einem anderen Objekt interagieren? Hätte das viel Nutzen? Was ist der ideale Weg, um dies umzusetzen?
Vielen Dank im Voraus für die Antworten!