Beginnen met GameMaker Server

If you are developing a game using GameMaker Server, you are to never store or transmit user passwords (or hashes, or encoded variations). Not remotely, nor locally. Any violation of this will get your game banned.

Voordat je begint

Zorg dat je weet hoe je Drag & Drop moet gebruiken en een beetje met GML kunt omgaan. Zorg dat je weet wat variabelen en INI files zijn. Deze post zal vooral gaan over hoe je je game moet beginnen. Het omschrijft wat je moet doen om de game met de server te kunnen laten verbinden, hoe je de game met de server laat verbinden en als laatste hoe je een loginscherm laat zien en spelers in laat loggen.

Bij het starten van een nieuw project zijn er een aantal dingen die je moet doen voordat je game met GameMaker Server kan verbinden. Allereerst moet je je game op de GameMaker Server website registreren.

Je game registreren

GM8 / GM8.1:

De GameID kun je vinden door "Global Game Settings" te openen en dan op het tabblad "Loading" te klikken. De GameID is het getal dat onder in het venster staat, in de text box die "Game Identifier" gelabeld is.

GM:Studio:

De GameID kun je vinden door "Global Game Settings" te openen. De GameID is het getal in het tekstveld die "Game Identifier" gelabeld is linksboven in het venster.

Open de GameMaker Server website als je dat al niet hebt gedaan. Als je nog niet als ontwikkelaar bent geregistreerd, klik dan je naam in de rechterbovenhoek van de pagina, en klik vervolgens op "Als ontwikkelaar registreren" en volg de stappen op de webpagina.

Als je geregistreerd bent als ontwikkelaar, klik dan de "Ontwikkelaar" tab op de menubalk bovenaan de pagina. Scroll naar beneden naar de "Nieuwe game registreren" sectie, en vul de GameID van je game en een titel in. De titel kun je later nog aanpassen. De GameID daarentegen, kun je niet meer aanpassen. Je moet een nieuwe game registreren als je een andere GameID wilt gebruiken.

Met de server verbinden

Nadat je je game hebt geregistreerd kun je de game met de server laten verbinden. Om dat te doen, moet je een object maken dat de extensie initialiseert. Zorg dat je de extensie al aan je game hebt toegevoegd:

GM8 / GM8.1:

Dubbelklik op "Extension Packages" om een extensie aan je game toe te voegen, en selecteer "GameMaker Server+" in de rechter lijst, en klik de Pijl-naar-links knop om de extensie toe te voegen aan je game. Als je "GameMaker Server+" niet in de lijst ziet staan, klik dan "+Install", nog een keer "+Install" en open het bestand met de naam "GameMaker Server X.X.XrX - GameMaker 8 en 8.1.gex" (het bestand zit in de download).

GM:Studio:

Rechtsklik op "Extensions" om een extensie toe te voegen, en selecteer "Import Extension". Open het bestand met de naam "GameMaker Server X.X.XrX - Studio (All/Windows).gex" (het bestand zit in de download). Zorg ervoor dat het bestandstype in de rechter benedenhoek van het venster op "GameMaker Legacy Extension" staat. Als je alleen een game voor Windows maakt, open dan de Windows versie. Als je ook van plan bent de game voor andere platforms te maken, selecteer dan de All versie. De All versie werkt ook als je naar Windows exporteert. Dit kun je later nog makkelijk veranderen.

GM:Studio:

Games gemaakt met GM:Studio hebben een extra object nodig om te werken. Maak een object, en noem het "GMS". Voeg de volgende code toe (Control -> Execute a piece of code):

Create:

gms_init(GMS)

Step:

gms_step()

Draw:

gms_draw()

En als laatste, als je de All versie van de extensie gebruikt, voeg deze code toe aan het Networking event:

gms_network()

Maak het object Persistent en zorg ervoor dat de depth een lage waarde heeft, bijvoorbeeld -100000.

GM:Studio:

Als je een error ziet die zegt dat global.__set niet bestaat, betekent dat dat je een andere GameMaker Server-functie aanroept voordat je gms_init(...) aanroept. gms_init(...) moet aangeroepen worden voordat je een andere GameMaker Server-functie aanroept.

