The 1.4 update to GameMaker: Studio is perhaps the most important to date. Apart from greatly increasing the UI stability and adding new features, it also marks the official launch of the GameMaker: Marketplace! Most of the new features and changes being introduced have been discussed in previous tech blogs and were available in the Early Access version of GameMaker: Studio. However, since most users don't use the EA version, in this article we'll give you a brief run-down of what to expect from 1.4 and link to any relevant articles so you can find out more.
The new GameMaker: Marketplace permits you to buy and sell (or give away for free!) assets and extensions. It has been designed to be as easy to use as possible and you will find that in 1.4 you have a new "Marketplace" menu option in the IDE. From there you can log in to the Marketplace and create, download, and manage all your asset packages. These packages can contain anything that you wish, including scripts, extensions, audio, sprites - basically anything that can be used as a resource in your games can be bundled as a package and uploaded to the Marketplace.
It is worth noting that Standard GMS users can access the Marketplace to buy or download asset packages, but to upload them you are required to have the Pro version of GMS. You can find all the information about the GameMaker: Marketplace (including guides on how to prepare your assets and upload them) from the YoYo Games Helpdesk.
The extension system has also been upgraded in 1.4 - in part for the Marketplace, but also to make the incorporation of external SDKs and Frameworks for iOS and Android easier and more intuitive. This means that writing your own native code extensions and using third party SDKs on those platforms (you will need to know Java for Android and Objective C for iOS) is a lot less complex, and you can also upload them to the Marketplace for sharing now.
Most of these changes are internal or related to the UI, which has new options for adding files to extensions as well as new tabs in the extension properties dialogue. You can find further details on these changes from the GMS Manual and from the YoYo Games Helpdesk.
There have been two important changes made to the GMS 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 eqivalents in your projects.
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.
Note that Audio Groups will not be in the initial 1.4 beta release, but will be added very shortly after in an update.
NEW PHYSICS FUNCTIONS
There has been a major update to the built-in physics library, which now includes a soft-body particle simulation based on the Liquid Fun library for Box2D. permit the creation of simulated soft-bodies using rigid body physics. Basically, this means that you can create a shape from particles that maintain cohesion and so simulate a full body, which, due to the interaction of the particles, gives the impression of a soft body. You can also use the physics particles to simulate liquids and other particle-based physics systems.
The GameMaker: Studio user interface has also had a number of tweaks and improvements. The most obvious of these is the new resource tree search and filter options that are at the bottom left corner of the main IDE. With these, you can quickly find a single resource in a large project, or filter out the resources that don't contain the input string. Filtering will present you with a reduced resource tree showing only those elements that contain the search string.
The image editor has also had a major update, with a number of extra functions being added to it, like onion-skinning, RMB erase and custom colour palletes. For a full list of the image editor features please see the YoYo Games Tech Blog.
Another change to the UI can be found in the code editor for scripts, which now permits you to create tabbed Script Groups. Basically, you create a new "parent" script (which is what will be shown in the resource tree), and in the code editor for that script you can add further "child" scripts to it, by simply clicking the new tab at the top of the window. You can then name your new tab and use the same name to call the script it contains in code, meaning that you can have self-contained script groups all in one window. You can find out more about this feature in the GameMaker Manual.
The Asynchronous Event category has a new event added to it now too, which is the Save/Load Event. This will only be triggered by certain buffer or audio group functions at the moment, but will be used by other functions later.
There have also been a number of minor tweaks and improvements made to the room editor, the way the IDE deals with pop out windows, and various other things (like how the serach results and errors are displayed) making everything more stable and easier to use. You can find further information about these things from the release notes.
it is worth noting that the Constants window has been renamed Macros. This does not change the functionality in any way, and is simply a name change to reflect better the true nature of how they work.
The GameMaker Language has also seen a few changes to it, with the addition of new data types, namely pointers and enmums. The texture functions and a few of the other functions that create dynamic resources will now return a pointer for the resource, while enums can now be created for use in your games. For more details of these features, please see the GameMaker: Studio Manual.
There have also been some new functions added to get information from Spine sprites, extra functions for local push notifications, some new buffer functions that permit the saving of groups of files (mainly for Console support), and SWF format sprites now have some dedicated functions that can get and set their AA level.
GameMaker Studio will now ship with the current 1.8 version of SVN tools for use with repositories created by external SVN clients. For compatibility it will still ship with the old 1.7 version also, and GameMaker will detect which version to use on a per-project basis. You can choose in the Preferences which format/tools to use when creating or adding a project to a repository. Note that if your workspace is in a 1.6 or older format you will be asked to upgrade it.
THINGS TO COME
Although everything listed above is a fair amount and greatly improves the GMS experience, it's still not the end of the additions planned for the 1.4 version of Gamemaker: Studio! Below you can see a list of some of the main features that will be added over the coming months:
- Native extensions on other target platforms
- SVN will be expanded so that you can use Mercurial, GIT, etc... as alternative tools
- Update to the Windows 8 and Windows Phone targets to use the 8.1 SDKs
- Overhaul of the room editor to greatly increase functionality and ease of use