Bugs and Suggestions List
Last changed: May 29, 2005

Please note that not all bug reports and suggestion reports have been added to this list yet.

This list contains reported bugs and improvements suggested for Game Maker. The list is very long and divided into categories. If you want to report a bug or want to make suggestions for improvement, please first carefully check here whether you bug or suggestion has already been listed.

Please note that the fact that a suggestion is on this list does not mean that it will be implemented. For each new version we will pick some of the suggestions that we feel are most important and are doable with reasonable effort.

Changes in the newest version
This list indicated the changes that have been made in the newest version 6.1.
  • Used a new, nicer installer.
  • Game Maker itself now sets the file association for .gm6 files.
  • Added functions for motion planning with potential fields that only take collisions with a particular object into account.
  • Added functions to create, draw, load, and save simple 3D models.
  • Added an action to wrap around
  • Added an action to create a random instance out of four choices
  • Added the notion of surfaces. Surfaces can be used as a drawing target such that they can be created and changed during the game. They can then be drawn on the screen or used as (dynamic) textures. They can also be turned into (alpha transparent) sprites or backgrounds.
  • Increased the number of alarm clocks to 12.
  • Increased the number of user defined events to 16.
  • Added menu items to fully expand/collapse resource tree
  • Added a grid data structures with possibilities to fill, add, multiply regions and get sums, min, max, and averages of regions
  • The particle system has been changed and extended
    • It is no longer necessary to update and draw particle systems. This now goes automatically.
    • The built-in particle types are now created with sprites, yielding better results
    • Added a number of new built-in particles, including rings, smoke, explosions and clouds
    • Particles can now have a (changing) orientation for their sprites
    • Particles can be generated with different colors, using RGB or HSV ranges
    • Particles can have an x- and y-scale to change the aspect ratio
    • Particles can use additive blending
    • Extended the particle system through action with possibility to use a sprite as particle and to set the alpha value.
    • Replaced the random additions by a wiggling setting, allowing for much more interesting effects.
    • Improved the particle demo.
  • An effect mechanism was added, making it very easy to add all sorts of explosions, smoke, firworks rain, or snow to the game.
    • With a single action or a function
    • Twelve different types, like smoke, stars, a ring, an explosion, rain, etc.
    • Three sizes for each type
    • Color can be indicated for each effect
  • Made a number of changes in the image editor
    • Last draw mode is now remembered
    • Holding Ctrl you can temporarily pick a color
    • Holding Shift will draw hor, vert and diagonal lines and squares and disks
    • Possibility to create or add an outline of the image (also in sprite editor)
    • Possibility to invert the colors of the image (also in sprite editor)
    • Selecting and moving areas is now possible
    • Selections can be used for copy and paste
    • Text can now be moved around and changed
    • Moving all pixels in a direction now cycles the pixels image (that is, the pixels removed reappear on the other side)
    • There are now better mouse cursors
  • Added functions choose(val1,val2,...) and median(val1,val2,...)
  • Blocks of actions in the object or timeline form are now indented
  • When adding images to sprites there are now more placement options
  • Added mouse wheel up and mouse wheel down events
  • You can now use hexadecimal number starting with a $, e.g. $0000FF is red.
  • Added a function to set 3D perspective projection to default
  • In timeline form added the possibility to duplicate a moment
  • Added a function draw_clear_alpha(col,alpha) that is in particular useful for clearing surfaces with a particular alpha value.
  • You can now use the mousewheel to scroll through the room during design
  • Changed the way an object is followed by a view (only position, no longer taking sprite into account). This avoids a lot of jitter problems, but might require slightly larger border settings.
  • Added a function screen_wait_vsync() to wait for a vertical refresh of the monitor.
  • You can now hold <Shift> while selecting tiles to select multiple or hold <Ctrl> to select a multiple of the room grid size.