Voeg het volgende stukje code toe aan het GMS object, of een ander initialisatie-object (er wordt later naar dit object verwezen als "GMS". Zorg ervoor dat het object persistent is). gms_settings(...) moet voor ieder ander GameMaker Server script worden aangeroepen, maar nadat gms_init is aangeroepen:

gms_settings(true, 1.0, obj_player, obj_other_player);
room_goto_next();

De Drag & Drop actie "Server settings" op het tabblad "Online 1" en de Drag & Drop actie "Next Room" op het tabblad "Main 1" kunnen ook worden gebruikt. Als je Drag & Drop gebruikt, is de simple mode altijd ingeschakeld.

Voeg de volgende code toe aan het Game End event van het GMS object:

gms_logout()

De Drag & Drop actie "Logout" op het tabblad "Online 1" kan ook worden gebruikt

Het is belangrijk dat je op de juiste manier uitlogt. Als een speler niet goed uitlogt, kan het zijn dat niet alle informatie wordt opgeslagen op de server.

obj_player en obj_other_player moeten twee verschillende objecten zijn. Het "player object" (obj_player) is het object waarin je alle logica van de speler moet plaatsen. Lopen, schieten, levens/health, variabelen instellen, et cetera.

Het "other player object" (obj_other_player) gaat alle andere spelers die online zijn voorstellen. Iedere andere speler die online is krijgt een instantie van het "other player object". Het is niet handig om in dit object levens van de speler af te halen of de speler bijvoorbeeld te laten lopen. Dit object hoort niet in een room te staan, het wordt automatisch door de extensie aangemaakt.

Voeg een sprite aan het obj_player object toe, en zorg dat je met de pijltjestoetsen of WASD rond kunt lopen.

Een loginscherm laten zien

Maak een nieuw object, en noem het iets in de zin van obj_login. Voeg deze code toe aan het create event:

gms_show_login()

De Drag & Drop actie "Show a login window" op het tabblad "Online 1" kan ook worden gebruikt.

Als de speler inlogt wordt het Event User 15 event aangeroepen. Als het loginscherm wordt gesloten wordt Event User 14 aangeroepen.

Voeg de volgende code aan het Event User 15 event toe:

room_goto_next();

De Drag & Drop actie "Next Room" op het tabblad "Main 1" kan ook worden gebruikt.

De game afmaken

Maak 3 rooms: rm_init, rm_login en rm_play. Voeg het GMS object toe aan rm_init, het obj_login object aan rm_login, en het obj_player object aan rm_play. Je kunt de game nu uitvoeren en rondlopen. Als je een tweede instantie van de game uitvoert, en met een andere gebruikersnaam inlogt kun je de andere speler zien.

Reacties (78)

Laatste bericht op 10 Jul 2020

Size43 (Beheerder) op 6 Jul 2014, 18:57:23
Ik heb behoorlijk wat tijd besteed aan het schrijven van deze tutorial. Is 'ie beter dan de oude? Is het nuttig als ik meer tutorials maak die de rest van GameMaker Server's functies beschrijven? Laat me weten wat je denkt :)
sylvia2963 op 15 Nov 2015, 22:50:23
ik zou dit zeker super vinden.
het zou leuk zijn om te weten hoe je ook de andere functies kan of moet gebruiken. zelf ben ik niet zo ervaren dus het zou zeker helpen :D
Is het ook toegelaten om eventueel moest ik vragen hebben over vb het maken van een party enzo ik je een PB stuur op ngmc ? of ergenst anders ?
Size43 (Beheerder) op 17 Nov 2015, 11:35:42
Je kan vragen op deze site stellen, me een PM op het NGMC/GMC sturen, of een mailtje sturen naar gamemakersever@outlook.com ;)
DreambearSagaRewritten op 29 Jul 2014, 10:29:34
Dat zou zeer fijn zijn!
Size43 (Beheerder) op 29 Jul 2014, 11:58:22
Ik ben er mee bezig! De instance synchonisation tutorial is de tweede die ik heb gemaakt. Nog voorkeur voor een bepaald deel van GameMaker Server voor de volgende tutorial? :)
brenthosstudios op 11 Jul 2014, 08:55:23
This is so cool! Is there a premium feature I can purchase to remove your advertising?
Size43 (Beheerder) op 11 Jul 2014, 15:06:18
I'm still working on PayPal integration, but there will be an option to do that in the future :)
TomPostmus op 24 Aug 2017, 17:38:47
Hallo Size43,

