Game maker monster online / server überlastung

  • GM 8

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

  • Game maker monster online / server überlastung

    Hi gmd!

    Ich habe mein eigenes system entwickelt um monster online zu machen. (39dll)
    Seitdem ich dies eingebaut habe, zeigt der server mir nach 40 min an:

    Last minute up: 3800083.63 KB's
    Last minute down: 370867.45 KB's

    Ich finde das ein bischen viel und wollte fragen ob das normal ist
    wenn man ca 60 -80 monster x & y daten versendet ?

    Danke schonmal! :)
  • ROFL.

    Zwei Sachen die du vielleicht beachten solltest:
    - Was der Spieler nicht sieht oder nicht wissen soll, wird ihm auch nicht zugesendet. Statt alle Monster auf aktuellstem Stand zu halten, mach das nur mit mit denen, die in der Nähe sind. Das wird halt jetzt ne Menge zusätzliche Arbeit, wenn du es richtig machen willst, aber es ist der einzige richtige Weg das anzugehen. Wenn das Spiel in mehrere Abschnitte aufgeteilt ist, geht es einfacher.
    - Position nicht jeden Step senden, am Besten nur bei jeder Änderung. Jede 3 oder 5 Steps (evtl. mit Geschwindigkeit) tut's allerdings auch.
  • luky300 schrieb:

    1.) Ich würde die hspeed udn vspeed Werte versenden.


    Dann muss er sich trotzdem noch eine Methode zur Synchronisation überlegen, weil in diesem Fall die sogenannten Race Conditions eine entscheidende Rolle spielen. Nur, weil der Server "gleichzeitig" an zwei Clients die neue Geschwindigkeit eines Objekts schickt, heißt das nicht, dass die auch gleichzeitig ankommen. Und je nach dem, wann eine Nachricht mal durch alle Abstraktionsschichten hindurch beim Programm angekommen ist, befindet sich das betroffene Monster noch/schon an einem anderen Ort, wenn es anfängt, seine Geschwindigkeit zu ändern. Die Internetverbindung spielt dabei genauso eine Rolle, wie die Auslastung des Rechners, auf dem der Client läuft.

    Ich meine mich von früher noch an ein Pong-Example zu erinnern, bei dem genau aus diesem Grund nicht nur die Position des eigenen "Schlägers" übertragen wurde, sondern vom Server an den Client auch die aktuelle Position des Balls.
  • könnte mir vorstellen, dass es so ganz gut klappt:
    - server vergleicht abstand spieler zu monster,
    - wenn: kleiner ist als zb das fenster vom client:
    -> monsterposition senden

    oder noch besser:
    [...]
    -> wenn: monster noch nicht auf client vorhanden:
    >monsterposition senden
    wenn nicht:
    >wenn sich h-/vspeed verändert h-/vspeed senden UND alle was weiß ich alle 4 Sekunden position senden