Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more

Tech

What's New In GameMaker: Studio 1.4?

Posted by Mark Alexander on 28 November 2014

This week saw the release of the major 1.4 update to GameMaker: Studio. This update adds a great number of new features, and although everything is fully listed in the Release Notes, these do not quite give the full picture and may appear ambiguous to some. So, in this article, we are going to give you an overview of what's new and what's been changed, and link to some of the previous tech blogs that we've done covering these features in more details.

New Installer

The first thing you'll notice with the 1.4 update is that the installer has changed. The growing number of modules available for GameMaker: Studio was starting to bloat the file size and so the new installer only downloads the core GameMaker: Studio files and then will download "on demand" the modules that you are licensed for. This change may occasion issues for some people, with modules not being correctly downloaded or compiler issues. If you are one of the unlucky few to find something not working, please try the following:

  • If GameMaker: Studio runs but you are having issues finding modules or files, then open the Help menu and click Update Licence. Enter your licence again, then restart GameMaker and the missing files should be downloaded.

  • If you are having problems using the updater - like it is sticking on download or not installing correctly - then you should download the stand alone installer from the following link: GMStudio-Installer-1.4.1474.exe

  • If all else fails, you can un-install GameMaker: Studio and delete the files for it in the %appdata% and %localappdata% folders (being sure to back up any sensitive files like the Android Keystore) then reboot and reinstall from the link given above.

Should you have any other issues, please contact the helpdesk: http://help.yoyogames.com

New Modules And YYC

A major change to the modules has been introduced with the addition of full console support for the PS4, PS3, PSVita and Xbox One, as well as the new YYC target for Windows Phone and Windows 8. The YYC is also now being bundled with all available modules for Pro users and upwards, so if you have, for example, the Android module then you will now also have Android and Android (YYC) modules (you may need to update your licence from the Help menu to get the module). Note that for the console exports, you must be a registered developer with Sony or a Microsoft licensed Xbox developer, and then contact YoYo Games.

The GameMaker: Player And The GameMaker: Marketplace

The 1.4 update brings the new GameMaker: Player and GameMaker: Marketplace to all users. The Maketplace has been around for a while and we wrote first about it back in July. However, it's grown a lot since then and has become an essential resource for many developers, both as an income stream and as a place to get new tools or assets for games. Signing up is easy, as is making a publisher account to sell assets should you wish, and there are extensive articles on how to set everything up and use your bought items on the knowledge base: GameMaker: Marketplace.

The GameMaker: Player has only recently been released and is still in early beta, but we hope that it will become a showcase for all the finest GameMaker games. The Player is a gaming service where you can buy, sell and play games they you or other GameMaker: Studio users have uploaded. It is a stand-alone application that comes bundled with GameMaker: Studio and will be installed along with the 1.4 update, or you can also download it directly from the YoYo Games pages. This means that you don't have to be a developer to enjoy the games and we encourage you to get the word out to your gamer friends so that everyone can share the titles available. Anyone can currently upload games to the player, although there are a series of rules and guidlines for content as well as a style guide which should be followed before you do. You can find all the information about how to use the Player as well as buy and sell your uploaded games from the knowledge base: GameMaker: Player.

Advanced Audio Functions

There have been some very important changes made to the GameMaker: Studio audio system. The first is that the dedicated music functions (like audio_play_music())  have been obsoleted and all sound files are now treated exactly the same way. These functions can simply be replaced by their sound equivalents in your projects, and will now error on use.

The second change is to add Audio Groups to the IDE as well as some dedicated GML functions to deal with them. Like with sprites and Texture Pages, your audio resources can now be grouped in the IDE and loaded into memory only when needed (and unloaded later again, when not). You can also set a gain value for a whole group making pause screen or end of game audio fades much easier to program than previously.

These audio groups are also configuration specific, meaning that you can create different groups for different configurations and target platforms. It is worth noting that the sound resources themselves are not configuration specific, but rather linked only to one single audio group, regardless of the configuration chosen.

The next major addition is the ability to use audio buffers to store audio obtained from an external file or from a recording source and then stream it in your game. We have covered how to record audio in the tech blog Recording and Streaming Audio, and you can use the new function audio_create_buffer_sound() to create a sound ID value to play the buffered audio in your games.

Enhanced IDE Features

The list of new features in the IDE is a long one, and most of them are covered in the release notes already, but there are one or two that stand out as being worth a more detailed mention.

First up is the ability to change most of the key bindings that GameMaker: Studio uses for shortcuts or Alt keys for performing actions etc... This is quite a major addition and we wrote a tech blog for it back in September which you can find here: Key Bindings.

Another major change has been to the implementation of Source Control Management (SCM) in the IDE. The old system has been completely over-hauled and support for Git and Mercurial has been added as well as the possibility to use other solutions and create your own custom SCM configurations. You can find out all about this from the knowledge base SCM articles: Source Control Management.

Extensions have also been updated, with support for Windows 8 and Windows Phone now available, and the IDE permits you to add proxy files which permit you to supply multiple versions of an extension for different platforms. Support for variable arguments has also been added for extension function calls (there is a check-box in the extension function you can check).

You should also be aware that Analytics for Android and iOS have also been removed from the IDE and are instead available as extensions, much like the advertising extensions were when 1.3 was released. You can get these extensions from the Demo feed on startup of GameMaker: Studio.

Finally, it is also worth noting that the room editor now has a check-box to mask all the tile layers except the one being worked one. This should make working with complex tile maps a lot easier for everybody.

Important Code Changes

Amongst all the more minor things in the 1.4 update, there are two in particular that are worth an extra mention as they may be game breaking to some users.

Previous versions of GameMaker: Studio had a bug whereby sometimes referencing a non-existing instance using the "point" method <instance>.<var> was silently failing when the instance didn't actually exist. This behaviour was wrong but unfortunately many users came to rely upon it in their games, which means that projects may give errors of the type "Unable to find any instance for object index" when run after updating. In most cases, you can simply wrap the offending line of code in an instance_exists() check to resolve the issue.

The second change is the introduction of the <undefined> return value. This will be returned when a data structure can't find a specific cell or value instead of the previous value of 0. So, if you have, for example, a ds_map_find_value() call, it will return <undefined> rather than 0 if the given key doesn't exist. To check for this there is also a new function: is_undefined();

Below is a basic example of how checks should now be done:

var val = ds_map_find_value(game_map, "score");
if (is_undefined(val))
    {
    ds_map_add(game_map, "score", 0);
    val = 0;
    } 

And There's More...

As if the above mentioned features weren't enough, this update adds a number of extra features, and we'll gloss over the main ones as they are all pretty much self explanatory:

  • iOS 8 support and support for iPhone6 and 6+
  • Liquid fun physics particles (we covered this in a tech blog here)
  • You can now use sprite_add() to load *.gif and *.jpg/jpeg format files
  • Facebook has been updated to use the latest SDK and comply with the new rules for linking games
  • The font editor npow has a "High Quality" font rendering option to give more crisp fonts (may cause a slight drop in performance)
  • New functions for vertex buffers to manipulate them and get information from them.

As you can see there has been a lot added on every level and this is a pretty major update to GameMaker: Studio. We hope that the transition from 1.3 to 1.4 is a smooth one, but if you have any issues or problems, you can get help from the GameMaker: Community or you can contact the YoYo Games Helpdesk.

Back to Top