Bugs corrected in the newest version
This list indicates the bugs that have been corrected in the newest version 6.1.
  • Collision functions now work correctly with notme set.
  • When you create rooms during the game the speed is now default set to 30
  • Buffer is now cleared to black when a game is started or graphics mode is changed.
  • Corrected a bug in function d3d_vertex_normal_texture_color().
  • Fog now tests what fog modes are supported and chooses the supported one (might still fail).
  • Hints in font form are now correct
  • Global variables in debug form are now correctly shown
  • Corrected bug when adding or deleting moments in empty timelines during the game
  • Constant c_dkgray is now darker than c_gray.
  • When giving too large a size when creating a sprite or background from the screen, no crash occurs.
  • Corrected a bug with random sizes of sprite based particles.
  • Corrected a bug with setting the origin when using sprite_replace().
  • In the doc, corrected all draw_part functions to have width and height rather than right and bottom as arguments.
  • When an object has no sprite a view will now follow it correctly.
  • Some older graphics cards might be supported slightly better now (no guarantee).
  • Made a number of corrections/changes/checks in the sound system, which should lead to less problems with sound.
  • Sound played in the maker are now stopped when switching to a different resource or when deleting them.
  • Improved the sprite toolbar image.
  • Real values in INI files are now correctly read with both , and . as separator
  • Corrected problem with keyboard or mouse button state when calling functions to check them
  • Jump to a random position action and function no longer sometimes jumps outside the room.
  • Any key events do now react to keys like ~ . , [ etc.
  • Solved bug with elliptic shaped particle destroyers and changers
  • Corrected a bug that sometimes happenen when dragging actions in an action list
  • When merging games the object that a view must follow now remains correct
  • Added constants for global mouse events and mouse wheel events
  • Default sound volume is now always maximum.
  • A path speed can now indeed be negative.
  • Solved some errors with the scrollbar in the room editor

Planned in next version
This list contains changes that are currently planned for the next version. But this is almost certainly going to change. In particular, quite a few other things might be added as well. Currently empty because the newest version just appeared.

Known bugs
This list contains bugs that have been reported and have been verified.
  • function(...).x = 5 gives a compile error.
  • Some forms do not correctly handle large font settings in the windows properties
  • Sometimes the loading bar in the Game Maker does not disappear. (press Windows-D while loading)
  • When maximizing the room form, closing it and then opening it, it is not maximized and too large.
  • Closing Windows while game maker is running gives an error
  • When adding instances to the room with only add when the bounding boxes don't interesect(not just the position is outside the old one).
  • If object0 change into object1 in an event (e.g. mouse click) the event is executed also for the new object.
  • Pressing in the room settings gives the underscores but hides the rest of the text?
  • mouse and key release event do not happen when outside of window or non-active window
  • When running Game Maker and a laptop hybernates the program crashes.
  • Room form does not remember whether it was maximized (also other MDI forms)
  • Moving your mouse over input value fields with wrong value leave a red border if good value is entered
  • When you choose New Game and then cancel, you still get a lot more cancel questions
  • When copying something in the code editor, remove non-printable characters and font info.
  • When looping a sound and setting a speed (for doppler effect) it does not loop at the correct moment.
  • Precision of reals is pretty bad (Don't know what causes this, happened between 5.4.7 and 5.4.10). This in particular effects datetime functions.
  • Fully collapsing the resource tree does not work correctly when there are groups.
  • In the game information the cursor is still visible.
  • When saving to a device with too little space it does not give the opportunity to save elsewhere.
  • Sometimes files get corrupted; some people claim this happens with very large sound or image files.
  • Variable cursor_sprite still exists even though not in the doc???
  • Sometimes the resource trees keeps refreshing itself for a while
  • When clicking multiple buttons in the event selector they keep their orange boundary (no redraw???)
  • In multiplayer mode messages send to all player do not always arrive (NOT CONFIRMED)
  • There is a bug in the boundig box calculation for scaled sprites (NOT CONFIRMED)
  • In some sense the window appear too later (after e.g. creation events)
  • file_bin_open() should create a file if it does not exist (NOT CONFIRMED)
  • Reading reals from textfiles should correctly treat both . and , as decimal separators
  • Game Maker does not run well with S3 ProSavage DDR Graphics Card
  • After a show_message() call with a large message, calls later are no longer in the screen center (NOT CONFIRMED)
  • Variables created through execute_string do not save/load correctly (NOT CONFIRMED)
  • When you use parameter_string(1) after than INI files are stored relative to that parameter (NOT CONFIRMED)
  • Textures are not always pixel perfect (NOT CONFIRMED)
  • After opening a saved game there can be errors in the showing of local vars in the debugger (NOT CONFIRMED)
  • The text displayed in the taskbar is not properly capitalized, when multiple words (NOT CONFIRMED)
  • Errors in room creation code are not correctly reported
  • Sometimes in the room editor tiles are drawn one pixels to large (NOT CONFIRMED)

Suggested improvements
Here you find a huge lists of improvements that have been suggested. They are subdivided in categories.

Image and Sprite editor
  • Preview in the image editor (when in zoom mode)
  • polygon drawing in the image editor.
  • Save and jump to next/prev frame (To help animating)
  • onion skinning ? for easier animations
  • CAnimation object must store images in one bitmap to save resources.
  • use a tolerance level for transparency (either in the image editor or in the runner)
  • Select different transparency color than left bottom one (internally make all sprites one higher???)
  • Make it possible to save a sprite with all this collision data, etc. and load it later in the game. Similar for sounds, backgrounds, paths.
  • Apply the animation tools to only certain frames (i.e. i have a 30 frames animation, then i want to morph it form frame 15 to 30, so the first 15 frames remain without changes)
  • in the overlay function in the animation menu, an option to pick a color and set it as transparent, so we can overlay an animation without first turn it transparent.
  • Integrate the sprite editor and the image editor with additional support to create animations
  • support for mng animations
  • possibility to add a shadow
  • allow for alpha value changing, storing images differently (32-bit) and importing images with alpha channel (e.g. png)
  • When in selecting mode, all sort of operations (color, blur, etc.) should work on the selection, not on the image
  • Loading AVI files as animated sprites (????)

Backgrounds
  • Backgrounds should not loose their tile settings when being loaded

Sound
  • looping part of a piece of music
  • sound_get_length(snd) function
  • sound_get_position(snd) function (if it is playing)
  • Function cd_loop() to loop a cd forever.
  • Providing the starting place for the sound
  • More support for DirectMusic files (like changing style, etc.)
  • More support for Direct Music Producer files (e.g. scripts)
  • function sound_play_atbeat(index)
  • Better support for mp3 files
  • Functions sound_get_volume() and sound_get_global_volume()

Events and Actions
  • Panel resize bar between event list and action list in object form
  • Separate event for left, right, top and bottom boundary and outside
  • Add TAB key event
  • pause
  • Action for "if key is pressed"
  • action to check whether a joystick button is pressed
  • Seperator action (just a thick line)
  • vertical health-bars
  • Use a treeview for the events
  • Joystick button press and release events
  • drag actions directly to an event should open the event and add the action at the end
  • event should appear in the list in the order they are executed
  • out of view event
  • action to check whether a save file exists
  • Option to indicate in the options which libraries to include in the EXE.
  • Action (or function) to destroy nearby instances of a given object
  • Add an action to check whether an instance of an object is within a certain distance from a point
  • Add a mouse over event (similar to no button but also with a button)
  • Action to check for a keypress
  • An outside view event
  • Seperate events for outside TOP of room, Outside left, outside right, and outside bottom.
  • Event for collision with no object.

Rooms
  • overview of all instances in the room
  • move part of the room around in the room creator
  • add the possibility for a scaled overview of the total room
  • Option to start at a particular room, e.g. for testing
  • Possibility to "paint" areas in a room that create events when an object hits it
  • hotkeys to quickly select objects (or start typing the name)
  • possibility to hide instances of invisible objects
  • possibility to have semi-transparent views
  • easier mechanism to deal with tiles, e.g. filling whole regions with them.
  • Posibility to remove all instances of an object
  • Change the offset of the grid (???)
  • When adding tiles, use the arrow keys to select the different tiles in the set
  • Possibility to have multiple rooms open at once (e.g. views in different rooms)

Fonts
  • Special text effects (engraved, shadow, hollow fonts, slanting)
  • Give error when drawing characters that are not in the font

Time lines
  • expressions for the steps in a time line (more like conditionals)
  • negative speed for time lines?????

Paths
  • A number of predefined paths (circle, square, sin wave,spiral, ...)
  • Add other interpolation modes
  • Make it possible to not stop at a solid object
  • Make it possible to change the position with respect to which the path is relative

Game Information
  • Improved Game Information with images, etc.
  • More fancy editor with popup menu, etc.
  • Multiple Game Information files
  • Hyperlinks in game information

Scripts and code
  • don't show help for function names when in a string or in comment
  • menu item to check all action arguments and pieces of code, not just scripts
  • menu item to list all variables used (??)
  • menu item to print all scripts
  • Colored comments in action list (add color argument)
  • Colored { } pairs (also in actions)
  • Colorcode numbers and strings in code editor with own colors
  • Pop-up help for functions in the code editor
  • try .. except construction (or something similar)
  • When resizing the script form, keep the top the same rather than show the cursor always.
  • Constant arrays, e.g. [3,4,6,2,78]
  • In more functions and variables check for errors and report these.
  • Find matching bracket in code editor.
  • Data types and pointers in GML.
  • Breakpoints in code
  • Try to use shorter string than 1K per string
  • Color code help list of all functions, variables, constants, and own defined things
  • In options indicate which expressions to see in the debug window
  • Description should remain visible when entering arguments of a function

Functions
  • Functions to deal with a string with fields delimited by a character (find,replace,delete,count)
  • get_save_filename_ext() functions with more possibilities.
  • Undoing the effect of message_position(x,y)
  • function for getting windows directory (get environment variable windir?)
  • function for getting windows version
  • functions to get information about the computer configuration
  • Function instance_top(x,y) and instance_bottom(x,y) to report the top and bottommost instance at a position
  • Function to choose the CD player to use for playing music
  • message_box with multiple choices (like a menu)
  • allow default windows message box style
  • function file_size(fname) to get the size of a file
  • Setting window state when executing an external program (maximized, minimized, normal, or hidden)
  • Support the loading of other image types at runtime.
  • Make screenshot in jpg format, not bmp
  • Function handle_events that handles all events that have occured in the meantime if this is possible) or maybe just handle_io.
  • Add functions to wait for a particular key, mouse button or joystick button
  • functions for printing
  • possibility to get a witness where a collision occurs
  • speed up data structures
  • Local health mechanism.
  • Text to Speech functions
  • DLL functions with integer arguments and more string arguments.
  • Ability to cycle through a subset of the images in a sprite
  • Function to get the id of a CD.
  • Allow special graphical effects on the whole image visible in the game.
  • argument checking for functions
  • functions for sending email, ftp, etc.
  • more options for show_video (etc.) like whether to show the mouse whether to close with the mouse, etc.
  • Use a sprite as a mask for drawing another sprite (sort of and function), possibly repeating the sprite.
  • Support for force feedback
  • make deleting tiles faster (e.g. use a marked field as with instances)
  • resource functions to duplicate and change events
  • extend the possibilities of the functions to show videos, etc.
  • more functions to find certain tiles.
  • function move_contact should return the id of the instance you touch.
  • Possibility to write a particle definition (including the sprite) to a file and to load it
  • Change the background image for all tiles with a particular background (can be used for animated tiles)
  • Save and restore datastructures when savin and loading a game
  • Copy functions for data structures
  • Functions like place_meeting etc. should give a witness (or a separate functions). Same for collision functions.
  • Function to snap to an isometric grid.

3D Graphics functions
  • More lighting posssibilities (ambient, dynamic, etc.)
  • Material properties
  • Shadows (probably not)
  • Reading wellknown model formats
  • 3D particles
  • Text in 3D
  • Investigate whether double texture mapping is possible
  • Other transformations (quaternions, vector-to-vector)
  • Bump mapping (probably not)
  • Create a terrain from a bitmap (intensity is height information)

Multiplayer functionality
  • Rewrite using more recent version fo DirectPlay (to avoid routers blocking games)
  • Transfer a file in multiplayer mode
  • Function mplay_change_name(id,name) to change a players name
  • Support for sockets

Help files
  • separate pages for all functions (with F1 in code editor)
  • separate pages for all events and actions

Other
  • More shortcuts at many places in the different forms
  • Avoid jump to top in debug variable lists
  • Avoid that when closing the maker it asks multiple times to save something.
  • option to always save before testing the game.
  • Much better support to get an overview of everything in your game with options to jump there (like object information)
  • Search feature in object information.
  • When cancelling a new resource just after it was created should delete it
  • sleep for a fixed time for instances
  • Possibility to make objects solid from a particular side only (or combinations)
  • Allow for simple expressions in ValueEdit and also fractional values (for example for background speed)
  • Toolbar or menu to start some other useful programs like e.g. a calculator
  • Duplicate groups of resources
  • Support for loading .ani/.cur files.
  • Add an autosave option
  • Possibility to specify command line parameters when testing a game
  • Real timing rather than steps
  • more transition effects
  • Multilanguage support
  • Possibility to globally search for certain actions or variables or strings
  • create a printout of the whole game???
  • addition of windows controls like buttons, input fields, etc., maybe as addition resource
  • pop-up dialog boxes as a resource type.
  • Option to call a game from within a game.
  • Indication of memory consumption and indication of system requirements
  • Clipping paths for images
  • password protected editable gm6 files
  • support for flash files
  • Built-in database mechanism.
  • Generic trigger mechanism
  • plug-in mechanism with DLLs and definition file such that simple functions can be used rather than special one.
  • Tip of the day in Game Maker
  • Built-in game registration mechanism and or passwording mechanism
  • Remember sub-window sizes in the maker
  • Make disabling the key independent from disabling the Close box.
  • Check whether there is enough space to save a file before saving it.
  • Possibility to hide the mouse cursor when showing videos.
  • Use a separate version of the runner for the stand-alone games without debugger
  • Multiple scores, healths, lives, etc.
  • Put Exclusive mode back in, mainly to avoid problems with tearing, resolution changing, and graphics speed.
  • Make it possible to select multiple resource, for e.g. dragging into a group
  • Add option not to show the loading screen at all.
  • Allow partial matches when searching for resources
  • In the preferences, make it possible to set the default prefixes for the resources
  • Better support for team-based development
  • Support for Visual Basic DLL's (?? Don't know why this is a problem??)

