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.
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.
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.
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:
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).
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.
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:
Step:
Draw:
En als laatste, als je de All versie van de extensie gebruikt, voeg deze code toe aan het Networking event:
Maak het object Persistent en zorg ervoor dat de depth een lage waarde heeft, bijvoorbeeld -100000.
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:
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:
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.
Maak een nieuw object, en noem het iets in de zin van obj_login. Voeg deze code toe aan het create event:
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:
De Drag & Drop actie "Next Room" op het tabblad "Main 1" kan ook worden gebruikt.
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.