Host/Client funtioniert nicht

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

  • Host/Client funtioniert nicht

    Hi,

    wir versuchen gerade im Rahmen eines Projektes die Host/Client variante aus. Das Spiel soll auf HTML5 laufen, wenn wir den Code starten erhalten wir einen weißen Browserbildschirm ohne Fehler, bei der "Default" Einstellung wirft uns der Compiler folgenden Fehler- Es fällt uns gerade etwas schwer den Fehler zu finden.
    ___________________________________________
    ############################################################################################
    FATAL ERROR in
    action number 1
    of Create Event
    for object obj_controller:
    Pop :: Execution Error - Variable references invalid object (-4).<unknown variable>
    at gml_Object_obj_controller_Create_0 (line 10) - server = network_create_server(network_socket_tcp, port, maxplayers);
    ############################################################################################
    --------------------------------------------------------------------------------------------
    stack frame is
    gml_Object_obj_controller_Create_0 (line 10)

    Quellcode

    1. var networktype = network_socket_tcp;
    2. var port = 51264;
    3. var maxplayers = 8;
    4. var buffersize = 1024;
    5. var buffertype = buffer_fixed;
    6. var bufferalignment = 1;
    7. var notification = instance_place(0, 0, obj_message);
    8. notification.message = "Server is up!";
    9. server = network_create_server(network_socket_tcp, port, maxplayers);
    10. global.buffer = buffer_create(buffersize, buffertype, bufferalignment);
    11. ds_list_create();
    12. with (obj_message)
    13. {
    14. instance_destroy();
    15. }
    Alles anzeigen
  • Hi, also ich bin mir nicht sicher, aber ich hatte auch schon mal das Problem, dass GM eine Variable
    nicht erkannt hat. Erst als ich sie vorab definierte und auf 0(oder -1) setzte, war der Fehler weg.
    Du kannst also folgendes prüfen:

    Ist die Variable "server" vielleicht irgendwo als Globale gesetzt?
    Falls ja, dann mußt Du die Schreibweise auf "global.server" ändern.
    Falls nein, dann versuche die Variable vorab zu definieren, "server = -1"

    Was auch noch auffällt, ist die Tatsache, dass Du zwar einige Variablen vorab definierst, aber dann
    statt "networktype", doch die interne Konstante "network_socket_tcp" verwendest. Das dürfte aber
    eigentlich nichts ausmachen, ich wollte Dich nur darauf hinweisen.


    Miradur
  • Weiß ja nicht, aber sollte das vllt instance_create heißen)#?

    GML-Quellcode

    1. var notification = instance_place(0, 0, obj_message);
    2. notification.message = "Server is up!";

    Wenn das Objekt an der Stelle 0,0 nicht existiert, ist nämlich notification auf -4 (was auch irgendwo im Fehler steht) Markiert nur dummerweise die falsche Zeile.
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Du kannst zur Einfachheit instance_create_depth(0, 0, 0, obj_message) nutzen, um einfach die depth auf 0 zu haben. Glaube aber mal gehört zu haben, dass man nicht mit depth selbst arbeiten sollte (wo sowieso dann eine Art neue Layer miterzeugt wird). Aber sollte hier funktionieren (hab selbst kein GM 2 deshalb keine Garantie)
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Uns stellt sich gerade die Frage, ob Host/Client Variante für unser vorhaben überhaupt wichtig/richtig ist. Das Spiel soll hier bei uns im Unternehmen laufen. Die index.html wird hier auf unsererem Servern abgelegt. Über ds_maps würden wir gerade ein Login System schreiben und nach erfolgreichem Login den Spieler eine obj_player zuordnen. Somit würden die Aktionen der anderen Spieler zwar nicht in echtzeit ablaufen , aber dafür nach einem refresh sichtbar sein (was unserem Anspruch auch genügt).

    Das müsste doch auf dieser Basis auch ohne Host/Client laufen oder sehen wir das gerade falsch ?! Ich verstehe die Host/Client variante für windows applikationen, aber sobald ich auf HTML gehe habe ich doch im prinzip schon eine kommunikation zwischen Client und Host ?!
  • Nein, wenn du auf HTML gehst, dann läuft das Spiel im Browser deines Clients. Das Problem ist aber auch eher, dass beim Gamemaker Networking, ein Client ein Spiel hostet. In Windows ist das im lokalen Netzwerk nicht weiter schwer, aber übers Internet schon. Wenn das Spiel ein HTML5 Spiel ist, dass eigtl auf deinem Server liegt und dem client nur durch den Browser "serviert" wird, dann kannst du da mit dem GM nicht soviel Networking betreiben.
    Was du brauchst ist noch eine weitere externe Lösung wie Websockets (socket.io) öÄ.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Benutzer online 1

    1 Besucher