Talk:Game Maker Language

From Wikipedia, the free encyclopedia

Contents

[edit] G-Java Reference

I'm removing the following:

There is also a java version in the G-java2 IDE called the G-java API, allowing java developers the functions of GML.

(1) Calling EGML "GML" is incorrect. EGML is not GML, and it is not a "version" of GML, nor is it at all affiliated with Game Maker.

(2) This rather blatantly violates the NPOV guidelines by disguising G-Java's EGML as something official. If a similar reference is to be re-added, it should be made very clear that EGML has no official recognition by Mark, YYG or anyone qualified to represent Game Maker.

(3) TGMG, the leading creator of G-Java and G-C++ has made it clear that the software which was (unofficially) associated with Game Maker has been deprecated (reference). The quote above heavily implies otherwise.

(4) A reference to G-Java in the second sentence of GML's article is blatant advertising. The opening paragraph (or few paragraphs) should contain information that is highly significant in relation to the subject of the article.

If there's a consensus to reference EGML somewhere in the article, I suggest that it be added to a See Also section. I don't think EGML qualifies as significant based on WP's guidelines, but that's not an issue to be dealt with here. At the very least, it should be made clear that the relation between GML and EGML is not an official one.

--XDanielx 10:54, 14 July 2007 (UTC)

[edit] Scripting Language?

I'm changing "scripting language" to "interpreted programming language" for the following reasons:

(1) GML is quasi-compiled into an executable. While classifying GML as a compiled language would be similarly (probably far more) questionable, the "pre-compilation" (as Mark calls it) done by the GM environment means that what's interpreted by the runner isn't the same as the code written by the programmer. Unlike scripting languages, the quasi-GML which is executed at run-time is not designed to be legible (though it may be to some extent, but then so is machine code). I don't think the issue is extremely decisive, and there may be reasonable arguments on the other side, but I don't think anyone would argue with the "interpreted programming language" classification.

(2) Scripting languages are "used to write programs to control an application or class of applications" (Oxford English). Again, the definitional issue is borderline. It could be reasonably argued that GML does control the runner (interpreter), but unlike scripting languages GML actually becomes part of the application. There may be counter-examples that I'm not aware of, but better to err on the side of clarity.

(3) Consistency/clarity - the GM manual refers to a piece of GML code as a "program" rather than a "script." The term "interpreted language" is also very widely accepted by the community. While the two aren't mutually exclusive, it wouldn't hurt to be consistent and avoid confusion.

(4) Consistency with the Scripting_language listing. Logo, Java, and BASIC are all listed under Interpreted_language but not Scripting_language. I realize that unlike GML, these all have compiler-driven implementations, but that does not explain why they are not listed as scripting languages, especially seeing as that list is fairly exhaustive and the said languages are extremely well-known interpreted languages. I didn't find any examples on the other side, though it is possible that I just missed some.

--XDanielx 10:20, 14 July 2007 (UTC)

[edit] Criticism

I feel that a criticism section for this article is necessary. Possible criticisms to put in the section include:

1. no unicode support

2. GML doesn't in force variable declaration. this can have unexpected results when variables are misspelled.

3. no variable type checking.

4. no namespace support

5. GML functions lack internal consistancy.

6. no ability to directly access memory (no pointers).

7. no ability to maniuplate memory (etc no malloc() or free()).

8. GML performing less efficently than compiled code since it is interpreted.

I would type this up into a formal section and add it, but just wanted to hear the feedback of others first.

I don't think there are enough critisisms to make a formal section. And the fact that GML takes DLL's takes some of your points away.


My two cents of commentary:

1. Valid point.

2. Well... the error messages still show up (with standard settings), they just have a slightly different flavor.

3. It's fairly easy to keep track of, just like the existence of a variable. I suppose it might merit a very brief mention though, since it is a fairly standard feature of most interpreted languages. It is possible to compose an is_real / is_string set of scripts using the error_last variable, though for all practical uses it would only be suitable if error message displays were turned off.

4. Do you mean namespace support for instances? It's tough to discuss such issues with standard terminology, since GML's "OOP" works very differently from traditional OOP. Anyway, I suppose it's a valid point, though I don't find it compelling given that GML has the "with () ..." option available.

5. You'd have to elaborate, I don't know what you mean.

6 & 7. Loosely agree.

8. Strongly agree; this absolutely should be discussed, as it's a very central issue for GML or just about any interpreted language.

Conclusion - I think #8 should be discussed whether or not there is a criticism section. Apart from that you raise some valid points, though #8 is the only one I think is very notable.

--XDanielx 10:22, 25 July 2007 (UTC)

[edit] Contradiction?

Is it just me, or is this line a contradiction? "GML is interpreted rather than compiled. GML is compiled to byte-code at program startup to speed up execution." --InvaderJim42 01:11, 7 January 2006 (UTC)

Not a contradiction, just badly worded. GML code is not technically compiled (converted to machine code)... it is however "compiled" to binary that the reader program (rundata in the gm dir) reads, it is then merged w/ rundata and executed as one binary. So while the actal GML is not really compiled, it can be said that it is compiled to binary... just a technicality (pardon my spelling) -Leif902

[edit] Foo Bar

