Documentation:What is new

Version 8.0 of Game Maker has a large number of improvements over version 7.0. Below the most important changes are described.

Incompatibilities
Text splash screens can no longer show images. However, web splash screens have been added that can show full html documents with images, etc.

A number of changes have been made to the functions related to sprite and background resources. This is due to the fact that Game Maker uses a completely new mechanism for these resources. If your game uses a lot of calls to functions that load or save image resources on the fly you are strongly recommended to keep using the old version 7.0 for that game.

If you use extension packages you will have to reinstall them.

Some changes have been made to the timeline mechanism that can lead to incompatibilities. In particular, assigning a timeline and starting it are now two separate things.

An important bug has been solved in which collision events where executed twice if two objects have collision events with each other. Some games however might have relied on this bug and, hence, might no longer function correctly.

News
Game Maker now default shows a News page when it is started. Here new versions will be announced, new resources will be indicated, there is information about competition, and game design tips and tricks. News is shown only once a day. In the Pro Edition this can be switched off. You can always access the news through the Help menu and you are encouraged to regularly check the news for important information about Game Maker.

Tutorial
Game Maker now has a standard built-in tutorial for beginners. It is shown in a panel at the right of the screen. Experienced users can indicate that they do not want to see the tutorial anymore. To accommodate for the tutorial panel, Game Maker is now default started in full screen mode. It does however remember its settings so changing it once to windowed mode will from that moment on start it in that mode.

Alpha-blending
The new version of Game Maker uses backgrounds and sprites with alpha (transparency) channels. This makes it possible to create and use much nicer sprites. PNG files with such information are now correctly loaded. The sprite and image editors have been completely rewritten, including many new drawing options and effects. A new sprite file selector was added that shows the animations in the sprites. Also we bundle a large number of high-quality sprites with Game Maker that you can use for free in your games.

Enhanced collision checking
You now have more collision checking options. For example, you can indicate that collisions should be with an enclosed disk and you have better control over the bounding box. The sub-image of the sprite can have a combined mask and you can set the dependence on the alpha transparency value.

Splash screens
A new function splash_show_web(url,delay) has been added that can be used to show web pages as splash screens. You can also use local html pages for this. This allows for a powerful mechanism to e.g. create help pages. A close button is added to the splash screens. Also a number of new actions have been added to show the different types of splash pages and to change splash settings. (The old Show Video and Webpage actions have been removes as the new actions include them. They will though still work in old games.)

Trigger events
A new type of event has been introduced: Trigger events. You can specify trigger events yourself. You give them a name and a condition, written in GML. After this they can be used in all objects, just like other events. With this you can easily extend the functionality of Game Maker.

Time lines
The timelines have been extended. The property form has additional buttons to e.g. spread out the moments and to delete or duplicate ranges of moments. Timelines can now be paused and restarted and they can even be played backwards. Also they can now loop automatically.

Importing and exporting resources
The possibility to merge games has been replaced by a much more extensive system to import and export resources. The user can indicate which resources to export to a file (.gmres). Next they can be imported in a different game. In principle only one resource can exist for each name. When there is a name conflict when importing the use can specify to keep the original, replace anyway, take the one that is most recently changed, or keep both (not recommended). To be able to do the third option, all resources now keep track of when they were last changed.

Rewritten script and code editor
The built-in script/code editor has been completely rewritten, making it a lot easier to write code. For example there is pop-up function name completion, argument help, matching brackets, improved color coding, line numbers, on-the-fly error checking, code snippets, and a sophisticated find and replace functionality.

Speed improvements
The speed of games that use code has been considerably improved. A speed-up of up to 100% is sometimes possible. Also the loading time for games is often considerably improved.

Other changes
There are a number of other changes and additions. Here are some of the important ones:


 * You can now use high quality icons for your games.
 * Constants can now be defined in their own form (rather than through the Global Game Settings). As a result they can remain visible while you are e.g. writing scripts. You can also load and save the constants to text files.
 * Also included files are no longer shown in the Global Game Settings but in their own form.
 * Many small visual improvements
 * Added function random_range(x1,x2), irandom(x), and irandom_range(x1,x2). The latter do give integer results and can include x or x2.
 * Added functions mouse_wheel_up and mouse_wheel_down.
 * Added a function set_application_title(title) to set the title of the application (which is shown in the taskbar).
 * Added function file_text_eoln.
 * Added read-only variable debug_mode.
 * There is now a game setting to disallow screensavers or powersaving options (sleep, hybernate) while the game is running (default disallowed).
 * Added functions disk_size(drive) and disk_free(drive) and a variable gamemaker_version.
 * Runtime error messages better indicate the position of the error
 * You can now change to location of the temporary files, see the page on Preferences.

Corrected bugs
The following bugs were corrected. A number of other smaller bugs were corrected as well.


 * An error message when starting Game Maker on Vista with UAC is now removed.
 * Corrected a bug that when using Alt many fields in forms became invisible under Vista.
 * Corrected a bug with action hints not showing in the object and time line forms.
 * When opening a game or starting a new one, a separate save confirmation dialog is no longer displayed for every unsaved resource.
 * Corrected a (sort of) error with the precision of comparison operators in code.
 * Solved bug with a bad background for the Applies To field in code editor.
 * Creating a standalone now correctly checks whether there are any rooms.
 * Replaced all Ctrl+Alt combinatations by Shift+Ctrl because some of combinations are important for German keyboards. Also corrected the shortcut for creating sprites.
 * In simple modes, short-cuts for hidden resources and menu items now are disabled as well. Also the Scripts menu is hidden.
 * Corrected a bug in the function window_get_color.
 * Increased the limit on the number of vertices in drawing 3D primitives for models from 1000 to 32000.
 * Corrected a bug in ignoring z-value for model vertices.
 * Corrected the Outside View and Boundary View events.
 * Game will now run (with warning) when there is no enabled sound card.
 * When the game window looses focus, io events like key presses are now cleared.
 * Corrected and improved error reporting for the creation code of rooms and instances in rooms.
 * room_tile_add and room_tile_add_ext now correctly set the blending color to white and return the correct tile index.
 * Now correctly setting the application title to the file name.
 * Corrected a bug in draw_line_width_color when the length is 0.
 * Tiles with negative scale factors are now correctly drawn.
 * Changed the reading and writing of reals in text files. A dot is now always used as a decimal separator. However, when reading, both a dot or a comma are accepted.
 * A group of resources that is empty will now have the correct closed folder icon.
 * Solved the problem with the flashing of the resource tree.
 * Functions string and string_format no longer crash when the number is too large and they will return the string ERROR.
 * Long paths are now correctly drawn with draw_path.
 * Collapsing the resource tree now works correctly.
 * In an if condition, a value of 0.5 is now treated as true.
 * Solved a bug that sometimes occurred when pressing the ~ key.
 * sign function now correctly returns 0 when the argument is 0.
 * In the path editor, when choosing a room, clicking outside the menu no longer clears the room.
 * Slightly enlarged the debug form to show all toolbar icons. Also made the watch grid columns scale when the form resizes.
 * Corrected a bug that can cause a crash when resizing the game window to 0 height.
 * Solved a bug in ds_grid_add/multiply/set_grid_region.
 * Calls to scripts and extension functions now return a value of 0 when they do not assign a return value themselves.
 * Solved a serious bug in which collision events where executed twice if two objects have collision events with each other.
 * Solved a bug in draw_text_ext with empty lines (multiple #) and a problem with drawing strings that contains CR-LF pairs (when using multiline strings in code).
 * Read-only files can now be used as included files without errors.