Is er een manier waarop het object obj_other_player niet vanzelf wordt gemaakt als er een nieuwe client in de sessie komt? Ik heb in mijn game namelijk liever dat de obj_other_player van een client pas verschijnt als die client daadwerkelijk een obj_player in zijn room heeft. Nu worden er dus obj_other_player's gemaakt terwijl de obj_player's die zij voorstellen pas in een latere room aanwezig zullen zijn (in de rm_lobby van mijn game zijn er geen obj_player's, die obj_player's verschijnen in rm_level pas). Als dit niet mogelijk is, misschien een verbetering voor GMS: de obj_other_player verschijnt pas als de obj_player van die client aanwezig is, en niet gelijk als de client joint, zoals nu het geval is (want dan is er misschien nog geen obj_player). Bedankt!
Size43 (Beheerder) op 4 Sep 2017, 11:30:52
Sorry voor mijn late reactie, ik heb last van RSI.

Je kan de simple mode uit zetten (gms_settings), maar wees gewaarschuwd, want dat zet ook een boel andere dingen uit die je niet zomaar zelf weer toe kan voegen.

Het plan voor de rewrite van GameMaker Server is om inderdaad obj_other_players los te koppelen van het synchroniseren, maar door mijn RSI ben ik al een jaar niet in staat geweest om aan de rewrite te werken dus ik heb op het moment geen ETA voor de rewrite.
sylvia2963 op 15 Nov 2015, 20:16:06
hey vandaag probeerde ik de tutorial uit en kwam ik op een error (ik had me wel nog niet als ontwikkelaar geregistreerd en ook mijn game id nog niet ingegeven .
dit is de error dat ik krijg http://sta.sh/01gistv1busb erna heb ik me wel als ontwikkelaar geregistreerd en mijn game id toegevoegt.
hierna werkte het goed . kwam dit omdat ik ervoor nog niet als ontwikkelaar geregistreerd was of door iets ander ?
het ziet er wel super leuk uit en hoor dat je nog meer tutorials gaat maken :D
Size43 (Beheerder) op 15 Nov 2015, 20:28:20
Dat komt hoogstwaarscheinlijk inderdaad doordat je je GameID nog niet had geregistreerd. Als het nu wel goed werkt lijkt me dat er verder niks mis is.
sylvia2963 op 15 Nov 2015, 20:12:56
vraagje eerst kreeg ik een error (kijk naar de link) http://sta.sh/01gistv1busb erna dacht ik mss moet ik me eerst als ontwikkelaar registeren en het game id invoegen
moet dit altijd of was deze error door iets anders ?
verder vind ik dit een zeer intressant :D
PaPdeveloper op 16 Aug 2015, 13:02:54
Hey Size43!

We gaan GameMakerServer steeds beter begrijpen, vandaar waarschijnlijk dat je ons steeds minder vaak hoort! Alleen is er nog een probleem dat wij zelf niet kunnen oplossen. Na een tijdje gaan de image_angle, de sprite_index en de image_index van de other_player heel raar doen. Die blijven een soort van vast zitten. De image_angle van de speler wijst ongeveer één kant op, maar gaat ook trillen. Dat gebeurt ook bij de wapens. Maar ze blijfen ook steken in sprite_index en image_angle, dus als een speler een nieuw wapen op pakt zien de andere spelers nog zijn oude wapen trillend naar ongeveer een direction van 45 wijzen. Dit gebeurt gewoon na een tijdje samen gespeelt te hebben en als een speler weer opnieuw joined is hij weer normaal voor de andere spelers. Het lijkt er dus op dat de variabelen na tijdje niet goed meer gesynchroniseerd worden. Voor de rest werkt GameMakerServer perfect! Heel erg bedankt daarvoor!
Size43 (Beheerder) op 20 Aug 2015, 21:43:00
Hey,

Zou je me misschien het project kunnen mailen (gamemakerserver@outlook.com)?

Ik ga op vakantie, dus het kan even duren voordat je een reactie van me krijgt.
Maartey op 16 Aug 2015, 12:37:06
Hoi.
Is er een mogelijkheid om de chat een breedte te geven?
Size43 (Beheerder) op 20 Aug 2015, 21:40:43
Ja. Kijk eens naar gms_chat_bind_pos.
PaPdeveloper op 14 Jul 2015, 17:59:24
Hoi Size43!

We hebben een kleine glitch in ons spel. Wanneer de speler een kogel afvuurt die sneller gaat dan 25 pixels/step, dan komt de kogel aan de tegenovergestelde kant uit het wapen en met veel tragere snelheid terwijl we dit niet zo programmeerd hebben. Weet jij hoe het komt dat dit gebeurt bij snelheden hoger dan 25?
Size43 (Beheerder) op 14 Jul 2015, 22:22:10
Snelheden groter dan een bepaalde hoeveelheid worden inderdaad niet correct gesynchroniseerd, dit is om bandbreedte te besparen. Je kunt de snelheid als een variable meezenden (gms_instance_sync_var_add) en in het user defined 12 event de waarde uit variable_map (een ds_map met alle variabelen erin) lezen en aan speed toewijzen.
PaPdeveloper op 12 Jul 2015, 15:26:18
Hoi Size43,

Vanaf dat wij gamemakerserver gebruiken wordt er bij elke other player een hek getekend. Dit hek stond altijd bovenaan bij de objecten. We hadden een nieuwe game aangemaakt om te kijken of het hier ook bij voorkwam en ook daar werd bij de other player de sprite van het bovenste object getekend. We hebben nu geprobeerd om boven het hek een object aan te maken zonder sprite, maar het hek blijft zichtbaar bij alle other players. Weet jij misschien hoe dit kan? Alvast bedankt!
Size43 (Beheerder) op 14 Jul 2015, 22:25:55
Hey,

Dat is erg vreemd. Misschien ergens een draw_sprite met image_index ipv sprite_index?

Is het een volledig object dat op de speler staat of alleen een sprite?
PaPdeveloper op 16 Jul 2015, 15:21:27
Het is alleen een sprite. We kunnen niks bij de other player vinden dat te maken heeft met dit hek.
Size43 (Beheerder) op 19 Jul 2015, 22:30:56
Heb je misschien ergens een draw_sprite staan die gms_other_get (of *_instance_get of *_global_get) gebruikt voor de sprite? Als die variabele toevallig dan niet bestaat / niet goed wordt verzonden, returnt de functie 0. Dat is ook de index van de eerste sprite.
Possopher op 3 Jul 2015, 20:58:12
Hey, ik heb een probleem waar de player soms wel/soms niet wordt geladen aan het begin van de game. Ik dacht misschien teveel player inis maar nadat ik deze verwijderd heb gebeurt het nog steeds. De game gaat verder gewoon door zonder errors ofzo. Is dit een bekend probleem?
Size43 (Beheerder) op 7 Jul 2015, 14:58:08
Wat bedoel je met de "player" laden?
Possopher op 17 Jul 2015, 15:25:12
Sorry bleek niet aan de extension te liggen. Had een code die bleef loopen waardoor de game soms flipte.
Ik heb nog 1 vraag tho, ik probeer de speler spells te laten gebruiken als hij de naam ervan zegt. Hij moet dus een bepaalde action uitvoeren bij het ontvangen van bepaalde chat messages.
Ik doe het nu met keyboard_string maar dat is nogal belasted voor de cpu, dus is hier een soort chat functie voor? Ik heb wat met gms_script_set_chat geprobeerd maar kom er niet uit :s
Size43 (Beheerder) op 19 Jul 2015, 22:24:28
Je kunt met gms_script_set_chat_verify een script instellen dat wordt uitgevoerd vóórdat het chatbericht verzonden wordt. Je kunt in dat script argument0 gebruiken om het chatbericht te checken met de normale string_* functies. Vervolgens kun je true returnen als je het chatbericht alsnog wil verzenden, of false als je het chatbericht niet wil verzenden.
Maartey op 10 Jun 2015, 19:05:07
Hoi kan iemand mij helpen? Ik ben bezig met een topdown shooter en ik wil graag de kogels synchroniseren(one-time-synchronisatie) Maar hierboven word het aangegeven met de muis alleen in mijn shooter moet je schieten met de pijltjestoetsen. Dit is de code van de KeyboardLeft event:

if canShoot and ammo>0
{
ammo-=1;
canShoot = false;
alarm[0] = 15;
action_create_object_motion(obj_bullet,x,y,9,180);}

Mijn probleem is dat ik echt geen idee heb hoe dit moet met de pijltjestoetsen...
Maartey op 10 Jun 2015, 19:05:49
XD... verkeerde topic...
PaPdeveloper op 23 May 2015, 20:31:44
Hoi Size43,
Wanneer een speler een andere joint stoppen beide applicaties met werken. Is dit omdat ik de applicaties op één computer run of ligt dit aan een programeer fout? Of is het iets heel anders? Dat kan natuurlijk ook! Ik hoor het graag van je!
PaPdeveloper op 23 May 2015, 20:43:43
Sorry voor deze onnodige reactie, want ik ben er al achter gekomen. Het was een programmeer fout!
Maartey op 16 Apr 2015, 18:16:35
Kan iemand me helpen? Als ik mijn spel opstart dan zegt hij Er is een ongeldig teken gevonden in de tekstinhoud. bij GMX Saving
Maartey op 16 Apr 2015, 18:51:25
Probleem gefikst!!! (: Mar nu heb ik een ander probleem als ik op de play knop druk opent hij alleen een Compile window en voor de rest doet hij niks. Kan iemand me hiermee helpen????????
Size43 (Beheerder) op 16 Apr 2015, 19:43:55
Kopieer en plak de volledige tekst in de compile window naar een teksteditor, en Control+F naar het woord "error" ;)
Maartey op 16 Apr 2015, 19:56:19
Uit de errors kan ik niks halen misschien dat iemand anders wel de fout kan zien.
Hier zijn alle errors:
Error : gml_Script_XGms_undef_ined(1) : unknown function or script is_undefined
Error : gml_Script_gms_session_player_count(3) : unknown function or script is_undefined
Error : gml_Script_gms_session_type(3) : unknown function or script is_undefined
Error : gml_Script_XServer_step(784) : invalid token
Error : gml_Script_xGms_bdb_open(5) : invalid token
Error : gml_Script_xGms_bdb_get(1) : invalid token
Error : gml_Script_gms_bdb_close(2) : invalid token
Error : gml_Script_gms_bdb_seek(2) : invalid token
Error : gml_Script_gms_bdb_tell(2) : invalid token
Error : gml_Script_gms_bdb_size(2) : invalid token
Error : gml_Script_gms_bdb_read_real(2) : invalid token
Error : gml_Script_gms_bdb_read_string(2) : invalid token
Error : gml_Script_gms_bdb_write_real(2) : invalid token
Error : gml_Script_gms_bdb_write_string(2) : invalid token
Error : gml_Script_gms_bdb_read_hex(2) : invalid token
Maartey op 16 Apr 2015, 19:56:30
Error : gml_Script_gms_bdb_write_hex(2) : invalid token
Error : gml_Script_XGMs_remove_undef_ined(1) : unknown function or script is_undefined
Maartey op 16 Apr 2015, 19:58:31
Oh hij laat trouwens ook een window Compile Errors zien waar niks in staat
Size43 (Beheerder) op 16 Apr 2015, 20:00:13
Je gebruikt nog een oudere versie van GM:Studio, waarin nog geen undefined values bestaan. Je zult GM:Studio moeten updaten om van GameMaker Server gebruik te kunnen maken ;)
Maartey op 16 Apr 2015, 20:07:29
Fijn dat je zo snel reageert gamemaker is net klaar met updaten!!!!
Maartey op 16 Apr 2015, 20:12:45
Bedankt!! het werkt!!!
Size43 (Beheerder) op 16 Apr 2015, 20:49:14
Mooi :)
MaxMCFan op 14 Apr 2015, 15:58:34
Hey! I'm kinda new to this and for now everything is going to plan with my game! Besides one thing that is a mature problem: Server lag! I live in The Netherlands and I have a pretty good connection, however, if I try to connect between 2 computers (both in my house and on the same network) it lags alot, I mean, you see yourself moving smooth but the other player is or not even popping up, or moving every ten seconds for like 1 second, so, is this a known bug/error? And is there a way to fix this?
MaxMCFan op 14 Apr 2015, 16:00:41
Oh and another question: Are you dutch to Size43? As I prefer talking dutch more than english xD
Size43 (Beheerder) op 14 Apr 2015, 17:38:35
Yup, ik ben Nederlands :)

