This post about the issues with GameMaker's built-in JSON functions and an extension I made to address the issues.
Continue readingGameMaker: Opening links in a new tab on HTML5
On some occasions you may want to open a link in a new tab a GameMaker' HTML5 game.
As simple as it may look, this presents a bit of a problem:
- url_open opens links in the same tab.
- url_open_ext can open links in a new tab, but triggers popup blocker.
-
clickables can open links in a new tab, but have to be repositioned manually.
(particularly inconvenient if scaling-positioning the game for mobile browsers) - Adding an actual link (<a> element) into the game template allows to open links in a new tab, but requires basic understanding of JavaScript and HTML to hide/unhide dynamically.
url_open_ext is by far the most convenient of these, so let me explain why that does not work:
To prevent any page from being able to randomly open indefinitely large quantities of new tabs, the browser will automatically block attempts to open new tabs\windows unless they originate from user interaction (click event);
GameMaker handles events, and writes down new input states to later dispatch GML-level events at the right time and place (see event order). This means that your GML code inside a "Mouse Pressed" event does not count as originating from a user interaction (as it executes a few milliseconds later), and thus is not allowed to open new tabs (and do some other things).
However, with a bit of JS (and understanding of internal workings of GM), it is possible to accomplish the intended result, and this post is about that.
Continue readingSetting up portrait orientation on Wacom One / Intuos / Bamboo
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.
Update 2: for One/Intuous, the newer version of driver (6.x) has these options exposed in UI.
Continue readingGameMaker: Recovering lost work
This post is about resolving situations involving loosing parts of GameMaker projects - be that from human error, software glitches, or hardware failure.
Continue readingDisabling GIF autoplay in TweetDeck
TweetDeck can play GIFs for a while now. That's nice. It does, however, automatically start playing them as soon as they are in view. That's less nice, especially if you have multiple columns on a large screen - distraction ensued.
As you may expect, however, this can be fixed with a bit of JavaScript.
Continue readingGameMaker: Loading bar + animated image in HTML5
Mouseover to view animation (note: mild color cycling)
A year and some ago, I published an extension that allows to use custom logos for HTML5 games made with GameMaker: Studio. Since some functionality has been added since then, I made an updated version with more options.
Continue readingSpelunky Classic source code for GameMaker: Studio
Original Spelunky's source code is available for download for a while now.
The downloadable project is, however, in GM8 format, and does not easily work in GMS.
At the same time, a GameMaker:Studio-compatible (ported) version of Spelunky Classic was included in Humble GameMaker Bundle, and thus available to anyone that bought the bundle.
A certain problem with that is, obviously, that if you haven't had the luck to be made aware of and buy the bundle in time, you would not have access to it afterwards.
However, I was able to confirm that the GMS version of Spelunky Classic included in the bundle can in fact be distributed publicly (because the GM8 one already is publicly available), so here's that:
yal.cc
Dropbox
Google Drive
MD5 checksum: 65c418623581b9d0c392cd8709e2739f
SHA-1 checksum: fd9794f05d62e37dfd1213769bb8afcad9cfaf16
Keep in mind, however, that this the exact file made available via Humble - it may still have some oddities that you'd need to resolve. Regardless, a solid starting point.
For discussions, check out the official forums. Have fun!
GameMaker: Window commands extension
Yesterday I made a GameMaker: Studio extension that provides a bunch of utility functions:
- Allows to minimize/maximize/restore the window on demand.
- Allows to disable/enable minimize button, maximize button, close button, and window movement.
- Allows to override behavior for when minimize/maximize/close buttons are clicked.
It is available for free via itch.io; Some examples of uses follow.
Continue readingGameMaker: Clipping drawn graphics
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 readingGameMaker: Simplest possible custom alarms
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