This is an average-length (~10 pages) blog post about how to write a parser, AST builder, bytecode compiler, and a bytecode interpreter - in general, and in GameMaker specifically.Continue reading
This post is about implementing custom timelines in GameMaker.
Admittedly, timelines remain to be one of the more dated features of the software, designed for a specific purpose and kept in their original form for compatibility.
Time to time you'll see someone stopping by on forums to write a big rant about how these are a mess, do not do what they expect them to do, and should be redesigned immediately.
People will usually also argue that doing these things by yourself is too hard.
Since it is far easier than people claim, I decided to write a post about this.
This post is about modifying configuration files for Wacom drivers to have a Wacom One tablet function in portrait orientation despite the option not being exposed in configuration UI.
Update: apparently the same applies to Intuos and Bamboo product lines, likely for the entire "generation" of tablets using the same drivers.Continue reading
Mouseover to activate, click to reposition the clipping star.
This is a tutorial about pretty much everything related to clipping drawn graphics in GameMaker.
That is, having drawn graphics only display inside a certain ("clip") area, be that a rectangle (UI regions, minimaps, etc.), circle, or a completely arbitrary shape (pictured above).
Also I'm trying new things so this post is nicely stuffed with interactive demos and snippets.Continue reading
This is a small blog post about a thing that I've now explained so many times that it became obvious that it needs a blog post.
People are constantly asking about how built-in alarms work and how they could be replicated with custom GML code (for having >12 alarms, organization, or else).
Quality of explanations and equivalent code often varies, so here I explain both.Continue reading
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.Continue reading
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.Continue reading
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.Continue reading
Over time, I have witnessed a particular scenario a few too many times:
- A person demonstrates complete unwillingness to learn how to use version control, be that due to "lack of need" or delightful claims of their existing approaches (which most often turn out to be manual backups) being sufficient or even superior.
- A person loses days, weeks, or even months of work due to human error and/or hardware failure(s).
- Noticeably bitter about the situation, a person attempts to continue defending their position.
Having spent far too much time arguing with people and explaining how to use version control, I have decided to make a blog post that would cover a few things on the matter:
- Explain the advantages of version control over "simpler" backups.
- Explain (step-by-step) the basics of using a common combination for version control being BitBucket (service) + Git (software) + SourceTree (GUI client).
While this tutorial is oriented on GameMaker: Studio users, it can also be easily applied for other tools.Continue reading