Wat is je ping naar de server? Dit kun je achterhalen door gms_info_ping() ergens te drawen.
MaxMCFan op 14 Apr 2015, 18:06:01
Mijn ping is 0 op beide pc's, dus dat kan het niet zijn.
Zou het misschien kunnen komen doordat ik views gebruik die de players volgen
(ik heb bij view0 gedaan follow obj_player zodat hij bij elke computer zijn of haar player wil volgen)
Ik heb zelf geen idee of dit uberhaupt voor lag kan zorgen maar het lijkt me de meest logische reden
Size43 (Beheerder) op 14 Apr 2015, 18:15:23
Een ping van 0 is vrij vreemd. Meestal is die minstens 5-6. Zou je kunnen dubbel-checken of je de laatste (1.8.4) versie van GameMaker Server gebruikt? Er was in een eerdere versie wel een probleem met dat de spelers erg lagden.

Als je wel de laatste versie gebruikt, zou je me dan misschien je project naar me kunnen mailen (gamemakerserver@outlook.com) zodat ik kan kijken of het ook bij mij gebeurt?
MaxMCFan op 14 Apr 2015, 18:26:37
Ik gebruikte de 1.8.4 versie dus ik heb even het project opgestuurd naar de mail
MaxMCFan op 14 Apr 2015, 18:44:53
Oeps! Ik had de verkeerde versie verstuurd, eigenlijk moet bij rm_play even enable views en visible when room start aangetikt worden bij view0, sorry! :(
Size43 (Beheerder) op 18 Apr 2015, 11:42:52
Hey,

Naast dat de positie van de andere spelers niet wordt verzonden bij het inloggen (dit is een bug, wordt gefixt in de volgende update) werkt alles bij mij prima. Ik heb dit getest met GM:Studio 1.4.1567 door een executable te maken en die twee keer te openen.

Heb je de lag ook als je een andere GameMaker Server-game speelt? (bijvoorbeeld Bunny Online)
Size43 (Beheerder) op 16 Apr 2015, 19:43:07
Ik ga er morgen of overmorgen naar kijken :)
Timbacuda123 op 13 Apr 2015, 19:02:55
Het is gelukt. ik zal binnenkort even via Paypal doneren.
Size43 (Beheerder) op 13 Apr 2015, 19:03:44
Heel erg bedankt!
Timbacuda123 op 13 Apr 2015, 19:25:28
Geen dank. is het mogelijk om met 4 spelers tegelijk te spelen? ik gebruik pas een half jaar game maker dus ik weet nog niet volledig hoe alles werkt.
Size43 (Beheerder) op 14 Apr 2015, 17:37:12
Jazeker! Afhankelijk van wat voor soort game je precies wilt gaan maken verschilt het een beetje wat je kunt doen. In de download zit een example voor een topdown shooter waar twee teams tegen elkaar spelen.
Timbacuda123 op 12 Apr 2015, 17:22:23
Hallo,
Ik krijg de hele tijd de volgende error:

