Ich möchte von Grund auf eine Art kleines (extrem kleines und einfaches) MMORPG-Spiel mit Klickbewegungen innerhalb eines gegebenen Rasters aufbauen (so etwas wie ein Online-Pokemon-Spiel). Wenn ich auf eine Zelle klicke, bewegt sich der Spieler, um den spitzen Bereich zu erreichen (mit einem Wegsuch-Algorithmus wie A *). Aber ich habe keine Ahnung, wie man das Netzwerkprotokoll des Bewegungssystems erstellt. Und das Thema zu googeln scheint mir nicht viel zu helfen. Ich muss eine Wahl treffen: Entweder ich sende eine Nachricht an den Server jedes Mal, wenn ich von einer Zelle zur anderen gehe (was überhaupt nicht effizient ist, denn wenn wir uns in einem 100ms Latenznetzwerk befinden, kann ich nur 10 Bewegungen pro Sekunde erkennen und wenn ich den Server frage, die Bewegung zu bestätigen, kann es nur 5 moves/sec machen) - entweder sende ich eine Nachricht jedes Mal, wenn der Spieler seine Richtung ändern will (er klickt auf eine andere Zelle). Der Client sendet periodisch seine Position an den Server und überprüft, ob er mit dem Ziel übereinstimmt.MMORPG Moving-Protokoll-Mechanismus
Die zweite Lösung sieht viel besser aus als die erste und ich denke, dass ein echtes Spielsystem diese Strategie umsetzen muss. Liege ich falsch?
Auch, wie können wir Systeme basierend auf dieser Lösung bauen, die nicht einen modifizierten (gehackten) Client in der Lage sein, falsche Positionen zu senden und Teleport wohin sie wollen? Realisieren reale Systeme etwas wie ein "inkohärentes gesendetes Positionssystem", das versuchen wird, diese Probleme zu erkennen und zu beheben?
Oder ist etwas einfacher zu implementieren? Vielen Dank
Wird das Spiel rundenbasiert sein? Wenn ja, würde ich alle Bewegungen sammeln, bevor die Runde vorbei ist, dann würde ich sie als Paket zu den Servern schicken. und geh von dort. Nun, wenn es in Echtzeit ist, dann möchten Sie ja jede Bewegung an den Server senden. – ScarletMerlin
Gute Frage :) Nein, es ist Echtzeit, aber ich muss nicht jede Bewegung an den Server senden, ich brauche nur eine Art Synchronisation zwischen dem Client und dem Server (die lokale und die Online-Positionen müssen immer ganz in der Nähe sein) –