Skip to content

Latest commit

 

History

History
646 lines (338 loc) · 37.4 KB

README.md

File metadata and controls

646 lines (338 loc) · 37.4 KB

Awesome GameMaker Awesome Made with GameMaker

A curated list of awesome libraries, snippets, guides, and projects for GameMaker. 😎

Contents

Getting Started

General Recommendations

  • If you already have programming experience, learn the GameMaker Language (GML) instead of the Visual (Drag and Drop) feature.

  • For pixel art, AESprite 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.

  • Outside the Box - More system-level utility tools. Includes saving/loading files outside of the GameMaker sandbox, toggling borderless/windowed modes at runtime, and querying detailed memory usage information.

  • DDDEditor - General purpose game editor.

  • handytools - A collection of Juju's libraries in one convenient project.

  • 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.

  • gm-cadence - Schedule code to run at certain times and for certain durations, similar to Coroutines.

  • 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.

  • GML-Prelude - Another functional programming library for GML.

  • Wraptor - A library of wrapper functions.

  • Autoframer - Automatically handles resizing the game view across different display and window sizes.

  • 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.

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 Handling

  • 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. YouTube

  • Smart Clickable GUI - PixelatedPope. YouTube

  • 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.

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

  • FMODGMS - Supposedly this doesn't support everything FMOD has to offer and the project itself has been put on-hold. Keep in mind that GameMaker may be getting native FMOD support soon.

  • WWiseGMS2 - Bindings for the WWise API. Windows only.

  • Echo/Delay Effect - Optimized delay effect. 💸

  • wavload - Demonstrates how to externally load .wav files.

  • SoLoud - Portable audio engine that "can" work with GMS with some limitations. See here.

  • audioExt - Sound External Loader/Unloader Manager.

  • ExternalAudio - Load external .wav files at runtime.

  • Phonix - Compact audio system. Great for dynamic music!

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. YouTube

Integrations

  • DHook - Discord integration.

  • GMS2_RPC - Another Discord integration.

  • NekoPresence - Oops, all Discord integration.

  • Dissonance - Knock knock. Who's there? 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

Useful Extras

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

Community

GameMaker Forums Reddit Discord

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 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