___________________________________________
FATAL ERROR in
action number 1
of Step Event
for object GMS:

Moving to next room after the last room.

Wat kan ik hieraan doen?
Alvast bedankt.



Tim
Timbacuda123 op 12 Apr 2015, 18:37:37
Edit: Dit is opgelost,
Maar nou krijg ik zoals voorheen weer een grijs scherm.
Ik heb alles geprobeerd.
Timbacuda123 op 12 Apr 2015, 18:37:59
Denk ik...
Size43 (Beheerder) op 12 Apr 2015, 20:56:17
Heb je ergens room_goto_next() in het GMS object staan? Controleer ook voor de zekerheid even of je in de server-sided scripts nergens een room_goto_next() hebt staan.
Possopher op 28 Mar 2015, 12:44:37
hey, ik ben al een poosje met deze extension bezig. Alles werkt erg soepel en goede uitgebreide tutorials. Ik heb alleen een 2 problemen waar ik niet uit kom:
Sinds gister werkt de login niet meer. De window verschijnt wel, maar er gebeurt niks als ik op de login knop druk. Verder lijkt alles nog wel te werken als ik de login oversla.
Verder heb ik wat problemen met het syncen. Ik probeer zegmaar meer het event te syncen. Als ik bijvoorbeeld een item drag en daarna sync, dan wordt wel gesynct dat het item zich verplaatst, maar dan is het item ook nog te zien op de plek waar hij daarvoor lag. Hoe kan ik zegmaar het moment syncen ipv alleen de uiteindelijke positie?
Size43 (Beheerder) op 28 Mar 2015, 13:49:59
De login zou nu weer gefixt moeten zijn. Het is een hele rare bug die random opeens gebeurt. Ik kan dan ook niet meer via een aparte verbinding een "soft" restart van de server doen. Ik ben nog bezig met uit te zoeken waar dit door komt.

