Tech Blog

Update: Build Failure Fix Now in Steam Beta

Posted by James Foreman on 24 April 2014

A fix for the issues brought into Steam’s latest client API which prevented external SDKs and build tools to be called within GameMaker: Studio has now been pushed to Steam’s public client beta prior to being released live.

More »

Steam Client API Update Causing Build Failures

Posted by James Foreman on 23 April 2014


More »

LiquidFun Physics Particles

Posted by James Foreman on 18 April 2014

GameMaker: Studio uses the well known Box2D physics library to give you the ability to create fast and efficient physics simulations in your game, and it works very well indeed! However, one of the limitations of Box2D is that it only simulates "rigid" bodies... However those clever chaps at Google have expanded the Box2D library to include their "Liquid Fun" module, which adds physics particles, giving you the ability to create fluid-like particle simulations as well as particle based soft-bodies. This module (v0.9.0) has now been integrated into GameMaker: Studio, and in this article we'll give you a brief overview of how it works...

More »

Profiling Your Games Performance

Posted by James Foreman on 11 April 2014

In this article we are going to introduce you to a much sought after feature that has been added to the new Debug Module in the 1.3 version of GameMaker: Studio - Profiling! If you are unfamiliar with the term, profiling is simply a way of checking a games performance while running, whether its checking the overall engine performance for bottlenecks, or checking individual functions to see which one is faster to use.

More »

Creating An Extension For Mac, Windows And JavaScript Targets

Posted by James Foreman on 4 April 2014

Creating an extension for Mac, Windows or any of the JS targets (Tizen, HTML5, Windows 8) is a relatively simple business. To start with, you simply right-click on the Extensions folder from the resource tree and select "Create Extension". This will bring up the Extension Properties window, where you can fill in the General details of the extension you are making:

More »

Skeletal Animation Sprites Using Spine

Posted by James Foreman on 28 March 2014

A very powerful tool for creating naturalistic sprites is to create them using skeletal animation. The idea behind this is that you create a base "skeleton" and then move the "bones" to create poses. These poses can then be turned into animation key-frames, and in turn you interpolate the bone positions between each key-frame to create a smooth and very natural looking animation. This animation can then be "skinned" (ie: given a texture) and drawn to the screen like a sprite.

More »

Returning Values From An Extension Asynchronously

Posted by James Foreman on 7 March 2014

A call to an extension on any platform generally works like any other GML function call, ie: you call the function and it does something, sometimes returning a value or a string back to the code to be used or stored. However, there will be cases when the extension being used requires some processing to achieve the desired result, particularly on the mobile targets, like when you have an extension to "pull" advertising from a given source. The result of these function calls is not instantaneous and may take some time to come through. In these cases you would want the extension to trigger an event in an instance, where you can then process the results of the function call.

More »

Short Circuit Evaluation

Posted by James Foreman on 21 February 2014

Recently there was a change made to the way that GameMaker: Studio handles “if” evaluations. This change was to introduce short circuit evaluation. Those of you who come from a programming background may know what this means but those of you who are just starting with GameMaker: Studio, or new to programming, won't, and so before continuing, let's just look at how GameMaker: Studio used to handle things...

More »

Early Access Version 65 Out Now

Posted by James Foreman on 18 February 2014

A new Early Access update is out (v65) - no ad support in iOS builds (satisfies a new Apple submission requirement), Mac extensions using the new setup, and fixes for Facebook (mainly on Android). Be careful using this version if you want ads in your iOS games!

More »

New Functions In Early Access

Posted by James Foreman on 14 February 2014

Our senior developer Mike Dailly has been busy re-doing the draw pipeline to make all platforms consistent (see the tech blog article Changes to the GUI layer, and the new Application Surface), but he's also found the time to add in some extra user-requested functions to the Early Access build of GameMaker: Studio.

More »

Studio Releases Now Include Early Access – What Does It Mean For You?

Posted by James Foreman on 7 February 2014

As we move towards the release of GameMaker: Studio 1.3 we want to give you an overview of our new release strategy, plus make you aware of our Early Access releases and how they may be of use to you. We’re aiming to increase stability in the main product and separate out big changes into a different product stream, so with targeted releases per stream, plus a stable channel which has already had plenty of in-the-wild testing and feedback by our beta users, you can have confidence in your chosen version of GameMaker: Studio.

More »

Command Line Parameters For GameMaker:Studio

Posted by James Foreman on 31 January 2014

When creating games it is important that you play test the executable file to make sure that the final compile is correct and has no unforeseen errors or differences. This means that since you have no access to the debug console, nor to the compiler window, it can be difficult to pin down and debug any problems that you may find.

More »

Accessors For Data Structures and Arrays

Posted by James Foreman on 24 January 2014

The next update to GameMaker: Studio, Early Access added an interesting extra functionality for some data structures and normal arrays called "Accessors". These accessors are simple logical expressions that permit you to add or change values within the structure, and they are written in a similar way as you would for working with arrays, only we use a special identifier symbol before the first argument to tell GameMaker: Studio that you are working on a (previously created) data structure or with directly with an underlying array. 

More »

Changes to the GUI layer, and the new Application Surface

Posted by Mike Dailly on 17 January 2014

This is a change we've been thinking about making for some time, but it was such a large piece of work that it's always been put off. However, coming back from the festive break seemed like a perfect opportunity to start afresh, and to just jump right in and to try and address the situation. So what's wrong with the GUI layer?

More »

Scoping in GML

Posted by James Foreman on 10 January 2014

Scoping is all about the visibility of variables, as GML or DnD code is executed the variable names that are available to be read or written to change - what is available now is said to be in scope. So when a create event is executed any variables that are referenced are from the scope of the instance that is being created at that time.

More »