Unlikely suggestions
Of the suggestions below it is rather unlikely that we will follow them. This by the way does not mean that all suggestions above will be followed.

Probably never
We most likely won't follow these, but never say never.
  • Dual monitor support
  • Adding more undo levels and a redo option too?
  • Customizable toolbars
  • Make it possible to record sounds and maybe manipulate them.
  • Animated loading image
  • Viewing multiple rooms at once.
  • Wizards for creating particular types of games.
  • Adding ability to read compressed files.
  • Music while loading.
  • Animated backgrounds or tiles
  • Notion of regions in a room and functions/events for collisions with them and drawing settings
  • Multidimensional array (with dimension larger than 2)
  • Having layers of objects
  • Objects consisting of subparts with their own sprites and events
  • Support for icons of other sizes.
  • Support for the INK package on touch panel laptops.
  • Unicode support for the fonts

Suggestions I won't follow
The suggestions below have been made quite some times but we are not going to follow them. The reasons for this are indicated.
  • Include an icon creator. (There are pefect free programs for this available.)
  • Really compiling the code. (Way too much work.)
  • A 3D version of Game Maker. (Never say never but stop asking me.)
  • Copy-and-Paste of objects and rooms between games. (This won't work because e.g. the objects reference sprites and sounds and rooms, etc. So they are not independent of the rest of the game.)
  • Start and ending movies. (These can be made very easily using the coresponding functions so I won't add special functionality for these)
  • Add virtual keycode for the COMMA and PERIOD (and others???). (The problem is that these keys are manufacturer specific and are different on different keyboards.)
  • Creating screensavers. (The program is not meant for that.)
  • Games that run through a web page
  • Versions for Mac, Unix, Palm, etc.
  • Pallet swapping
  • Sprites with animated subsprites (that is what groups are for)
  • Support for running games using Remote Desktop Connection