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

GameMaker: 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 reading

Introducing: Nuclear Throne Together v9877

As you might know, last year I made Nuclear Throne Together, which is a mod for Nuclear Throne that adds online multiplayer, fixes some bugs, improves the cooperative mode, and otherwise is very nice.

Just about this time last year, Nuclear Throne update 98 has released, which remains the most recent official update of the game.

Today I've released what is the largest update to Nuclear Throne Together to date.

Continue reading

GameMaker: Showing a progress bar in the taskbar

Showing progress bar in taskbar in GameMaker

Since people have asked, I wrote another tiny GameMaker extension.

This one allows you to display "progress" on the game's taskbar button (Win7+ feature).

You can change status (none/unknown/active/paused/stopped) and set the current/total progress.

The feature is intended to be used for displaying progress of continuous operations, such as showing download progress, file operations, and so on.

There are numerous unexpected uses too - for example, personally I'm guilty of [mis]using it to display battery charge, since taking a glance at the taskbar button is much easier than making out percentages from the tray icon, and a button turning yellow/red in taskbar is easier to notice as well.

Much akin to the previous published one, this extension provides exactly one function with a number of constants for various options. And there's C++ code included too, if you're curious.

The extension can be obtained from itch.io or GameMaker: Marketplace. The demo project shown on the GIF is included in both packages.

itch.io marketplace

Have fun!

GameMaker: Flash window / taskbar button

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.

itch.io Marketplace