Konzeptfrage zu Netzwerk Transfer bei einem kleinen Spiel

Biergamasda

Erfahrenes Mitglied
Hallo Leute,

Ich bin gerade dabei, mir ein kleines Bomberman zu basteln, hatte das schon vor 2 Jahren einmal angefangen und will es jetzt endlich zur Vollendung bringen.

Also, kurz zum Spiel:
Klassisches Bomberman 2D mit einer MxN Matrix als Spielfeld und 2-4 Spielern. Spieler legen Bomben, diese haben ein Delay bis sie explodieren, es gibt "power ups" und zerstörbare/nicht zerstörbare Felder.

Jetzt zum Problem:
Habe mir da einige Gedanken dazu gemacht, und mal 2 Überlegungen in die engere Auswahl eingeschlossen

1. Übertragen der kompletten Spielfeld-Matrix als Array etc von Binärwerten welche den Feld Stati entsprechen. Client schickt Steuersignale an den Server, dieser verarbeitet alles und schickt das Ergebnis in Form des neuen Spielfelds zurück.

2. Clients besitzen komplette Logik und der Server leitet die Steuersignale nur weiter.

Probleme hierbei:
1. Es kann passieren, dass der Benutzer eine Taste drückt, und sich erst nach xx Zeiteinheit das Resultat bemerkbar macht

2. Es kann zwar nicht passieren, dass eigene Aktionen verzögert durchgeführt werden, jedoch kann es passieren, dass z.B. Bomben vom Gegner gelegt werden, bereits explodiert sind bevor der Client x erst erkennt, dass etwas passiert ist. (Aktion wird mit Timestamp übertragen)

Gibt es da noch andere Ansätze dazu oder muss ich mich einfach damit abfinden, dass man um die Problematik der Verzögerung im Netzwerk nicht herumkommt?

Danke schon mal im Voraus

Gruß
Christoph
 
Hallo,

ohne jetzt ganz tief im Thema zu sein, wirst du das Netzwerk/ die Verzögerung wohl nicht umgehen können.
Wenn ich mich entscheiden müsste, würde ich mich für die erste Variante entscheiden. Ich denke, dass das
Spiel im Grunde so für alle fairer ist. Der Server schickt gleichzeitig an alle die Veränderung. Bei gleicher Anbindung,
bekommen alle zu gleichen Zeit die nötigen Informationen.

Grüße
 
Ich persönlich bevorzuge auch diese Variante, wobei mich dabei etwas stört, dass ein enormer overhead anfällt und so das Netzwerk alles andere als optimal genutz wird :) Aber ich werds einfach mal so ausprobiern und seh dann ja wie gut es funktioniert. Besten Dank für die Antwort
 
Zurück