User:Orcaaaaa/GameMaker Page Rewrite

GameMaker (originally Animo, Game Maker (until 2011) and GameMaker Studio) is a series of cross-platform game engines created by Mark Overmars in 1999 and developed by YoYo Games since 2007. The latest iteration of GameMaker was released in 2022.

GameMaker accommodates the creation of cross-platform and multi-genre video games using either a custom programming language known as GameMaker Langauge (GML), or via a drag-and-drop visual language known as GML Visual. GameMaker was originally designed to teach novice computer programmers to create games without requiring much programming knowledge by using an earlier iteration of this system.

Overview
GameMaker is primarily intended for making games with 2D graphics, allowing out-of-box use of raster graphics, vector graphics (via SWF), and 2D skeletal animations (via Esoteric Software's Spine) along with a large standard library for drawing graphics and 2D primitives. While the software allows for limited use of 3D graphics, this is in form of vertex buffer and matrix functions, and as such not intended for novice users.

The engine uses Direct3D on Windows and Xbox One; OpenGL on macOS and Linux; OpenGL ES on Android and iOS, WebGL or 2d canvas on HTML5, and proprietary APIs on consoles.

Supported platforms
GameMaker supports building for Microsoft Windows, macOS, Ubuntu, HTML5, Android, iOS, Amazon Fire TV, Android TV, Raspberry Pi, PlayStation 4, Nintendo Switch, Xbox One  , with support for PlayStation 5 and Xbox Series X|S announced in February 2021 and added later.

In the past, GameMaker supported building for Windows Phone, UWP, Tizen, PlayStation 3, and PlayStation Vita (not supported in GMS2 "largely for business reasons").

PlayStation Portable support was demonstrated in May 2010, but never made publicly available (with only a small selection of titles using it).

Between 2007 and 2011, YoYo Games maintained a custom web player plugin for GameMaker games before releasing it as open-source mid-2011 and finally deprecating in favor of a HTML5 export target.

Platform Licensing
Prior to August 2021, users had to obtain a single-purchase license for one of five different platforms, excluding consoles, depending on the target platform they wanted to publish on (such as desktop or mobile). An annual license was required to publish for consoles, which was also contained in an all-encompassing annual Ultimate license that covered all supported platforms.

YoYo Games announced a change to the licensing approach in August 2021, allowing GameMaker to be used for free to learn, and eliminating the single-purchase options. Instead, it simplified the license scheme to only two tiers, one that supported publishing on all non-console platforms, and a higher tier that added in console platform publishing support at a lower rate than the prior Ultimate license. These changes were aided by the financial investment of Opera into YoYo Games to help reduce costs for GameMaker users.

On 22 November 2023, GameMaker announced that it would be "free for non-commercial use on all platforms (excluding console)," and the current subscription system would be replaced by a one-time license.

IDE
GameMaker's IDE encompasses a selection of built-in editors covering raster graphics, level creation, scripting, shaders (notably supporting both GLSL and HLSL via transpilation), including external files for installation with the game, among other engine-specific tools.

Historically, GameMaker's IDE and Runtime versions have always been tightly coupled, and updating one required updating the other. This was the case through to GameMaker Studio 2, though this has seen a shift recently in favour of decoupling the engine and IDE; the first of which being in the introduction of a Runtime Feed selection, and a planned package manager using npm.

GameMaker Language
GameMaker Language (GML) is GameMaker's scripting language. It is an imperative, dynamically typed language commonly likened to JavaScript and C-like languages.

The language's default mode of operation on native platforms is via a stack machine; it can also be source-to-source compiled to C++ via LLVM for higher performance, via the YoYo Compiler. On HTML5, GML is source-to-source compiled to JavaScript with optimizations and minification applied in non-debug builds.

GML Visual
GML Visual (originally called "Drag and Drop" ) is GameMaker's visual scripting tool.

GML Visual allows developers to perform common tasks (like instantiating objects, calling functions, or working with files and data structures) without having to write a single line of code. It remains to be largely aimed at novice users.

Historically, Visual remained fairly limited in capability allowing for many simple pre-made actions and as a substitute for more robust user-written GML. On the release of GameMaker Studio 2 - along with a renaming to GML Visual - the system was reworked to more directly map to GML code with a new interface, and can be directly converted into code from the IDE.

Syntax
The syntax of GML has evolved over its history - firstly tracing its roots to that of Delphi; being the language the engine itself was initially programmed in. This manifested most notably today in the option to use the keywords begin,, and  , which have since seen criticism by users of modern versions for using up valuable variable names.

The most well-cited comparison in syntax to modern GML is JavaScript, both sharing C-like traits, the  keyword, among others. [TODO: flesh this section out!]

GML received its largest upgrade to its syntax to date in GameMaker Studio release 2.3, which implemented an array of modern features for the langauge [TODO: flesh this section out!]

Current Releases
[TODO: this will contain info about modern GM.]

History
GameMaker was originally developed by Mark Overmars. The program was first released on 15 November 1999 under the name of Animo. At the time, it was just a graphics tool with limited visual scripting capabilities. The first versions of the program were being developed in Delphi.

Subsequent releases saw the name changed to Game Maker and software moving towards more general-purpose 2D game development.

Versions 5.0 and below were released as freeware; version 5.1 introduced an optional registration fee; version 5.3 (January 2004) introduced a number of new features for registered users, including particle systems, networking, and possibility to extend games using DLLs.

Version 6.0 (October 2004) introduced limited functionality for use of 3D graphics, as well as migrating the runtime's drawing pipeline from VCL to DirectX.

Growing public interest led Overmars to seek help in expanding the program, which led to partnership with YoYo Games in 2007. From this point onward, development was handled by YoYo Games while Overmars retained a position as one of the company's directors. Version 7.0 was the first to emerge under this partnership.

The first macOS compatible version of program was released in 2009, allowing games to be made for two operating systems with minimal changes.

Version 8.1 (April 2011) sees the name changed to GameMaker (lacking a space) to avoid any confusion with the 1991 software Game-Maker. This version also saw the runtime rewritten in C++ to address performance concerns with previous versions.

September 2011 sees the initial release of GameMaker: HTML5 - a new version of software with capability to export games for web browsers along with desktop. This release also introduced the first iteration of a new IDE for the engine.

GameMaker: Studio entered public beta in March 2012 and enjoyed a full release in May 2012. Initial supported platforms included Windows, Mac, HTML5, Android, and iOS. Additional platforms and features were introduced over the years following;   Late 2012 there was an accident with anti-piracy measures misfiring for some legitimate users.

In February 2015, GameMaker was acquired by Playtech together with YoYo Games. Announcement reassured that GameMaker will be further improved and states plans to appeal to broader demographic, including more advanced developers.

November 2016 saw the initial release of GameMaker Studio 2 beta, with full release in March 2017. This version spots a completely redesigned IDE rewritten in C#, and a number of new editor and runtime features.

With the move to focus on GameMaker Studio 2, in June 2017 GameMaker: Studio was officially discontinued. , releasing a final update 1.4.9999 in August which removed now obsoleted online integrations among other final bugfixes.

In August 2020, major update 2.3 was released, bringing a host of new features to IDE, runtime, and the scripting language. The version of GML that released with this update has been subsequently referred to as "GMLv2", and most notably contained the addition of garbage-collected Structs and the promotion of the Array type to a first-class data type; closing the gap in the integration of more complex Data structures into the language, which had previously only supported these via the manually memory managed DS indices. 2.3 also introduced functions in a form more familiar to other languages such as JavaScript - with a  keyword, named arguments, and use as instance-bound methods.

In January 2021, YoYo Games was sold to Opera Software for roughly 10 million USD. The development team of GameMaker remained unchanged, and has not caused any major development changes to GameMaker.

In August 2021, YoYo Games announced a change to their licensing, switching from a license-per-export model to a subscription of four tiers: Creator, offering Desktop exports, Indie, offering all non-console exports, and Enterprise, offering all exports and engine source access; and introduced a permanent free tier.

In January 2022, YoYo Games changed GameMaker Studio 2's numbering scheme so the version corresponds to the year and the month it was released (For example, 2022.1 for January 2022).

October 2022 saw the first Long-term stable release of the engine, and will be supported until October 2024.

In April 2022, YoYo Games dropped the GameMaker Studio 2 name in order to match the new version numbering scheme, changing it to simply GameMaker.

In May 2023, YoYo Games announced a new selection of features and improvements to both the Runtime and IDE, including an overhauled code editor, IDE plugins, IDE AI features for the Manual (in collaboration with OpenAI), a rebuilt GameMaker Marketplace, Prefabs, and the announcement of a closed beta for a rebuilt engine runtime to address long-running technical debt within the aging runtime, dubbed GMRT. Many of these features have since been delayed for Quality assurance and are not yet ready for public use.

Two years after introduction, in November 2023 YoYo Games scrapped the subscription model for all but Enterprise tiers, replacing it with a new model allowing for permanent free non-commercial use, and a single-time license fee for publishing games commercially on all platforms excluding consoles. Users with previous subscriptions were offered discounts on this commercial license directly proportional to the amount paid previously on subscriptions. Users of the original GMS2 platform licenses may still publish under these licenses indefinitely on the current GMS2 Runtimes, but must pay for the new license for commercial use of the New Runtime.

In February 2024, GameMaker 2024.2 released, marking the first large change to the engine's internal metadata format since GMS2's release. This change was made to accomodate parser changes needed to make way for the introduction of Prefabs later in the year.