Welche Informationen für Strategiespiele wie command & conquer syncron halten?



  • Hallo,

    wenn man ein Strategiespiel wie Command & Conquer Programmiert und die Netzwekunterstützung einbaut, was hält man dann syncron?

    Man kamm ja nicht permanent die Position jeder Einheit mit Fahrtrichtung und alle Kugeln versenden und das 24 mal die Sekunde.

    Ich habe da schon drüber nachgedacht und wollte z.B. für eine Einheit "beginnt zu schießen" und "beendet schießen" übermitteln. Aber dann müsste ich ja UDP nehmen weil eine Neuübertragung bei Verlußt ja eh zu zu großen Verzögerungen führt. Aber wenn dann z.B das Paket zum Beenden nicht ankommt, schießt die Einheit beim Client ja ewig weiter. Außerdem kann es ja wegen der Paketverzögerungen passieren, dass beim Client mehr oder Weniger Kugeln zu sehen sind als beim Server und so der angerichtete Schaden nicht mehr syncron ist. Also müsste ich auch wieder den angerichteten Schaden übermitteln usw.
    Wenn ich das alles berücksichtige, muß ich aber wieder zu viel senden...

    Also was genau sendet man und was berechnet man auf dem client selber um keine asyncronitäten zu riskieren?



  • sende doch einfach um die befehle. um den rest kümmert sich dann die spiellogik



  • Computerspiele | ISBN: 3826609204

    Darin stehts. Gutes Buch.

    Da ist ein Beispiel wie es bei WarCraft gelöst wurde.
    Ich fass es jetzt nur grob zusammen.

    Die Spiele haben ein synchronen Zykluscounter laufen. Wenn du jetzt einer Einheit einen Befehl gibst, überträgst du an den Server "Führe Befehl aus bei Zyklus 393483 aus".
    Und auf deinem System wird es natürlich auch erst dann ausgeführt.
    Jetzt wird man sich fragen: Das merkt man doch, wenn die Befehle erst nach einer kleinen Verzögerung ausgeführt werden.
    Aber nein, der Sound zum Beispiel wird direkt ausgegeben. Zum Beispiel "Ja! SIR!".
    So fällt es dem Spieler nicht mehr auf.



  • otze schrieb:

    sende doch einfach um die befehle. um den rest kümmert sich dann die spiellogik

    Genau genommen die Spielerbefehle, also z.b. Einheit x in Gebäude y gebaut, oder x Angriffsbefehl auf Position y.f'`8k

    Gruß, TGGC (\-/ returns)



  • Jetzt habe ich begonnen darüber nachzugrübeln, wie man wenn die Pakete verschiedene Laufzeiten haben, einen Zählcounter syncronisieren soll.

    Steht das auch im Buch?

    Und steht da auch wie lange man die Verzögerung zum Ausführen des Befehls zu wählen hat?

    Ob man TCP oder UDP benutzen soll?

    Oder wo bekommt man sonst diese Informationen her?



  • Verzögerung natürlich entsprechend der Verbindung. f'`8k

    Gruß, TGGC (\-/ returns)



  • Andreas XXL schrieb:

    Jetzt habe ich begonnen darüber nachzugrübeln, wie man wenn die Pakete verschiedene Laufzeiten haben, einen Zählcounter syncronisieren soll.

    Steht das auch im Buch?

    Und steht da auch wie lange man die Verzögerung zum Ausführen des Befehls zu wählen hat?

    Ob man TCP oder UDP benutzen soll?

    Oder wo bekommt man sonst diese Informationen her?

    AUSPROBIEREN?!


Log in to reply