Today I wrote a tiny GameMaker extension that allows to "flash" the game's window and/or it's taskbar button.
This is most often used to notify the user of something happening in the game while they don't have the window focused - for example, if you have some sort of matchmaking system in a multiplayer game, you'd want the user to become aware that someone joined their game even if the game window is currently minimized.
The extension is incredibly straightforward (a single function with "flags" for options), is documented, and includes C++ source code for ones curious about it.
Time to time I see people come up with increasingly strange solutions for a simple problem of splitting a string into multiple substrings on a delimiter.
So here's a post about the algorithm and with code samples for all existing versions of GameMaker.
Time to time people come up with strange, slow-ish methods for drawing text with shadows in GameMaker.
This is a tutorial about how to achieve the best effect without any of those struggles.
Time to time I see questions being asked about whether it's possible to set variables prior to instance' Create event being executed or otherwise passing values into the freshly created instance.
Most often, people will say that, no, you can't do that, but here's a bunch of strange workarounds instead (executing in alarm event \ moving all Create code into a user event).
Now, as you might be suspecting by the title of the post, that is not quite correct - there's a bunch of substantially more valid methods of approaching the problem. This post covers them.
Today I have published an extension that offers a wide variety of functions for working with INI files in GameMaker.
In doing so, it also does a better job than the built-in functions in many aspects.
This is a blog post detailing the advantages and technical details.
This is an average-length post covering the aspects of reading/writing variables by their name (as string) in each version of GameMaker.
For a little while now, I was working on a new thing - a program that would allow to test GameMaker code right in your browser.
It is now complete, published, and is pretty cool.
You can either check it out right now or continue reading for development details and a bunch of demonstrations of it in action.
(click for web demo)
I made a small GameMaker: Studio extension that provides a unified API for "mouselock" between desktop and web (HTML5).
The way this works is by utilizing built-in mouse snapping functions on desktop targets, and using Pointer Lock API on HTML5.
It bridges between the two, and you get simple functions like mouse_lock(), mouse_unlock(), and mouse_delta_x & mouse_delta_y for getting the mouse movement offset while mouse is locked.
So, if you ever wanted to make some web-based first-person shooters (or just games with mouselook) with GameMaker: Studio, now you can.
The extension is free and can be downloaded from itch.io or
Game's title screen
This week a One Script Games jam was held on GameMaker forums. In short, the rules are that the entire game must be done inside a single script (function), which is then called once per frame, and must make use of built-in functions to store and process all needed information.
While potentially a little quirky, this seemed like an interesting challenge, so I made a game for it.
The result is a mini-FPS that is a mix of Doom, Quake, and a particular cue sport.
You can download it right now or read the full post for technical details.
A little too often I see confusion about what's the difference between different ways of storing global variables in GameMaker, such as global, globalvar, storing in objects, and macros.
So I wrote a small post to show the technical details and clean that up.