• Hey Guest! Ever feel like entering a Game Jam, but the time limit is always too much pressure? We get it... You lead a hectic life and dedicating 3 whole days to make a game just doesn't work for you! So, why not enter the GMC SLOW JAM? Take your time! Kick back and make your game over 4 months! Interested? Then just click here!

Development Can GML be called a portable language in the same definition like ANSI / ISO C or C++ ?

The some of the students at my college, want to know if GML, can be called a portable language like the way the programming languages C or C++ are defined in their respective ISO standards ?

Late Edit : GMS allows you to port code from one platform type ( Windows ) to another platform type ( Linux Ubuntu )
 
Last edited:

kburkhart84

Firehammer Games
*steals popcorn* :)

The way I see it, GML is "complete" though I'm trying to remember the technical term for that(turing complete or something). However, the language is currently fully dependent on the compiler or runner in order to work. That said, C/C++ won't just run without being compiled either(hence the debate). I think the reason you can't really consider it "portable" in the same way as other languages is that since it IS dependent on the engine, the GML language itself doesn't have any sort of "entry point" like C/C++ does(main() function). So as far as language features go, it is a somewhat complete language in that you can pretty much define anything you need to, but by itself, it can't do anything just yet.

Somebody could in theory come up with something to add on to it to make it fully portable...but there would have to be some way to define an entry point function() which would then contain a loop that does everything else, calling all other needed functions. That someone would also have to add integration for all the things that the engine does currently, such as creating a window, etc... among MANY other things.
 
Strictly technically speaking, if we play on the words a little bit, yes, as you can write in GML code that runs on multiple platforms too without much tweaking of the code. We are talking mobile, desktop, various consoles...
But students in CS should know portability is not a bool related to the language used, there are other considerations as well.
In the case of GMS, I'd say the biggest one would be the price, but that's a whole other topic.
But...it really can't be compared to C/C++ in almost any way, and to my knowledge, has nothing to do with the PCTE-ISO-certification thing (not too familiar with how all this works, so I may be wrong on that one)
It's made to make 2D games, I really dont understand why people feel the urge for it to do anything else than doing just that...


though I'm trying to remember the technical term for that(turing complete or something).
Yep, but honestly, do you know of a language that is NOT Turing complete?!? To my knowledge, all modern languages are (feel free to educate me on this one!)
 
Last edited:
It's made to make 2D games, I really dont understand why people feel the urge for it to do anything else than doing just that...
GML can do anything in its capability as well as making 2D games. For instance, in the language of C, I was writing a interpreted language that runs like BASIC in MS-DOS, using common text files to write the code for programs. I could re-invent the interpreted language ( to do same and even better ) in GML, as a interpreter that uses the same common text files to write programs that run in the GML based interpreter that use my invented programming language.

Now the interpreter that is written in GML for a windows operating system, could be ported to a Mac or Linux OS to be recompiled to work in those operating systems. Therefore, my interpreted language which runs on the GML based interpreter could be a portable language. If you can do the same thing in GML , on the platforms its designed for , then the interpreted language is portable in that sense.

HTML which is not a programming language, which is a scripting language, could be considered portable because it will produce the same behavior on a web browser on any OS platform.

To back to the question - is GML a portable language? If you can import your code to a different operating system that uses GMS, wouldn't that substantiate it as being portable?
 

kraifpatrik

(edited)
GameMaker Dev.
Well, Java is considered portable and it runs on JVM, by this logic GML should be portable as well, even though it's dependent on GM???
 

Yal

šŸ§ *penguin noises*
GMC Elder
GML is an interpreted language (if you do a VM build) so it is portable; it runs in anything the runner has support for. You still need to do separate compilations for different targets instead of just moving the same executable around and it "Just works" (like a python script or java jar file), but you could argue that's more because of Yoyo's licensing model than for technical reasons.
 

kburkhart84

Firehammer Games
Yep, but honestly, do you know of a language that is NOT Turing complete?!? To my knowledge, all modern languages are (feel free to educate me on this one!)
I can't educate you on what I don't know :) I don't know of any languages these days that aren't either.
 
Top