Game Design
Home IMVU Water Panic Bouncy Ball Game Bouncy Ball Game Game Design OpenSlug Perl Programming Contents Updates


Path Finding
Variable Scope
Super Bouncy Ball
Balls of Doom
k8055 GM

Gamemaker resources

I first found out about Mark Overmars's Gamemaker in 2004, through reading a review of "Raging Skies". Having played the game right through I became curious about the game design system.

The following are not finished programs, they are either unfinished projects or they are examples and tutorials showing ways of using Gamemaker 5.3A.

Path_finder and bigmap require registered Gamemaker 5.3, others will run on an unregistered copy.

These examples should port to Gamemaker 7, though in a few cases there are differences. Bigmap will not port due to the advanced draw functions having changed completely.

I can be contacted as BorisE on the gmc forum at:

Ongoing projects:

Bouncing ball game

A very simple game with only one control.

Press a key to run, try not to get squashed by the giant bouncing balls.

Alternative version: run away from the giant soccer ball, small balls only slow you down but if the big one rolls over you its all over


Water Panic Web Version

Mostly the same as the GM5.3 version but exported to HTML5. Currently its a little patchy due to aspects of the original that don't export well.

List of gamemaker tutorials with example code, free to use 

Path Finder

How to use the mp_grid_path function to find a route without using obvious "grid" motion.

Using the generated route as a path will lead to an instance following a very strict path that may be unsuitable in many games. By generating the route then parsing the resulting path and extracting its nodes it is possible to "guide" an instance to a goal without putting it on obvious "rails".


Some notes on using vectors in 2D. Incomplete

Quaternions and rotation in 3D

A set of GML functions for dealing with rotation and orientation in 3D. Examples are given here

Platform game design

A series of tutorials describing a technique for designing platform games with advanced features like slopes and friction. It doesn't cover ladders yet.

GM Event sequence (Slightly updated for Studio)

Although this page forms part of the platform tutorial, this information is also useful to any gamemaker designer who needs to understand the order in which events are executed.

Event sequence can cause obscure bugs when actions are not carried out in the order you expect.

The event sequence in GM Studio has been improved significantly, such that an instance's destroy event can be relied on as a "clean-up" event. Note that as "Destroy" events will be called when a room ends you should not use "destroy" to place "drops" or increment score.

Auto sprite (version for GM Studio using asset_get_index)

The following technique will help in assigning the large numbers of sprites needed for good animation in a platform game, especially one with more than one player or with walking monsters. The technique can also be applied to animating objects that rotate, or any game where an instance goes through changes of state that mean changing the sprite, and it is desired to have generic creation code and not hard-code the assignments.


Path Tracer / Path Tracker example (GMD)

Path Tracer demonstrates a novel use of paths to track players in a racing game. As it stands it tracks the progress of the mouse pointer round a figure-of-eight path. The path end event is used to implement a lap counter. The sum of path_position and laps gives a value for the player's progress in the race. Using this the game can almost always know which player is leading. At present I haven't implemented backtracking so if the player is being silly and going backwards the tracker will not follow.

Dragging with mouse (GMD)

This shows a way to allow an object to be moved by clicking on it.

It uses an alarm rather than the step event, so that inactive objects do not slow the game down.

Two objects are given, one using Drag&Drop, the other GML. The code tries to prevent multiple objects being dragged using a crude cancel mechanism.


Abandoned projects, available for use but please credit

These may be used as example code but are not documented in detail the way the previous list are.

Super Bouncy Ball is an abandoned project, and as such may be treated as an example file for modification.

It arose from an experiment in combining a crude "physics" engine with a platform game engine, then throwing in some cute sprites.

Download Zip file Download GMD file

Bigmap is another abandoned project, a "Turn and thrust" game with the complication that your ship is attached to a sphere by a connecting rod. At present the ship bounces off scenery and cannot be destroyed, although at least one player got it stuck.

Download Zip file Download GMD file

Water maze is an unfinished version of Water Panic. Most of the physics is already in place, the monster AI is similar to the finished version and the demo plays quite well. I'm making this available as an example file.

Download Zip file Download Zip of GMD file



Home IMVU Water Panic Bouncy Ball Game Bouncy Ball Game Game Design OpenSlug Perl Programming Contents Updates