Hallo Leute
Ich sitze nun seit längerem an einem Onlinespiel und benutze 39DLL.
Ich habe mich ein bisschen im Internet umgeschaut und habe erfahren, dass die "external_calls" in Game Maker ein Spiel unter Umständen stark verlangsamen können.
Hinter jedem write- und read-script (writebyte, writestring,...) verbirgt sich ein external_call. Mittlerweile häufen sich diese, besonders wenn viele Mitspieler auf dem Server verbunden sind.
Nun hatte ich die Idee, dass ich ALLE Nachrichten, die gesendet werden sollen, in einen einzigen String zu packen und dann über die Funktion writestring() zu senden und mit readstring() zu empfangen.
Beispiel:
Alles anzeigen
Jetzt versuche ich mit den zahlreichen Game Maker-Stringfunktionen den String zu entpacken und zu gliedern, sodass ich die Werte wie vorgesehen weiterverwenden kann.
Nun meine eigentliche Frage:
Ist das sinnvoll? Ich glaube nämlich, dass ich gerade was die Reduktion von external_calls angeht ordentlich an Performance gewinnen kann.
Was haltet ihr davon? Habt ihr irgendwelche Tipps? Ich würde mich auch über eine kleine Hilfestellung freuen, wie ich einen String wie im Beispiel em effizientesten umwandeln kann.
Schonmal Danke im Voraus
Ich sitze nun seit längerem an einem Onlinespiel und benutze 39DLL.
Ich habe mich ein bisschen im Internet umgeschaut und habe erfahren, dass die "external_calls" in Game Maker ein Spiel unter Umständen stark verlangsamen können.
Hinter jedem write- und read-script (writebyte, writestring,...) verbirgt sich ein external_call. Mittlerweile häufen sich diese, besonders wenn viele Mitspieler auf dem Server verbunden sind.
Nun hatte ich die Idee, dass ich ALLE Nachrichten, die gesendet werden sollen, in einen einzigen String zu packen und dann über die Funktion writestring() zu senden und mit readstring() zu empfangen.
Beispiel:
GML-Quellcode
Jetzt versuche ich mit den zahlreichen Game Maker-Stringfunktionen den String zu entpacken und zu gliedern, sodass ich die Werte wie vorgesehen weiterverwenden kann.
Nun meine eigentliche Frage:
Ist das sinnvoll? Ich glaube nämlich, dass ich gerade was die Reduktion von external_calls angeht ordentlich an Performance gewinnen kann.
Was haltet ihr davon? Habt ihr irgendwelche Tipps? Ich würde mich auch über eine kleine Hilfestellung freuen, wie ich einen String wie im Beispiel em effizientesten umwandeln kann.
Schonmal Danke im Voraus


"Make love, not Warcraft"