Het klinkt alsof je een instantie meerdere keren aan het synchoniseren bent. In principe hoor je een instantie niet meer dan 1x te synchroniseren. Als je de movement ook wilt synchroniseren, kun je is_full ipv is_onetime of is_extended gebruiken. Dan wordt de instantie niet alleen gesynchroniseerd zodra je gms_instance_sync uitvoert, maar continu.
Possopher op 28 Mar 2015, 23:18:46
Ok had inderdaad de verkeerde sync gebruikt. Login werkt ook weer. thankss
PaPdeveloper op 15 Feb 2015, 11:24:05
___________________________________________
############################################################################################
FATAL ERROR in
action number 1
of Step Event0
for object GMS:
Als ik een username en het wachtwoord heb ingetypt krijg ik deze error:

Push :: Execution Error - Variable Get 100002.player_id(100421, -2147483648)
at gml_Script_gms_step (line 595) - room_id = gms_other_get_real(player_id, "room");
############################################################################################
--------------------------------------------------------------------------------------------
stack frame is
gml_Script_gms_step (line 595)
called from - gml_Object_GMS_StepNormalEvent_1 (line 1) - gms_step()



Hoe moet ik dit fixen?
PaPdeveloper op 15 Feb 2015, 12:07:14
Ik heb het al gefixt! Maar als ik nu 2 keer de game run en bij allebij met een andere gebruikersnaam inlog, dan kan ik de andere speler niet zien. Weet jij misschien hoe dit zou kunnen komen?

