You might know me from my commercial work but I spend my free time making libraries to help developers.
GML is something of a quirky language and has led me to evolve particular techniques to establish a personal "best practice". You can read some of my thoughts on the nuances of developing in GameMaker here.
|  | Scribble Deluxe Powerful, fully featured text renderer Optimised for dynamic effects and dialogue |  | Input Comprehensive cross-platform input Now maintained by offalynne | 
|  | Scribble Jr. Fast and lightweight text renderer Optimised for UI text and performance |  | Vinyl Live updating modular audio system | 
|  | SNAP Struct and array export/import and utilities |  | Chatterbox Narrative scripting tool | 
|  | Dynamo Dynamic data loading |  | Snitch Logging and crash handling system | 
|  | iota Miniature fixed timestep library |  | Bulb 2D lighting and shadows | 
|  | Texan Texture group manager |  | DoLater call_laterbut with arguments | 
|  | Clean Shapes Antialiased primitive drawing |  | db Simple savedata database | 
| Bonk | 3D collision and response-to-collision. Presumes a Z up coordinate system | 
| Ugg | Basic 3D shape drawing. Useful for debugging and whiteboxing | 
| Basic Quaternions | Basic 3D quaternion functions. Useful for managing complex rotations in 3D | 
| dotobj | .obj loader. Supports out-of-spec vertex colours | 
| Scribble Deluxe | Feature-packed text renderer, optimised for dynamic effects and dialogue | 
| Scribble Jr. | Lightweight text renderer. Fewer features than Scribble Deluxe but far faster | 
| Chatterbox | Branching narrative engine. Loosely based on version 2 of the YarnScript language | 
| Buffer-based string operations | Faster bulk string deletion/insertion using buffer operations | 
| Ngram | Ngram fuzzy string matching | 
| Levenshtein | Levenshtein fuzzy string matching | 
| Ltxt | Localization experiment. Probably not suitable for serious use | 
| Text Utilities | Various language processing tools for Arabic, Thai, Hindi (Devanagari), and Hebrew. Not fully explored | 
| LoadOTF | .otf file loader. Incomplete | 
| MSDF Tool | MSDF font tool. Incomplete | 
| PictureFrame | Camera/view/GUI/window/application surface calculator | 
| Beady Eye | Camera helper. Has a selection of modes and screenshake options | 
| Resolution Library | Library of different resolutions for different devices. Useful for testing reactive interfaces etc. | 
| Vinyl | Multi-purposes sound playback. Supports live mixing | 
| BorkBork | Advanced audio emitters. Supports lots of different shapes including boxes, lines, and polygons | 
| Waveform View | Audio waveform viewer. That's all! Might be useful for games where the player can import their own music | 
| Clean Shapes | Antialiased shape drawing. Has a nice batching mode for efficient rendering | 
| ColorMod | High performance palette swapper | 
| Bulb | 2D lighting and shadows, including "infinite range" directional lights. Has a tonemapper and HDR mode | 
| Splat | Vertex buffer-based decals | 
| Kawase | Kawase blur solution. Much faster than high radius Gaussian blur | 
| LUT | Simple 4K LUT (32-bit 1:1 colour swap) to colour grade images as a post-processing effect | 
| Shockwave | Per-pixel ripple effect | 
| Texan | TEXture mANager. Tool to help unload/load textures in a sensible and efficient way | 
| Pixel Art Upscaling | Filtered pixel art upscaler. Allows you to scale pixel art by non-integer values without distortion and with minimal blurriness | 
| Scalers | Various pixel art scaler shaders. Not general purpose. The shaders are opinionated and look very different to each other | 
| Homographic Sprite Drawing | Distortion-free sprite skewing. Solves the texture stretching problems when using skewed two-triangle primitive | 
| Matrices | Various matrix operations | 
| Morph | 2D matrix emulation. Helpful for performance-sensitive situations where full fat matrix functions would be too slow | 
| Pinocchio | State-based animation system. Was inteded for use with GUIs | 
| Lattice | Textmode-style rendering functions | 
| gl_FragDepthEXT | Simple example of gl_FragDepthEXT use | 
| Snitch | Logging and crash handling system. Can interface with sentry.io, GameAnalytics, Bugsnag, or whatever custom service you're using | 
| Unity Analytics | Unity Analytics integration. Uses the REST API so should be cross-platform | 
| Google Analytics 4 | Google Analytics 4 integration. Uses the REST API so should be cross-platform | 
| SNAP | Data format converters. Can read/write JSON, YAML, CSV, Messagepack, XML, INI, VDF, QML. Can read/write other formats too (pure binary, NSV, basic GML, grid and 2D arrays, GameMaker tilemaps) | 
| Extending JSON | Two JSON-like formats that are easier for a human to write | 
| Iago | JSON schemas. Doesn't have full coverage | 
| db | Simple database system that runs JSON underneath | 
| Sphinx | Simple encryption system. Not mega secure but will deter unserious attackers | 
| Protect Your Savefiles | HMAC-based savefile security. Doesn't encrypt savefiles but does prevent them from being editted | 
| Dynamo | Live data updating. Helpful to build system that allow you to edit game parameters whilst the game is running | 
| Elephant | Struct serialization system. Retains constructor type for structs when deserializing. Includes versioning system | 
| SHA and HMAC | SHA and HMAC implementations. Covers SHA-256 and SHA-512 | 
| Postie | Ordered, accumulated, and simulated network packets. Very useful for emulating dodgy network connections to stress test multiplayer games | 
| PRNG Functions | Suite of PRNG functions. Very helpful for networked multiplayer and procedural generation | 
| PRNG Finder | Set of macros to discover native GameMaker functions that update the internal PRNG. Useful to discover places where game behaviour might diverge due to different random seeds | 
| BIG | Big integer solution. Contains converters to and from strings and decimals | 
| Mundi | Dijkstra floodfill solution. Also contains pathfinding | 
| Delaunay Triangulation | Triangulation algorithm that tends to generate visually pleasing triangle decompositions. Also contains pathfinding | 
| Computational Geometry | My first ever piece of open source code. Covers nearest point on path, path smoothing, geometry simplification, and sprite edge tracing | 
| iota | Fixed timestep delta timing solution. Has variable interpolation for generating frames between logic steps | 
| DoLater | Better call_later() | 
| Coroutines | Asynchronous code execution. Useful for cutscenes | 
| Bento | GUI framework. Incomplete (for now) | 
| Textbox | Monospaced multiline text entry. Not especially well tested | 
| Painfully Learned Lessons | General advice for using GameMaker | 
| Thoughts On GameMaker | More specific advice for using GameMaker based on my own beliefs and experiences | 
| GameMaker Libraries | GameMaker libraries made by other people! | 
| CrapPointer | Crappy pointers. Maybe you need these but you probably don't | 
| Gumshoe | Cross-platform file finder | 
| Mobile Haptics | Very basic haptics for mobile devices. Probably obsolete these days | 
| MemTrack | Memory usage tracking. Records when and where data structures, vertex buffers, surfaces etc. were created and whether they have been destroyed or not | 
| A Message from Amalthea | Music toy made for the 2019 Meditations project (9th September). Designed to run in the browser on multiple platforms | 
| GitHub Release Notifications | Silly system for checking for repo updates on GitHub | 




