awesome-gamemaker
A curated list of awesome libraries, snippets, guides, and projects for GameMaker.
https://github.com/bytecauldron/awesome-gamemaker
Last synced: 20 days ago
JSON representation
3D
Recommendations
- Blender to GameMaker - A collection of scripts to export and import Blender models to and from GameMaker.
- Penguin - 3D model conversion tool.
- sPart - 3D Particle System from TheSnidr.
- Terrain Editor - Exports terrain to GM models, obj, or vertex buffers.
- Snowy Snow - 3D Snow Shader.
- 3D Fragment Point Lights - 3D point lights using shaders. 💸
- ColMesh - 3D Collision Library from TheSnidr.
- 3D-2D - Official tool to turn 3D models into 2D sprites.
- dotobj - Lightweight .obj/.mtl 3D model loader written in native GML.
- Bronze Box - Example of how to build 3D world models from a 2D grid.
- Three Mice In a Trench Coat - Source for a GameMaker 3D game.
- BBMOD - 3D Rendering Solution. Comes with several modules to import obj, 3D camera setup, integration with ColMesh, and more.
- DmrVBM - Import/Export tools to load vertex buffer data out of Blender and into GMS.
- BSP 4 GMS - Import BSP files into GameMaker. Currently just a demo but worth keeping an eye on.
- DopeFish Respawned - Extensive WAD manager to load DOOM maps in GameMaker.
- 3D GameMaker Playlist - DragoniteSpam.
- 3D Collisions Playlist - DragoniteSpam.
- 3D Optimization Playlist - DragoniteSpam.
- Collisions - 3D collision system that works with native GML.
- Bonk - Another cool collision library handling a majority of collision shape use-cases.
- GMFlux - Heightfield fluid simulation solver.
- glTF parser - A model loader with support for animations.
Async
Recommendations
- Coroutines - Asynchronous functions for GameMaker.
- Promises - An adaptation of JavaScript Promises.
- SimThreads - Simulated threads for GameMaker.
- MultiProcessing - A proof of concept for multiprocessing in GameMaker.
- GML Promise - Another JS-style promise library.
Audio
Recommendations
- FML - GameMaker bindings for the FMOD Studio API.
- wavload - Demonstrates how to externally load .wav files.
- audioExt - Sound External Loader/Unloader Manager.
- Vinyl - Live updating audio system.
- LineAudio - Audio helper functions.
- Bard - An engine for designing and implementing good audio in GameMaker. Updated to make use of the more recent GameMaker audio effects.
- GMEXT-FMOD - Official support for FMOD in GameMaker.
- ExternalAudio - Load external .wav files at runtime.
- Phonix - Compact audio system. Great for dynamic music!
- Echo/Delay Effect - Optimized delay effect. 💸
- SynthEngine - A fully-featured musical synthesizer for GameMaker.
- MusicTheoryLib - Convenient music theory utilities for GameMaker.
- WaveForm - Render audio wave forms from audio buffers in GameMaker.
- WaveWrite - Read and write WAV files in GameMaker.
- GMMidi - Read and write MIDI files in GameMaker.
- EZAFX - Instant preset audio effects for GameMaker.
- GMSync - Perfectly sync game elements to the rhythm of your music.
- MicVol - Easily monitor microphone volume in real time in GameMaker. 💸
Blogs
Recommendations
- RefresherTowel - Contains several posts on level generation.
- Meseta on Game Dev - Seasoned GameMaker dev's thoughts on GameMaker concepts and libraries.
- Tony Str - Some great articles on working with JSON, regular expressions (regex), and drawing circles in GML.
- Thoughts On GameMaker - Not a traditional blog but has great info on different GML techniques.
- YellowAfterlife - Tutorials on intermediate/advanced topics.
Camera
Recommendations
- GameMaker Cameras: As Simple as Possible - Pixelated Pope's guide on GameMaker's camera system.
- Camera System Guide - Getting started with cameras in GameMaker.
- Dynamic Splitscreen - Local multiplayer split screen implementation that merges the camera when players are close.
- Camera All-In-One - Editor, screenshake, view-resizing, follow modes, screen effects, etc. 💸
- Pixel Perfect Smooth Camera - An example of pixel-perfect yet smooth camera.
- STANNcam - Camera and resolution manager.
- REZOL - Complete resolution & screen manager (with split-screen support). 💸
Community
Recommendations
Data Manipulation
Recommendations
- 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.
- 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_parseandjson_stringify. However, if you are converting csv, ini, xml, etc, you may find this very useful. - LWO - Lightweight objects using structs.
- Lock And Key - String and file encryption.
- 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!
- Cottonwool - Safe surfaces without memory leaks.
- Airkiver - Game file archive tool.
- OKColor - An okay color manager for implementing OKLab/OKLCH colors.
- Exception - A base class for custom exceptions.
- ArrayList - The most complete list class. Garbage collected, fast sort function, [] accessor and referencing as an array.
- BSONGML - Save and load GML structured data in binary files, skirting memory and performance concerns associated with loading JSON as a string.
- Binder - A binary search library for efficient lookups on large datasets.
- Bit Buffers - Read and write buffers with per-bit granularity.
- sprite_add_gif - Dynamically load animated GIFs as sprites.
- Ngrams - Lightweight n-gram library for fuzzy search, predictive text or token sequence modeling.
- Managix - Async memory & resources manager (texture groups, audio groups, etc). 💸
Debugging
Recommendations
- DeerLog - Small log writer.
- 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.
- gms2-test - Unit testing framework.
- Meta - Runtime asset inspector.
- Duck - A fast GML analyzer to enforce code styling and detect errors.
- Inspectron - A fluent API for easily creating GameMaker debug views.
- FPS Speedometer - Pretty framerate display.
- Gobo - An opinionated code formatter for GML.
- GMPulse - A runtime inspector and control panel. 💸
- Lookout - Helpful debug overlay views.
- Ganary - Uses Olympus to perform regression tests.
- gm-verrific - The ultimate automated testing framework.
- Gobo (EttyKitty fork) - A bit less opinionated code formatter for GML, with more options and functionality.
Footnotes
Recommendations
Getting Started
Recommendations
- Aseprite
- Aseprite's source code - Can be compiled for free.
- GameMaker Release Notes
- GameMaker Marketplace
- Beginner GameMaker Tutorials - Tutorials from Shaun Spalding. A comprehensive introduction to basic features of the IDE. Highly recommended to check out the full playlist if you're a complete beginner.
- Advanced GameMaker Tutorials - Tutorials from DragoniteSpam that dive into more advanced topics related to the GML language. They also have comprehensive 3D and shader introduction videos.
- GameMaker Manual
Input Handling
Recommendations
- XeroInput - Another library to handle multiple inputs for a single action.
- Native Cursors - System-level custom cursors. 💸
- InputCandy - Similar to Input as it acts as a wrapper for SDL, with actions and signalling, but also provides testing, on-screen diagnostics, and some other UI components related to peripherals, as well as pre-built end-user configuration menus that can be easily restyled.
- Good Vibes - Device vibration.
- Mouse Queue - Tracks the Windows mouse pointer with high precision.
- Native Mouselock - System-level mouse locking. 💸
- Raw Input - Use multiple mice and keyboards. 💸
- Input - No nonsense gamepad/keyboard library.
- InputTouch - Touch controls plugin for Input.
Integrations
Recommendations
- NekoPresence - Oops, all Discord integration.
- DHook - 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.
- GMS2_RPC - Another Discord integration.
- GMHook - We really like Discord integration.
- Github.gml - GitHub REST API.
Levels
Recommendations
- LDtk to GMS - LDtk Importer.
- Wave Function Collapse - Generates a random tile map but not production ready in its current state.
- Cellular Automata Caves - Generates huge caves in a few hundred milliseconds.
- LDtkParser - Advanced LDtk Importer.
- Room Data Inspector - Collects room data and stores it into a JSON for later use.
- Random Dungeon Generator - Combines user-defined chambers to create a dungeon.
- Random Level Generator - A random level generation example (similar to Nuclear Throne) using GameMaker.
- Destructible Terrain - An example of collidable, destructible terrain in GameMaker Studio using surfaces and grids.
- GMRoomLoader - Streamlined room loading at runtime. Great for reusable room prefabs and procedural generation.
Lighting
Recommendations
- Bulb - 2D lighting and shadows.
- GameMaker Lighting Engine - Tile-based Lighting Engine that projects shadows.
- Crystal - Complete and efficient 2D lighting & shadows solution. 💸
- Lighting Systems - Very fast dynamic 2D lighting implementation from GrizzliusMaximus using shadow casting.
Localization
Recommendations
- 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.
- gms2-mofile - Mofile reader used for localization.
- cmnLoc - Localization library with a text extractor, short syntax, and ICU/pluralization support. 💸
- MythLoco - A localization system with a web-based strings editor.
- Krug's Localize System - A localization system with real-time Google Sheets API synchronization.
Native Extensions
Recommendations
- zlib functions - Simple compression/decompression functions.
- Window Taskbar - Windows only. Flash the game window border and/or its taskbar button.
- Extension Collection - A suite of various extensions.
- GMESCAPI - Webcam capture.
- Video Player Extension - Play videos. However, the latest version of GMS has video support.
- GMSDLL - A template project for building DLLs for GameMaker.
- gameframe - Custom window caption and border for Windows.
- GMD3D11 - A DLL for interfacing with Windows Direct3D.
- GM Sysinfo - Cross-platform extension for getting system information and resource usage.
- window_shape - Custom-shaped windows on Windows. 💸
- Windows' windows - Multiple windows on Windows. 💸
- winMenu - Native menus on Windows. 💸
- window_set_icon - Change window and/or taskbar icons on Windows.
- file_dropper - Accept drag-and-dropping files onto a game window on Windows.
- file_dragger - Drag-and-drop files out of the game window on Windows.
- Window Commands - Dispatch/intercept window controls like Minimize (and other window-related functions).
- wasm-bridge - A way to use JS extensions in GX/WebAssembly games.
- Web Dynamic Textures - A dynamic texture page loading system for HTML5.
- GMWinBackdrop - Windows 11 backdrop materials.
- GM-ExtensionGenerator - Official, schema-driven code generator for native extensions.
- Rousr Release - Unmaintained projects from the Rousr team (in case anyone asks where OutsideTheBox/Dissonance went).
- GMSDLL.rs - Example on how to make native DLL extensions in Rust.
Networking
Recommendations
- EZ Networking - Host/client implementation with a chat feature.
- GMHandshake - A Gist demonstrating a network handshake.
- Good GameMaker Rollback - Rollback netcode library.
- Boomers Networking - Network library which mimics pre-GM:Studio favorite networking extension 39dll using GM native functions.
- Warp - A feature-rich framework for multiplayer games, written in GameMaker and Node.js.
- Patchwire-GM - The network library from gm-core if you want to use this implementation without the entire gm-core suite.
- HTTP GML - Receive GET requests and upload files in GML.
- GMNest - Socket.IO extension for HTML5 games.
- MultiClient - Non-dll, multiple client launcher for network development.
- GM Networking - Very simple network code demonstration.
- Rocket Networking Engine - Easy low-code multiplayer engine.
- Multiplayer Networking Tutorial - Wizirdi.
Particles
Recommendations
- Particle Editor - Create particles with an easy UI and export into GML code.
- Advanced Particles - A particle implementation that comes with its own delta timing methods.
- Particles Wrapper - A simplistic particle system wrapper that is designed to make creating particles fun and easy.
- Pulse - A library to create more complex particle emitters, systems and particles.
- Burrn - Built-in particle system that uses the particle asset built into the IDE.
Pathing
Recommendations
- Aquila - A* Pathfinding implementation.
- Grid-based Pathfinding Scripts - Flexible pathfinding system with 3 different algorithms.
- Pathfinding in graph - Shortest pathfinding system in (weighted) graph, using Dijkstra algorithm.
- A-Star-Pathing - Another A* pathfinding implementation.
- PathPlus - Enhance GameMaker Paths with CatmullRom and Bezier Interpolations.
- GMNav - High-performance, resumable navigation engine for GameMaker that handles grid, isometric, hex, and platformer maps with flow fields, dynamic costs, and multi-agent pathfinding.
Physics
Recommendations
- GMS2 Platforming System - GameMaker implementation by Ben Allen and an expansion on Shaun Spalding's original 1.4 platformer tutorial.
- Verlet Integration Library - Verlet integration by Sarek Lambert.
- Top-Down Movement & Collision - Robust object-based collision system from Pixelated Pope.
- On Slopes and Grids - A tutorial to implement 45° slopes.
- Loj Hadron Collider - A robust, pixel-perfect collision engine.
- Inverse Kinematics Extension - A library for working with inverse kinematics.
- GMVerlet-Integration - Verlet integration example used for visuals.
- GMPhysX - Adds NVIDIA PhysX to GameMaker for physics-based 2D/3D games. 💸