Ik ga zeker doneren als het goed werkt!
Size43 (Beheerder) op 15 Feb 2015, 13:09:19
Zie je wel bij beide clients het bericht dat de andere speler heeft ingelogd?
PaPdeveloper op 15 Feb 2015, 14:48:50
Ja, dat zie ik wel.
Size43 (Beheerder) op 15 Feb 2015, 16:01:40
Als je een show_message in het create event van het other player object zet, zie je die message dan zodra de andere speler inlogt?
PaPdeveloper op 15 Feb 2015, 16:26:20
Het other player object wordt niet meer aangemaakt. Maar eerst wel. Weet jij misschien hoe dit kan komen?
Size43 (Beheerder) op 15 Feb 2015, 16:50:14
Het kan dat de server heeft de verbinding met de game verbroken (bijvoorbeeld doordat het GMS object is vernietigd). Wat ook kan is dat de game nooit de melding van de server ontvangt doordat het gms_network-script mist in het Async Networking event, maar dat is alleen nodig als je de (All) versie van de extensie gebruikt.
PaPdeveloper op 15 Feb 2015, 18:12:05
Ik gebruik de Windows versie. Maar wat moet ik doen om die verbinding weer terug te krijgen?
PaPdeveloper op 15 Feb 2015, 21:15:09
Ik heb getest of de GMS er is door de speler een explosie-effectje te laten tekenen als de GMS er is. En als ik het test zie ik inderdaad dat effectje. Dus de GMS is er wel.
Size43 (Beheerder) op 16 Feb 2015, 20:00:27
Als er geen other player object wordt aangemaakt, maar het GMS object nog wel bestaat en je wel een melding ziet dat de speler inlogt lijkt het me onlogisch dat je niet meer verbonden bent. Het other player object wordt namelijk op hetzelfde moment dat je die melding ziet aangemaakt.

