Game Maker

(originally named and currently ) is a proprietary game creation software created by Mark Overmars in the Delphi programming language system.
GameMaker accommodates the creation of cross-platform and multi-genre video games using drag and drop or a sandboxed scripting language known as Game Maker Language, which can be used to develop more advanced games that could not be created just by using the drag and drop features. GameMaker was designed to allow novice computer programmers to be able to make computer games without much programming knowledge by use of these actions.
==History==
Originally titled Animo the program was first released in 1999, and began as a program for creating 2D animations. The name was later changed to GameMaker, lacking a space to avoid IP conflicts with the 1991 software Game-Maker. While Animo had a built-in scripting language, which was not as complex as it is in more recent versions, it and the next few versions of GameMaker did not have DirectX support, a separate runner to run games independently from the IDE, syntax highlighting, or the ability to compile games into executable files.
==Design and uses==
GameMaker is designed to allow its users to easily develop video games without having to learn a complex programming language such as C++ or Java through its proprietary drag and drop system, in the hopes of users unfamiliar with traditional programming creating games by visually organizing icons on the screen. These icons represent actions that would occur in a game, such as movement, basic drawing, and simple control structures. It is also possible to create custom "action libraries" using the Library Maker.
===Rendering===
GameMaker primarily runs games that use 2D graphics, allowing the use of limited 3D graphics. The program has no way of choosing which graphics API the runner uses for rendering on a given platform, always using Direct3D since 6.0 on Windows, and OpenGL since 7.0 on non-Windows based platforms. The program only supports the built in custom "d3d" mesh format which is not compatible with the DirectX mesh format and a converter is necessary to use more popular or standard 3D formats such as .3ds, and .obj for use in a 3D project. It also supports the ability to create particle effects such as rain, snow and clouds, however not natively in 3D except through use of Dynamic Link Library.
The latest iteration of the software uses a new extension mechanism which is incompatible with extensions written for older versions of the program, especially those built on top of another single extension known as "GM API". Versions 8.1 and lower had a variety of DLLs and wrappers to existing programming API's and libraries that extended GameMaker with things such as socket support and MySQL connectivity.
===Scripting===
Game Maker Language (GML) is the primary scripting language that is interpreted similarly to Java's Just-In-Time compilation used in GameMaker, which is usually significantly slower than compiled languages such as C++ or Delphi. It is used to further enhance and control the design of a game through more conventional programming, as opposed to the drag and drop system. The syntax of GML borrows aspects from other languages such as C, C++ and JavaScript, giving it some syntax features of object-oriented programming but is not fully featured in that custom structures and classes are not possible.
Originally, GML was designed to supplement the drag and drop interface, allowing advanced users to add greater functionality to their games or programs. Newer versions of GameMaker actually use GML as their base, with all drag and drop functions as rewritten GML scripts.
With the Standard Windows Export, when GameMaker creates a stand-alone game, GameMaker attaches a runner and all GML scripts (including drag and drop functions) are packed into a data file. Every time the generated program is executed, an included interpreter carries out the commands indicated by the GML code.
Version 1.2 introduced LLVM or, in GameMaker's context, the GameMaker Language Compiler (GMLC). The GMLC first turns GML code into C++ code, which is then compiled via "Clang". This boosts the performance for logic-heavy games but does little for graphic-heavy games.
===Engine compatibility===
Games built with Game Maker 6 became incompatible with Windows Vista and later, while Game Maker 5 and Game Maker 7 games are compatible. While YoYo Games recommends rebuilding the games with a recent Game Maker engine, a software patch to fix the executables was released.Recently support for version 8.1 and lower have been deprecated, GameMaker is no longer backwards compatible. Many extensions of GameMaker no longer work now as well as many of the major and popular extensions were built upon a single extension themselves which was called "GMAPI" and is no longer compatible.
===Export modules===
GameMaker accommodates redistribution on multiple platforms. There is a "free" version of GameMaker: Studio which limits the user from using more than 10 types of any resource, and excludes features from the other versions, which must be paid for. The program currently builds for 9 platforms: Windows, Windows 8, Mac OS X, Ubuntu, HTML5, Android, iOS, Windows Phone 8 and Tizen.
==Controversies and situations==
===Reverse engineering===
Multiple decompilers for various Game Maker versions have been written which can decompile games from the runner and obtain the editable files used to produce the executable. One such decompiler allowed users to publish apps to iOS without consent of the company, prompting the company to file a lawsuit on 5 January 2011 posting their interpretation of a formal cease and desist letter to their blog as they were planning their own iOS exports, which posed a financial threat. Various methods of protecting games against non-compilation were developed such as obfuscation processes.
===Logo controversy===
In 2009, YoYo Games conducted a competition for a new official Game Maker logo, encouraging members of the Game Maker Community to submit their own designs; the winner was Albert Zak. The decision received substantial criticism from the product's userbase, becoming in a sense an internet meme. After the negative response, CEO of YoYo Games Sandy Duncan blogged and posted on his Twitter feed making it clear that he was reconsidering the logo's design.
In response to the criticism, a topic was posted on the Game Maker Community where users could contribute a new logo, and on 9 December, a new logo was chosen.
===Digital rights management===
In late 2012/early 2013, YoYo Games released a version of their new Studio IDE for cross-platform development that would import games and destroy all of the image type resources for some legitimate purchasers of the software by inserting a symbol of a pirate on top of the image. This was due to a fault in their Digital Rights Management software implementation which they use as a method of combating pirated copies of the software. The issue was addressed and fixed a few weeks later by removing the DRM. There has also been controversy regarding the Steam method of DRM in which several consumers have not been able to get the program working. The DRM misfire was originally introduced by Mike Dailly as a pun on the movie Pirates of Silicon Valley.
===2013 April Fools' Day joke===
On 30 March 2013, Mike Dailly announced that YoYo Games was being purchased by the Valve Corporation, the developers of Steam. The joke drew much criticism from the community and led to widespread arguments within the community and a large removal of several users from the Game Maker Community. YoYo Games Chief Executive Officer, Sandy Duncan, later learned of the prank and promptly had it removed from the site, however several moderators continued posting the topic again. An apology was later given.
===Hacking scandals===
It was discovered later, 18 March 2013, that the Game Maker Community forum by YoYo Games had been hacked unknowingly for an unknown period of time, allowing the hacker to steal members accounts and password information. A person claiming to be the hacker contacted a moderator of the forum, True Valhalla, and requested an interview with himself about it to be uploaded to the Game Maker Blog. There the person claimed that he stole over 221,000 non-encrypted passwords and sold them to email hackers and RuneScape users. Trollsplatter was the administrator who was hacked through the GameMakerBlog, allowing the hacking possible. True Valhalla was removed from his moderating positions after the incident, which was only one of reasons behind the decision. However, an apology or formal statement from YoYo Games has not been issued.
On 9 May 2013 it was revealed the same person was hacking the GMC again. The hack was a zero-day attack involving a Twitter feed and an IRC chat link. A formal apology was released by the company this time.
Category:Game engines