Back when I encountered these terms in college, I didn't know what they meant, so it became just an oddity of my instructor, naming everything that way. Now that I know that this term includes the F-word, I find the words objectionable. Are these terms so ingrained in programming that they must be used in examples? Since other terms can just as easily be used, without any change in the effectiveness of the examples, wouldn't it be good policy to leave fubar out of examples, and use non-offensive terms instead? Kilyle 00:09, 27 July 2006 (UTC)

  • It's really an industry standard to use foobar in examples related to computing, programming and other technical documents. Plus it is not known exactly that foobar was derived from the acronym FUBAR (Fucked up beyond all reason).
    • I agree; it's a widely accepted norm even if its roots are questionable. It helps readers understand sample code more easily by drawing a clear distinction between standard GML constructions and resources which are defined by the developer. --XDanielx 10:25, 25 July 2007 (UTC)
      • Well, I found this when I was searching around an wikipedia... "Foobar is a common placeholder name also referred to as metasyntactic variable used in computer programming or computer related documentation. The word "foobar" may be derived from the WW II era Army slang acronym FUBAR (`Fucked Up Beyond All Repair'), later modified to foobar and carried back by returning GIs to morph into other uses." Hope it helps. For more info you can just search "Foo" or "Bar".

Blue123AH (talk) 18:28, 28 November 2007 (UTC)

[edit] Incorrect Information

It seems that someone is either under an exceptionally incorrect impression or likes messing with this page, as they keep modifying the article to state that GML can have Pascal, C++, and ASM code in it. This is untrue, and if you see the article saying that, please replace it with something along the lines of "There is a rumor that GML can have Pascal, C++, and ASM code used directly in it. This is untrue."

Actually, it can, through DLLs. That's probably what they meant, seeing as, with the possible exception of ASM, those are languages that can make DLLS. And I know for a fact that you can put ASM code into Pascal. I forget the command, but I know that TP does support it, cause when I started out with Pascal I was confused whenever I saw it.--172.129.30.213 01:53, 28 August 2006 (UTC)

That's not direct utilization, as the article was repeatedly edited to say - the statements made in it intoned that you can use ASM, C, Pascal, etc. DIRECTLY in GML, without calls to DLLs etc. As in having a hybrid of pascal and GML in one script, without any external DLL calls. They had code examples of that.

[edit] Not a Function

At the botom of the article it states that some functions are outdated and for an example gives the VARIABLE image_scale. This is not infact a function and while this is not a very large or important mistake, should be corrected none the less. I can't think of any outdated functions off the top of my head however. Would someone else like to change it, or do you all think it's fine the way it is?

I assume the section was changed after this talk section was created, but looking at the article the problem seems to have been fixed. It now reads "deprecated functions and built in variables." --XDanielx 11:04, 14 July 2007 (UTC)

[edit] No real inaccuracy problem anymore

Since the second beta of Game Maker 7 has been released, the bug causing the inaccuracy problems has been fixed (http://en.wikipedia.org/wiki/Game_Maker_Language#Types).

That's actually not quite right. Whether the issue should be classified as a bug is debatable, but in any case it hasn't been fixed; rather it has been mitigated. GM7 still has precision issues with very large numbers. Try executing a code like "show_message(string(123456789*123456789));" - the message displayed is not quite correct. I've experienced the issue a couple of times, and it's a major limitation if you're trying to store substantial amounts of data in reals, although of course there are workarounds (in particular segmenting the data into smaller pieces). I updated the section to reflect the current state of the issue. --XDanielx 11:14, 14 July 2007 (UTC)

[edit] This is outdated

The inaccuracy problem isn't the only new thing in the Game Maker 7 Beta (2). The Game Maker article has already been updated with the Beta details, would anyone mind updating this article? (http://en.wikipedia.org/wiki/Game_Maker#Development)

[edit] List of GML Functions

Anyone else think there should be an article List of Game Maker Language Functions? I thought maybe this would be a good idea, for those readers w/o a copy of Game Maker installed. Just an idea. Leif902 01:45, 6 March 2007 (UTC)

Kind of pointless since this isn't the Game Maker manual. Wikipedia is NOT an indiscriminate collection of information. (See policy for more info.) 72.220.174.159 06:00, 14 August 2007 (UTC)

[edit] Scope and more

The scope section still needs major cleanup... I have been working on it but I just thought I'd mention it, if anyone else wants to help.

Let me clear this up:

  • Local variables are not defined by "var"... variables declared by use of the "var" keyword are local only to the calling script, local variables are relative to the instance of which they are a member.

Leif902 23:28, 8 March 2007 (UTC)

Okay, just finished with a revision... went section by section and generally cleaned up the whole article. Geeze, still needs lots of work though.

Leif902 23:50, 8 March 2007 (UTC)

  • Regardless, let's be careful how we use the word "local." In other languages, locality is very often used in reference to the scope of a function/program. I'd recommend always specifying what type of locality you are referring to, as in "a variable local to the current instance" or "local to the script in which it is declared." --xDanielxTalk 09:45, 5 August 2007 (UTC)

[edit] Please get to know GML before assuming...

I've seen plenty of incorrect assumtions on this discussion page. Come on people, you need to actually know GML. If you haven't used it for atleast a month, don't post.

Piepeople (talk) 01:45, 12 May 2008 (UTC)