Zou je kunnen dubbel-checken dat je bij de gms_settings het juiste other player object hebt ingevuld, en als je GM8 gebruikt dat je niet perongeluk een sprite/background/script/andere resource dezelfde naam hebt gegeven?
Ultimo_Games op 4 Feb 2015, 00:37:29
Deze getting started tutorial werkt bij mij direct, dus een prima tutorial!
Nu wil ik een mooi score rankings systeem maken voor mijn game maar om dat voor elkaar te krijgen moet ik zelf informatie bij elkaar sprokkelen en dingen proberen. Het zou fijn zijn als je voor ieder onderdeel een step-by-step tutorial zou schrijven. Maar bovenal een prima systeem/site/initiatief dit gamemakerserver!
Als mijn app goed loopt en de rankings goed werken, dan is het gepast om je een donatie te geven voor je noeste arbeid.
Size43 (Beheerder) op 15 Feb 2015, 13:12:46
Sorry voor mijn late reactie. Ik heb op een of andere manier het automatische mailtje gemist. Zou je iets meer informatie kunnen geven over wat je probeert te maken? Als je highscores bedoelt, heeft GameMaker Server daar ingebouwde functies voor: gms_highscore_add en gms_show_highscore bijvoorbeeld.
00de op 14 Dec 2014, 14:15:04
Als ik doe wat er in de tut staat krijg ik deze error:
############################################################################################
FATAL ERROR in
action number 1
of Step Event0
for object GMS:

undefined value
at gml_Script_gms_step (line 73) - case 1://Player login
############################################################################################
--------------------------------------------------------------------------------------------
stack frame is
gml_Script_gms_step (line 73)
called from - gml_Object_GMS_StepNormalEvent_1 (line 1) - gms_step()
jprules10 op 7 Sep 2014, 15:09:26
EHH ik gebruik gamemaker studio proffesional edition en ik heb de extension alleen ik zie geen drag en drops met gml werkt het trouwens wel + wat betekent event 14 en event 15 en waar staan ze?
00de op 14 Dec 2014, 14:15:50
Other >user defined
Size43 (Beheerder) op 7 Sep 2014, 17:35:45
Lijkt erop dat YoYoGames al weer een bug heeft gemaakt. De extra .LIB files worden inderdaad niet goed geladen. Ik zal dit bij YYG reporten.

User Defined Events zijn te vinden onder "Other" -> "User defined" -> "User XX". Zoals de naam al zegt zijn dat events die door de user (van GameMaker, jezelf dus) gedefinieerd kunnen worden. Standaard worden ze nooit uitgevoerd, maar je kunt met GML ze aanroepen als je dat zelf wilt. De extensie doet dat met de paar laatste events.
DavidRichey op 12 Jan 2015, 01:03:25
I don't understand which event and which object to put this code into:

gms_settings (true, 1 . 0 , obj_player, obj_other_player) room_goto_next ();
Size43 (Beheerder) op 16 Jan 2015, 20:14:13
That seems to be code that would go into an initialization object that's present in a room before the first room.