Generated by GPT-5-mini| GML | |
|---|---|
| Name | GML |
| Paradigm | Multi-paradigm: event-driven, imperative, object-based |
| Designer | A. S. Brecht? (various contributors) |
| Developer | YoYo Games (original), community contributors |
| First appeared | Early 1990s (proprietary forms); modern consolidated form 2000s |
| Typing | Dynamic, weak |
| Influenced by | BASIC (programming language), C (programming language), Pascal (programming language), JavaScript, Lua (programming language) |
| Influenced | GameMaker Studio, Construct (software), Unity (game engine) |
GML
GML is a scripting language designed primarily for authoring interactive software and 2D games within a rapid-application environment. It originated in early game-making tools and matured alongside commercial products used by hobbyists and independent developers. GML's design emphasizes event-driven constructs, ease of authoring for visual editors, and a runtime API tailored to graphics, input, and audio subsystems.
GML is tightly associated with integrated development environments and engines targeted at accessible game creation. It provides a compact syntax for manipulating sprites, sounds, rooms, and objects while exposing lower-level services for collision, drawing, and physics. Prominent companies and projects that intersect with GML's ecosystem include YoYo Games, Valve Corporation (via distribution), Itch.io, Steam (service), and community hubs such as Reddit (website) and GitHub. Major competitions and showcases where GML-authored works appear include Ludum Dare, Global Game Jam, and IndieCade festivals.
GML traces roots to early visual game editors from the 1990s and was formalized as the scripting layer of commercial tools during the 2000s. Early milestones involve small studios and solo developers contributing runtime features and editors, while companies like YoYo Games commercialized the platform and integrated marketplace services. Distribution and exposure expanded with releases on storefronts such as Steam (service) and community projects on Itch.io. Legal and business events involving Sandboxie-era indie toolchains and software acquisitions influenced platform direction alongside academic work appearing at venues like SIGGRAPH and GDC.
GML uses a C-like, semicolon-optional syntax with dynamic typing and prototype-like object behaviors. It supports event handlers, scripts callable by name, user-defined functions, and built-in control structures similar to those in C (programming language) and Pascal (programming language). Objects are moldable containers for variables and event code, while resource identifiers reference assets imported from editors. Graphics operations map to APIs for sprite drawing, blend modes, and surface management comparable to functionality offered by DirectX and OpenGL. Input handling integrates keyboard, mouse, and gamepad events used in competitions like Ludum Dare and on platforms made by Nintendo and Sony Interactive Entertainment.
GML exposes a standard runtime library covering math, string manipulation, file I/O, networking primitives, and audio control. High-level APIs include collision detection, tilemap management, particle systems, and physics integration through engines similar in intent to Box2D. Media pipelines connect to image formats and codecs commonly used by developers showcased at GDC or published on Steam (service). Platform adapters and extensions allow interaction with services like Google Play, Apple App Store, and middleware such as FMOD for advanced audio.
Multiple commercial and community implementations exist, evolving with major releases and forks. Official lines of development by companies like YoYo Games produced versions bundled with editors titled as Studio releases; community forks and reverse-engineered toolchains appeared on GitHub and in forums like Stack Overflow. Notable shifts corresponded with engine rewrites, support for new targets (desktop, mobile, web), and updates to the virtual machine or JIT components akin to changes seen in Lua (programming language) and JavaScript engines. Platform certification, storefront submissions, and SDK updates mirrored processes of Microsoft and Apple Inc. development ecosystems.
GML is applied widely in 2D indie game development, prototyping, educational settings, and rapid game jams. Commercial titles and hobbyist projects using GML have launched on Steam (service), itch.io, and console stores, sometimes featured at PAX and EGX. Educators adopt GML-based editors in curricula alongside tools like Scratch (programming language) and Unity (game engine) for teaching event-driven programming and asset pipelines. The language's accessibility supports solo developers and small studios producing platformers, puzzle games, and narrative experiences highlighted by communities on Reddit (website) and streaming platforms such as Twitch.
Critics point to dynamic typing, weak encapsulation, and inconsistencies across engine versions as hurdles for large-scale software engineering. Absence of standard module systems, limited concurrency primitives, and historically fragmented documentation have been raised on discussion sites like Stack Overflow and forums hosted by YoYo Games. Performance constraints surface when compared to native engines relying on low-level APIs like Vulkan or DirectX 12, and portability issues reflect platform-specific runtime behavior noted during storefront certification with Sony Interactive Entertainment and Nintendo. Licensing and proprietary toolchain concerns have led some developers to prefer open-source alternatives hosted on GitHub.