Curated list of awesome lists
Awesome GameMaker
![Made with GameMaker](https://img.shields.io/badge/Made%20with-GameMaker-000000.svg?style=flat&logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAMAAAAolt3jAAAAZlBMVEX%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2BrG8stAAAAIXRSTlMABg0OFBkfcn1%2Bf4CBgoOFhoeIiouWmNDa5ebp8PX2%2B%2F6o6Vq%2BAAAAY0lEQVR42k2OWQ6AIAwFn%2BIOioobrnD%2FS4o0EeanmQxNAdErRFTWtsFq6%2BiiZozz0CSnTjYBwo0RkF8DWDLf51Ni9K%2FYdq0Fy3KAfzk97M7goK1F%2F4rGH9Kk1OlboQtEDIrmC%2BU3CVxTr%2FRMAAAAAElFTkSuQmCC)
A curated list of awesome libraries, snippets, guides, and projects for GameMaker. 😎
GameMaker is a user-friendly, cross-platform game engine by YoYo Games that allows both beginner and advanced game developers to create 2D and 3D games for desktop, HTML5, and console platforms.
Contents
Getting Started
Recommendations
- If you already have programming experience, learn the GameMaker Language (GML) instead of the Visual (Drag and Drop) feature.
- For pixel art, Aseprite is a popular alternative to the native sprite editor. 💸
- Don't be afraid to use other developer libraries. A lot of them are free for a reason. Just be mindful of the license.
- Updates to the IDE and runtime can break your game (like syntax changes to GML). If you are working in a group, make sure you are running on the same version of GMS and only update when given a fair warning. You can reinstall previous versions of your IDE at the GMS download page.
- Unless your game requires complex physics interactions, it's generally advised to avoid GameMaker's built-in physics system.
- Schedule routine backups for projects. If you are dealing with larger media files in your repo, try Git LFS.
Utilities
-
gm-core - Foundational utility suite and a great starting point for new GameMaker projects. Comes with quality of life methods, networking tools, testing framework, delta timing, and more.
-
FAST - Flexible Assistant Toolkit. Similar to gm-core but comes with input and resolution handling.
-
Stitch - Pipeline Development Kit. Includes cross-project imports, batch-creating/updating sprites and sounds, texture page management, and more. Tested on Windows only.
-
DDDEditor - General purpose game editor.
-
handytools - A collection of Juju's libraries in one convenient project.
-
GameMaker Scaffolding - Another cool all-encompassing template with a focus on building low-res, tile-based games.
-
Iota - Lightweight timestep library.
-
Stopwatch - GameMaker alarm replacement.
-
wTimer - Robust alternative for alarms.
-
FrogAlarm - Another easy alternative to GameMaker alarms.
-
fuwafuwa - Easy-to-use timer system.
-
Timer - Timer methods based on setTimeout and setInterval from JS.
-
Broadcast - Event handling library.
-
EventGML - Lightweight and fast Node.js style Events Library.
-
Polarca - Interpolation functions.
-
Twerp - Easing function similar to lerp().
-
Coroutines - Asynchronous functions for GameMaker.
-
GML-OOP - A constructor library for operating the primary functionalities of GameMaker.
-
GML-Classes - Another project that adds OOP functionality to GameMaker.
-
Map - Hash table implementations.
-
Matrices - A collection of matrix handling scripts.
-
gm-stream - Data structure manipulation.
-
Promises - An adaptation of JavaScript Promises.
-
Destructors - Allows you to use ds_* types such as lists and maps inside of structs.
-
SNAP - Easy data format saving and loading. Please note that newer versions of GameMaker contain
json_parse
and json_stringify
. However, if you are converting csv, ini, xml, etc, you may find this very useful.
-
Dynamo - Dynamic data loader.
-
LWO - Lightweight objects using structs.
-
Gumshoe - Simple deep file search function.
-
Lock And Key - String and file encryption.
-
Mathematical Scripts - A collection of math scripts.
-
Seedpod - A collection of scripts to improve the GML programming experience.
-
Trixscript - Juices up your game with useful functions.
-
CoreExtension - A collection of CC0 programming libraries.
-
Voxeledphoton's FreeGMScripts - Additional GML helper functions. Some may be out of date with 2.3+ syntax.
-
ForEach - Adds a foreach implementation for arrays, ds_lists, ds_maps, ds_stacks, ds_queues, ds_priorities and structs.
-
DeepCopy - Deep clone class instances / constructed structs, anonymous structs and arrays nested in any order!
-
Motion Scripts - Provides replacement methods for built-in motion variables.
-
Cottonwool - Safe surfaces without memory leaks.
-
Canvas - Another great solution for surface management.
-
zlib functions - Simple compression/decompression functions.
-
Window Taskbar - Windows only. Flash the game window border and/or its taskbar button.
-
GMSDLL - A template project for building DLLs for GameMaker.
-
Extension Collection - A suite of various extensions.
-
GMLodash - Functional programming in GML.
-
Wraptor - A library of wrapper functions.
-
Autoframer - Automatically handles resizing the game view across different display and window sizes.
-
gameframe - Custom window caption and border for Windows.
-
GML+ - A script collection with a goal to "fill the gaps" in GML. 💸
-
GMLive - Livecoding / interactive programming. 💸
-
GMEdit - Code editor to use in conjunction with GameMaker.
-
YYP Maker - Makes
.yyp
files for you.
-
Rubber - Compile GameMaker projects via the command line. Here's a great guide on how to use it.
-
gml-highscorer - Highscore and trophy system.
-
SSave - Simple file saving system.
-
GMD3D11 - A DLL for interfacing with Windows Direct3D.
-
GMTimeLine - A pure code alternative to GameMaker timelines.
-
Catspeak - Cross-platform programming language for modding support.
-
GMBenchmark - A tool to benchmark GML code.
-
Agenda - Schedule and delay the execution of callbacks.
Debugging
-
rt-shell - Easy to use in-game shell. Create your own commands, command meta data, command suggestions, history, etc.
-
Olympus - Testing Framework.
-
Crispy - Unit testing in GameMaker.
-
Snitch - Crash and logging system.
-
DeerLog - Small log writer.
-
gms2-test - Unit testing framework.
-
Meta - Runtime asset inspector.
-
FPS Speedometer - Pretty framerate display.
-
Duck - A fast GML analyzer to enforce code styling and detect errors.
-
Input - No nonsense gamepad/keyboard library.
-
XeroInput - Another library to handle multiple inputs for a single action.
-
InputCandy - Similar to Input as it acts as a wrapper for SDL, but also provides testing, on-screen diagnostics, and some other UI components related to peripherals.
-
Good Vibes - Device vibration.
-
Mouse Queue - Tracks the Windows mouse pointer with high precision.
-
Native Cursors - System-level custom cursors. 💸
User Interface
-
Scribble - Efficient multi-effects text renderer.
-
Scripture - Another easy to use, highly compatible text renderer. 💸
-
Chatterbox - Narrative scripting tool.
-
Textboxy - Simple textboxes.
-
Crochet - An interactive dialogue editor for writers and programmers.
-
NotificationSystem - Notifications in GameMaker.
-
YUI - A UI system with live reloading, template system, data binding, and a drag and drop feature.
-
Guido - Simple immediate mode GUI framework.
-
GMUI-Framework - A pure GML solution to structure and control your menus, drawing parallels to .NET UI.
-
GMS2-UI-Library - A Library Full of useful scripts for implementing your UI designs in GameMaker.
-
Emu UI - Common UI elements (text input, checkboxes, radio buttons, dialog boxes, etc).
-
Easy And Fast Menu - Simple implementation to have a menu up and running in seconds. Seems like a great fit if you're not looking for a bigger solution like GMUI.
-
Pause Menu - Another smaller implementation but has a cool animation between menu options.
-
Shampoo - GUIs using a markup-like language. 💸
-
Magpie - Generic Inventory System.
-
ImGuiGML - DLL/GML wrapper of Dear ImGui.
-
GUI Framework - GUI implementation from Niris Games.
-
Menu Tutorial - FriendlyCosmonaut.
-
Smart Clickable GUI - PixelatedPope.
-
RTS Selection Tool - Mouse dragging feature to select pawns in an real-time strategy game.
-
zitk - Another interesting, Dear ImGui-inspired GUI toolkit. In development, but worth keeping an eye on.
-
gooey - Sprite-based UI Library for GameMaker LTS.
Localization
-
polyglot - Localization library.
-
gm-i18n - Internationalization of texts simply and quickly, using JSON files.
-
lexicon - Another localization solution focused on simplifying implementation.
-
GMLocalize - Not a full localization solution. Extracts text strings for localization from a GameMaker Studio 2 project and saves it to a JSON file.
-
Small Pentapop Localization Tool - Similar export tool to GMLocalize but exports to a csv.
Physics
Sprites
-
AESnips - A sprite playback system.
-
phgen - Placeholder asset generation.
-
Disarm - A spriter skeletal animation at runtime.
-
Spritely - Image correction and cleanup for 2D video game sprites.
-
PixelUpscaler - Pixel art upscaling shader for awkward resolutions for GameMaker.
-
ASESync - Automatically syncs aesprite files in GameMaker.
-
conveyorbelt - Similar to ASESync. Export Aesprite files to GameMaker sprites.
-
Collage - Texture page builder and image manager. Mimics GameMaker's texture page packing while offering higher flexibility.
Audio
-
FML - GameMaker bindings for the FMOD Studio API.
-
FMODGMS - This doesn't support everything FMOD has to offer and the project itself has been put on-hold.
-
Echo/Delay Effect - Optimized delay effect. 💸
-
wavload - Demonstrates how to externally load .wav files.
-
audioExt - Sound External Loader/Unloader Manager.
-
ExternalAudio - Load external .wav files at runtime.
-
Phonix - Compact audio system. Great for dynamic music!
-
Vinyl - Live updating audio system.
-
LineAudio - Audio helper functions.
-
Bard - An engine for desiging and implementing good audio in GameMaker. Updated to make use of the more recent GameMaker audio effects.
Levels
Particles
-
Particle Editor - Create particles with an easy UI and export into GML code.
-
Particles Wrapper - A simplistic particle system wrapper that is designed to make creating particles fun and easy.
-
Advanced Particles - A particle implementation that comes with it's own delta timing methods.
Lighting
Shaders
3D
Sprite Stacking
Networking
-
Warp - A feature-rich framework for multiplayer games, written in GameMaker and Node.js.
-
EZ Networking - Host/client implementation with a chat feature.
-
Patchwire-GM - The network library from gm-core if you want to use this implementation without the entire gm-core suite.
-
GMHandshake - A Gist demonstrating a network handshake.
-
HTTP GML - Recieve GET requests and upload files in GML.
-
GMNest - Socket.IO extension for HTML5 games.
-
MultiClient - Non-dll, multiple client launcher for network development.
-
Multiplayer Networking Tutorial - Wizirdi.
-
Good GameMaker Rollback - Rollback netcode library.
Integrations
-
DHook - Discord integration.
-
GMS2_RPC - Another Discord integration.
-
NekoPresence - Oops, all Discord integration.
-
Steamworks.gml - Various expansions to Steamworks SDK support in GameMaker: Studio.
-
Parworks - Additional functionality for the YYG Steamworks extension.
-
GOG.gml - A native extension for GOG.com SDK support.
-
GMTwitch - Twitch integration.
Camera
Sequences
State Machines
-
SnowState - Robust finite state machine.
-
FastSM - Lightweight alternative to SnowState.
-
wFSM - Another Easy-to-use Finite State Machine library.
-
True State - Feature-rich finite state machine to handle complex objects. 💸
-
Pinocchio - State-based animation system.
Pathing
Blogs
-
RefresherTowel - Contains several posts on level generation.
-
Tony Str - Some great articles on working with json, regular expressions, and drawing circles in gml.
-
Katsaii - Some articles on more advanced gml topics.
YouTube
-
Jordan Guillou - Hobbyist indie dev with a few GameMaker-related tutorials.
-
DragoniteSpam - Covers highly technical elements of GameMaker with a focus on 3D.
-
Shaun Spalding - Previous community manager at YoYo Games. Has a wide variety of beginner-friendly GameMaker tutorials and helpful updates on new GameMaker features.
-
FriendlyCosmonaut - Great playlist on building a farming RPG in GameMaker with several other tutorials.
-
PixelatedPope - Guides on GameMaker resolution management, cameras, GUI, and more.
-
Xor - Tons of shader demonstrations with a focus on 3D.
-
GamingEngineer - A GameMaker developer that has been in the community for many years. They have a wide variety videos showcasing what GameMaker is capable of, with a focus on 3D.
-
TheSnidr - A lot of awesome 3D showcases and tutorials for GameMaker.
-
Peyton Burnham - GameMaker tutorials for top-down shooters and RPGs.
-
Gaming Reverends - If you want to learn foundational material regarding GameMaker shaders, the "Shaders for Hobby-Programmers" playlist is definitely worth checking out.
-
Let's Learn This Together - Small indie dev company with a focus on providing GameMaker guides.
-
Matharoo - Tons of free GameMaker tutorials and news about GameMaker.
-
GravityShift Games - A couple of genre-specific GameMaker tutorials, integrating databases into GameMaker, and more.
-
Slyddar - A channel dedicated to both DnD and GML tutorials.
-
SamSpadeGameDev - In-depth coding tutorials for the hobbyist game maker.
![Discord](https://img.shields.io/badge/Discord-7289DA?style=for-the-badge&logo=discord&logoColor=white)
Special Thanks
JujuAdams, FaultyFunctions, Gleb Tsereteli, Shaun Spalding, DragoniteSpam, Nick Ver Voort, PixelatedPope, Tony Strømsnæs, HeartBeast, Xor, Gaming Reverends, Matharoo, YellowAfterlife, Gizmo199, Avis, Josh Wilson, Lojemiru
Footnotes
- This is based on a list from GameMaker Libraries and from Gleb Tsereteli with additional links/details.
- A majority of linked resources will only work with
GameMaker 2.3+
due to GML syntax changes. However, if you are working in GameMaker 1.4, most library creators would appreciate it if someone makes a backport of their project. ☺
- If you need more general game development resources, check out Awesome Gamedev or MagicTools.
GameMaker® is the property of YoYo Games™. This list is not affiliated with YoYo Games.
Contributing
Have something awesome to share? Check out the Contributing Guidelines.
![Keybindings](https://github.com/bytecauldron/awesome-gamemaker/raw/main/images/keybindings.png)