Packt mit Variablen senden

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

  • Multiplayer Performance Tipps


    Verschicke so wenig Pakete wie möglich
    Ein Paket zu verschicken dauert lange. Verknüpfe so viele Daten wie möglich zu einem Paket zusammen. Versende nicht für eine Instance Separate x-, y- Koordinaten, direction, sprite_index, Waffendaten, etc. sondern stopfe sie in einen String wie diesen:
    --------------------------------------------------------
    120|338|-2.1|0.4|201|f|k|549749
    --------------------------------------------------------
    dann verschicke den codierten String. Es ist immer schneller ein Paket auf dieser Weise zu codieren und decodieren, als separate Daten zu senden.

    Das bedeutet aber auch, ein Paket nicht bei jedem Stepp zu versenden, das sind eindeutig zu viele Nachrichten. Eine Faustregel ist, für jeden Spieler 4 Pakete pro Sekunde bei Internet-spielen, 6-8 Pakete, wenn jeder eine schnelle Verbindung besitzt, und 10-15 bei einem LAN Spiel zu versenden.

    Face in the wind, we're riding the storm
    We'll stay our course whatever will come
    ~~ Stay (Running) Wild ~~
  • Es gibt auch eine etwas schönere und einfachere methode wenn du nur Bytes versenden willst (zahlen von 0-255), indem du die in ein Char Konventierst.
    Im GM heißt der Befehl glaub ich chr(x).

    Also so zb.:

    Du sendest diese Zahlenfolge:
    23 54 100 32

    dann machst du so:

    GML-Quellcode

    1. str = chr(23)+chr(54)+chr(100)+chr(32)


    Das wären dann 4 Zeichen.
    Die Sendest du.
    Und beim Empfänger einfach wieder in ein Byte zurückkonventieren mit ord(char);

    So zb.:

    GML-Quellcode

    1. zahlen[0] = 0
    2. // str = chr(23)+chr(54)+chr(100)+chr(32) // Für str das empfangene
    3. for(i=0;i<string_length(str);i+=1)
    4. {
    5. zahlen[i] = ord(string_char_at(str,i))
    6. }




    Hoffentlich hast du mich verstanden >_> (was bei meiner erkärung beinahe ein Wunder wäre)


    Gruß,
    FOODy