Naar inhoud springen

GameMaker Language

Uit Wikipedia, de vrije encyclopedie
GameMaker Language
Paradigma imperatief, gestructureerd
Verschenen November 1999[1]
Ontworpen door Mark Overmars
Ontwikkeld door YoYo Games
Typesysteem Sterk
Beïnvloed door C, C++, Objective C, Java, Javascript, C#, PHP
Besturingssysteem Windows, MacOS
Portaal  Portaalicoon   Informatica
Voorbeeld van GML.

GameMaker Language (GML) is de ingebouwde programmeertaal van GameMaker Studio, uitgegeven door YoYo Games. Deze taal breidt de functionaliteit van het programma GameMaker Studio uit, waar normaal gesproken met een slepen en neerzetten (drag and drop) interface wordt gewerkt.

Doordat GML veel overzichtelijker en flexibeler is dan de drag and drop methode wordt GML vrijwel altijd in grote en complexe GameMaker spellen gebruikt.

De taal is gebaseerd op de welbekende C familie, andere vormen hierin zijn C++, Objective C, Java, Javascript, C# en PHP, echter kan in veel gevallen ook BASIC-syntaxis worden gebruikt.[2][3] Doordat GML nauwe banden heeft met deze bovenstaande programmeertalen, is de overstap van GML naar een andere programmeertaal vrij gemakkelijk. De laatste tijd staat GML in hoog aanzien bij sommige softwarebedrijven omdat het de mogelijkheid geeft om een project te exporteren naar verschillende platforms.[4] Hiervoor is echter de nodige kennis qua informatica nodig, aangezien alles in GML moet zijn geschreven en er per platform wel verschillende standaarden en aanpassingen nodig zijn.[5]

Mogelijkheden

[bewerken | brontekst bewerken]

In GameMaker kan een beginner zijn eerste spel maken op basis van slepen en neerzetten. Dit betekent dat men een actie voor een voorwerp selecteert en deze laat uitvoeren op een bepaald moment, door een pictogram naar een event te slepen. Enkele veelgebruikte events zijn het Create Event (wordt eenmalig aangeroepen), het Step Event (wordt iedere keer aangeroepen) en het Draw Event (hierin wordt alles getekend). De programmeertaal GML bevat echter veel meer functionaliteit, en zodoende stappen veel ontwikkelaars snel over naar GML. Deze overstap is sinds de komst van GameMaker Studio 2 in 2017 nog eenvoudiger geworden, omdat men door op één knop te klikken direct kan wisselen tussen beide representaties.[3]

Naast de eenvoudige en flexibele programmeertaal is GameMaker gericht op het makkelijk creëren van plaatjes, animaties en icoontjes met de sprite editor. Ook kan de spelwereld worden gemaakt met de room editor, waarin objecten en paden kunnen worden geplaatst. Voor beide editors is meestal geen code nodig, en wordt puur op basis van slepen en neerzetten uitgevoerd.

Het invoegen en gebruiken van externe bestanden in GameMaker Studio die geschreven zijn in programmeertalen als Java of C++ is eenvoudiger geworden sinds de introductie van de GameMaker: Marketplace in 2014. Zodoende is de programmeertaal niet meer beperkt door aanpassingen van YoYo Games, maar kan de gebruiker zelf nieuwe scripts programmeren en verbindingen realiseren met bekende aanbieders als Facebook, Google en Apple.

De syntaxis die wordt gebruikt in GML is erg flexibel en staat gebruikers die vertrouwd zijn met andere programmeertalen toe makkelijk te schakelen tussen GML en een andere taal. Er is geen verplichte statement terminator (een karakter die tussen twee statements in moet staan), maar de puntkomma kan daar wel voor gebruikt worden. In versie 8.x en eerder was deze wel verplicht om tijdelijke variabele te definiëren. Daarnaast is er geen verplichte indentation. Wel is het verplicht, als men een tutorial wilt plaatsen op het officiële forum, dat er statement terminators en overzichtelijke inspringing worden gebruikt.[6]

Als voorbeeld van de losse syntaxis zijn hieronder een aantal representaties van een if-else-statement weergegeven:

if a=b then
    begin
    c=a;
end;
if a = b then
   {
   c = a;
   }
if a==b {c:=a}
if(a == b)
c = a
if a = b {
   c = a
   }
if a=b c=a
if a=b then c=a

Alle bovenstaande stukjes code geven hetzelfde resultaat: ze zijn allen correct GML mits de variabelen a en b bestaan. Als a gelijk is aan b zal c na het uitvoeren van de code dezelfde waarde bevatten als a en b. Als a niet gelijk is aan b zal c niet aangepast worden.

De GameMaker Language heeft twee manieren waarop het programma Hello world uitgebeeld kan worden. Als eerste is er de mogelijkheid om de tekst te tekenen naar het scherm:

draw_text(x, y, "Hello world!");

Daarnaast is het mogelijk om een in GameMaker Studio ingebouwde popup te gebruiken. In GML ziet dat er zo uit:

show_message_async("Hello world!");
[bewerken | brontekst bewerken]
  1. (en) YoYo Games, GameMaker versions. Geraadpleegd op 6 november 2018.
  2. redactie control online, [Interview Mark Overmars Game Maker] (15 december 2010). Gearchiveerd op 18 november 2018. Geraadpleegd op 6 november 2018.
  3. a b YoYo Games, GameMaker Studio 2 (2018). Gearchiveerd op 30 november 2018. Geraadpleegd op 6 november 2018.
  4. (en) Moore, Bo, No coding required: How new designers are using GameMaker to create indie smash hits (31 juli 2014). Gearchiveerd op 2 december 2014. Geraadpleegd op 6 november 2018.
  5. (en) YoYo Games, GMS2 Required SDKs. Gearchiveerd op 16 november 2018. Geraadpleegd op 6 november 2018.
  6. (en) Nocturne, Tutorial Guidelines and Template (17 april 2016). Gearchiveerd op 6 november 2018. Geraadpleegd op 6 november 2018.