Tech Blog

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 »


The hazards of precise collision detection

Posted by Mike Dailly on 27 December 2013

So, I was rummaging through some backups, and I found this old article. It was originally on my own site, but was removed when we started the Techblog with the intention of it going up there - this never happened. So, I figured I may as well stick it up now. While it talks about HTML5, it's still totally valid for every version of GameMaker, so is certainly something you should all remember before being tempted to click that little "precise collision" switch. Enjoy.

More »


v1.3 Push Notifications

Posted by James Foreman on 18 December 2013

A feature that has been requested a lot for GameMaker: Studio is the ability to use Local and Remote push notifications to notify users of special events, promotions, etc... when your game is not actively being played. This feature has been added in the 1.3 update to GameMaker: Studio and is initially available for the iOS, Android and Tizen target platforms.

More »


Early Access builds

Posted by Mike Dailly on 18 December 2013

With the advent of Studio V1.3, it became clear to us that there were a huge number of new features going in, most of which were largely untried, so they will have issues of some kind. Now, we can either sit on these or continue to test them in-house, or we can release them into the wild, and then get realistic feedback from those trying to use them. We have in the past opted for the second option, but this usually comes at a price; that being once we start doing that, we can no longer fix issues in the last stable build, and this makes Studio feel more unstable that it should.

More »