Spiky Caterpillar's Python GM Runtime


- This is experimental software. It may or may not actually work for what you are trying to do with it. While I *hope* that it works, I do not guarantee that it will. IT IS NOT COMPLETE.

- This only implements part of the Game Maker API. There are functions that work in the real GM but not in my runtime (for example, I haven't implemented the 3D commands, and many of the drag-and-drop commands do not work in my runtime). There are commands that work in my runtime but are slightly different - for example, I don't support the same particle types, and the particle graphics are different.

- This is a RUNNER, not a clone of Game Maker. If you want to MAKE a new GM game, you'll need to use the actual Game Maker program; this is for porting existing games.

- Spiky Caterpillar is not affiliated in any way with Yoyo Games, Mark Overmars, or the development of Game Maker. This is an independent project.

- I have only tested compiling, building, and standalone play on Linux. once built, your game can be played on MacOS X on both PPC and Intel processors and on Linux on both x86 and x86-64 processors.

- Currently, the only GM games I've tested it on that I know are playable are Cute Knight Kingdom (The Mac and Linux versions were built using my runtime) and the sample asteroids.gm6.

Getting Started

Download: SpikyCaterpillar'sGMRuntime-0.9.98.tar.bz2 (Contains MacOS X PPC, MacOS X x86, Linux x86, and Linux x86-64 binaries) and decompress it.

Copy the .gm6 file you're trying to run and any fonts or other files that it uses into the runtime directory. Font files need to have the same names that they do in the .gm6, WITHOUT the .ttf extension. (So, for example, 'Prescript.ttf' needs to be renamed 'Prescript'.)

In a terminal, change to the directory that the .gm6 is in and run 'python2.5 rungm6.pyc --gm6=yourgame.gm6 --compile' to compile the game.

If it compiled successfully, you can then run it using 'python2.5 rungm6.pyc'.


The source code for the runtime is now available in SpikyCaterpillar'sGMRuntime-

Building Games

To build a more user-friendly redistributable (which will include the relevant libraries, so you don't have to make all your players figure out how to update their Python), you'll need Ren'Py 6.10.2e. (My runtime has not yet been updated to support 6.11), and has not been tested on older versions.

Download and decompress renpy-6.10.2e-sdk.tar.bz2. (You can get more recent versions of Ren'Py from renpy.org; however, my GM runtime does not currently work in 6.11 and would require significant changes to enable it to.

Run Ren'Py.

Click 'Select Project' and set your projects directory.

Put the runtime directory into your Ren'Py projects directory (if it isn't already).

Select the SpikyCaterpillar'sGMRuntime project.

Click 'Build Distributions' and (after dismissing the lint messages if necessary) uncheck Windows. Leave Linux x86 and Macintosh Universal checked. Click Build, and it will make you a pair of nice big redistributables!

(Note: By default, the .gm6 file is included in the redistributable unless you specifically tell Ren'Py to leave it out. Also, all fonts used have to be included in the redistributable or the game will not work. You can leave out the .gm6 and the game will still run.)

64-bit Linux Users: Note that Debian testing, at the time of this writing, has a bug in the 32-bit compatibility libraries that causes Ren'Py games to fail to load properly! To work around this bug, export SDL_AUDIODRIVER=alsa before starting the game, or modify the .sh to do so for you.

Reporting Bugs

First of all, check the game in Windows GM to see if the bug also shows up there. If a bug in your game also happens when you run it in Windows, it's in the .gm6 and YOU need to fix it.

If the bug's in my code, contact me and describe what you were doing when the bug occurred and send me any tracebacks or other crash information that it produced. If it didn't crash, describe what the game is supposed to do and what it's actually doing - screenshots comparing behavior on Windows and on Linux/MacOS can help.

Commercial Use

If you'd like to use my runtime to port a commercial project to OS X and Linux, please contact me to discuss licensing terms.

Contact Spiky Caterpillar