What is New
Version 7.0 of Game Maker has a number of important
changes over version 6.1. In particular there is a new extension
mechanism. Below the most important changes are described.
Incompatibilities
Version 7.0 uses an adapted file format. As a result file names
now have the extension .gmk. The new version can though
still read .gm6 files created with the previous version
and it is fully compatible with such files.
There is a minor incompatibility in the use of room transitions.
In previous version transitions could also be used between frames
in the same room. This is not longer possible. Transitions can only
be used between rooms. But the number of transitions is
considerably extended.
Also version 7.0 does no longer work on Windows 98 or Me. You
will need Windows 2000 or later.
Extension packages
The major improvement of version 7.0 of Game Maker is the
mechanism of extension packages that has been introduced. Extension
packages can either add new collections of actions to Game
Maker or they add new functions using DLL or GML files. A new
item has been added to the resource list in which the user can
indicate which extension packages to use. These are then
automatically integrated in the system. Actions are shown in the
object form and functions are colorcoded in the script editor, show
in the list of functions. Extension packages can have help files
that are automatically included in the help menu. Also all required
files are automatically added to the game executables.
Three extension package are default provided.
- GM Printing. Adds a large number of functions for printing
shapes, text, sprites, screenshots, etc. and contains dialogs to
select the printer and set printer preferences.
- GM Transitions. Adds over 60 room transitions to the
program.
- GM Windows Dialogs. Adds functions to create most of the
standard Windows dialogs for messages, input boxes, file selection,
etc.
It is rather easy to create your own extension packages. There
is a special program available for this. See the page http://www.yoyogames.com/extensions for more
information on how to do this. The extension mechanism sort of
replaces and enhances the current DLL mechanism (which remains
available).
Publishing games
A publish button has been added to the toolbar. This will take
you to our site were you can easily make your finished game
available to the public.
Splash screens
The splash screen mechanism has been considerably enhanced.
Splash screens, like videos and images are now default shown in the
main game window. There are many new options, e.g. to change the
scaling. Also other image formats can be used. And rich text files
can now contain images.
Game information
The game information is now default shown in the game window and
can be closed with the close button.
Separate close button event
It can now be indicated whether or not the Close button must
behave like the escape key or not. If not, there is a new event in
the Other events that happens when the user clicks on the Close
button. So you can now assign different behavior to the Close
button and to the escape key.
Room transitions
The room transition mechanism is changed and extended, giving
you more control over the transitions and adding many new
transitions, like fade-ins, pushing the images, blending room
images, rotations, etc. It is now even possible to define your own
scripts to do the transitions (but this is rather advanced stuff).
An extension package with additional room transitions is
provided.
Data structures
A number of additional functions have been provided to deal with
data structures. For example, data structures can now be copied,
there are functions to write data structures to a string and read
them back. This string can then used to e.g. save the datastructure
to a file. Also there are more functions for grid data structures
to e.g. copy and add parts of grids.
Including files
The mechanism to include files in the executables has been
considerably extended. For each file it can now be indicated under
what filename it must be stored and where it must be stored. There
is a choice now whether or not to include the files in the editable
version of the game. Also there are functions to export the files
at a different moment than the start of the game.
Adding sprites and backgrounds with alpha channel
There are now functions sprite_add_alpha() and
sprite_replace_alpha() to add or replace a sprite from a file that
has an alpha channel (such as png files) to get nicer transparancy
effects. Similar functions exist for backgrounds.
New registration mechanism
Other changes
There are a number of other changes and additions. Here are some
of the important ones.
- The selected direction(s) in the Move Fixed action are now
colored red.
- When running a game the loading bar is shown considerably
earlier such that it is clear the game is running.
- Renamed all actions for more easy reference (compatible with
the book).
- When adding or replacing sprites and backgrounds or when using
splash images, many different file formats can now be used,
including jpg, tif, bmp, gif, png, etc.
- In the image editor there now is a command (Ctrl-A) to select
the whole image.
- A toolbar button was added on the main form to save the game as
stand-alone executable.
- In the constants list in game settings, buttons were added to
move them up or down in the list and to insert a constant above the
current one.
- Function message_position(-1,-1) now sets the message box to
the screen center.
- Print buttons were added in the script and code editor.
- Save and print buttons were added to the debug info forms.
- Events were added that happen when an instance lies outside a
view or intersects the view boundary.
- The form showing errors in the game is enhanced and allows for
copying them to the clipboard.
- Functions random_set_seed(seed), random_get_seed(), and
randomize() were added.
- In the image editor you can now jump to next/prev subimage of a
sprite.
- Global variables can now be declared using the keyword
globalvar. After this declaration it is no longer necessary to add
the word global and a dot in front of them.
- During game play F9 now takes a screenshot unless this is
switched off in the global game settings.
- Added functions draw_line_width(x1,y1,x2,y2,w) and
draw_line_width_color(x1,y1,x2,y2,w,col1,col2) to draw lines with a
width.
- d3d_start() and d3d_end() now return whether successful.
- You can now set the variable cursor_sprite to automatically
draw a sprite at the cursor location.
- Increased the maximum number of arguments to DLL functions to
16.
- In the options under Other you can now indicate version
information for the game that will be embedded in the
executable.
- Added functions sprite_save(ind,subimg,fname) and
background_save(ind,fname) to save the resources as bitmaps.
- Added a variable program_directory that stores the location of
the game executable.
- Added a constant c_orange.
- ...
Corrected bugs
The following bugs were corrected.
- Solved the problem that sometimes led to corrupted files.
Version 7 will read files that were previously marked as being
corrupt.
- A problem with limited real precision was solved. This should
also solve problems with functions dealing with the date and
time.
- A bug in timelines was corrected when duplicating to an earlier
moment.
- Bitwise assignments now work correctly and give no syntax
errors.
- show_message() actions and function now keep the box in the
screen center.
- Using snow effects and explosion effects together now works
correctly.
- A vulnerability to obtain information from a running game was
removed.
- Debug info forms no longer keep jumping to the top
position.
- Game Maker and the created games now work correctly under
Windows Vista. As a result though the file size of the games has
been considerably increased.
- When copying something in the code editor the font is now
correct and color coding is applied.
- Backgrounds no longer lose their settings when a new image is
loaded.
- An off-by-one error in drawing filled rectangles was
solved.
- The game window is now made visible before executing create
events.
- Solved a bug in the function median().
- Solved a crash when resizing a grid.
- Comparing and finding values in grids now works correctly for
string values.
- Editing a non-transparent sprite will no longer sometimes turn
it transparent in the preview.
- Solved a bug in collision checking with scaled instances.
- Solved a bug in collision checking with e.g. lines and
rectangles that were not on integer coordinates.
- Function file_bin_open now create the file if it does not yet
exist.
- Added checks in the object_set_parent function to avoid
cycles.
- Solved an error in the bounce action with diagonal
bounces.
- Corrected a bug in the rain effect when the room was higher
than 1000 pixels.
- Corrected a bug that instances without sprites would
contstantly get Outside Room events.
- Corrected a bug when dragging actions between Object and
Timeline form (it is no longer possible).
- Increase the minimal height of the background form to make it
impossible to hide the OK button.
- Corrected a bug with addressing variables in an instance after
it changed object during the same step.
- Corrected a bug that (de-)activating instances without a sprite
could work wrong.
- Corrected an error in drawing a path with 0 length.
- Solved a bug that the Exit Event action inside a Repeat block
did not exit the event.
- Corrected the position of the loading bar for the game.
- Corrected an error in removing instance outside a room in the
room editor.
- ...