online multiplayer server-client beitritts synchronisation

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • online multiplayer server-client beitritts synchronisation

    Ich bräuchte wieder mal Hilfe bei meinem 2d multiplayer sidescroller
    wenn dieses mal auch mehr teoretischer art
    und zwar kann man beitreten wenn das spiel schon läuft nur das es zu diesem Zeitpunkt bereits Veränderungen im level gegeben hat ( bsp eine kiste zerstört/beschädigt oder ein gegner tot eine kugel in der luft) ein beitretender spiele muss also erstmal erfahren in wie weit sich das level vom ursprung verändert hat.
    Mir falle da direkt mehrere Möglichkeiten ein
    [ps mein Spiel ist server- client basiert also alle spieler haben verbindung zum server(39dll) jedoch nicht untereinander]

    1. ein spieler speichert alle objekte und deren zustand /variablen in einer txt datei und sendet sie an den server welcher sie dann an den neubeitretenden spieler weiterleitet der dann daraus sein level auf den aktuellen zustand anpasst.

    oder 2. jedesmal wenn eine veränderung im level passiert wird das an den server übermittelt welcher dann dem neubeitretenden spieler die variablen sendet damit dieser dann die richtigenänderungen vornehmen kann.


    Beide möglichkeiten finde ich sehr kompliziert und gefallen mir nicht wirklich also jetzt die Frage an euch welche Möglichkeit ist vorzuziehen oder weiß jemand noch eine bessere?
    :rage:
  • Wenn du zudem noch auf Nummer sicher gehen willst, würde ich dir empfehlen solche Änderungen vom Server zudem noch überprüfen zu lassen. Heißt: immer wenn es eine Änderung geben soll, wird die vom Server berechnet, und an alle Spieler übermittelt, auch an den, der sie durchführt. Nur so bist du sicher, dass alle Spieler immer alle Änderungen bekommen, und sie bei allen zudem gleich aussehen.
    Natürlich speichert der Server dann die Änderungen selbst ab, um sie neubeitretenden zu übermitteln