Home Artists Posts Import Register

Content

So finally I am able to discuss a few specific changes coming to GameMaker that I've been privy to via the closed beta for a little while now. I don't say that to show off, rather because a few of the upcoming changes have been stressing me out with regards to tutorial videos and the nature of making an ongoing series, knowing that certain functionality is going to change.

Luckily, having a bit of pre-emptive knowledge has helped me to avoid using about-to-be-obsoleted techniques in my work and prepare for the future. Fortunately YoYo have been very good about trying to make sure old workflows and tutorial content are still valid and protected for at least sometime after these things officially release.

I'm planning to take a detour from the ARPG this week to make a video outlining some of the main changes coming to the IDE, there's too much to cover all in one video (Animation Curves, Sequences, and many of the very cool GML changes will have to come later!) but you can read up on some of these changes and check out the Beta yourself here.

It is still a beta and it is worth re-emphasizing what they say in the blog post, I would recommend against using this beta on in-production projects and use it to try and out and learn new functionality with new projects. I'll go over two big ticket things here that are worth being aware of if you learn nothing else about the upcoming changes:

The only forced changes to the workflow involve the resource tree (now called the "Asset browser") and scripts/functions.

Asset Browser

This is a much more free-form project resource browser. There is a reason they've renamed it! While it contains all the folders you will be familiar with they can now be renamed, moved, deleted and can contain any combination of resource types. This means you can organize your projects however you see fit. This does however mean that "right click on 'sprites' and hit create sprite'" (a line many of you are probably familiar with from my videos) no longer works quite the same. Since any resource can be anywhere, right click doesn't know immediately what to make via context. So you have to right click, go to "create" and *then* sprite (or whatever resource you wanted). If you use keyboard shortcuts or the workspace right-click to make assets, they'll go into the usual folders if you haven't renamed or moved them. So if you want to keep things the way it always was, it's pretty straightforward to do so.

Not a huge deal, but a bit different. There are many other differences that I'll go over in the video.

Scripts & Functions

Hoo boy, this one had me in existential dread for months. Currently the way it works is that scripts *are* functions. You may have noticed in recent videos I've been referring to scripts as functions and this is why. When we make a script, we make a new global function in our game that we can call.

In 2.3, this changes. Now functions can be declared *anywhere* using "function()" and then writing the contents in a {} block. This means that scripts are now simply a collection of functions. This would have been a huge problem for all of my tutorial content and that of most creators out there, as during closed beta nothing visually indicated this change, so anyone watching a video would try the original approach of simply writing and calling a script as if it were a function. The biggest problem is that while still sort of possible, it's now a very bad idea because scripts are now always called once at the start of runtime for internal reasons. 

Luckily they have since implemented a change that helps prevent this tutorial-pocalypse which I've demonstrated in the above gif. New scripts will automatically add boilerplate "function{}" text when they are created, making a blank function that dynamically matches the name of the script. Allowing the workflow to remain mostly the same. How long the old method for using arguments (using argument0, argument1, etc) will work with functions in future is still a bit uncertain, as you are now expected to name arguments when declaring the function. But it is likely that the old style will remain useable (if deprecated) for some time. Which will be a saving grace.

Overall it is a very exciting and also rather existentially terrifying time to be a tutorial content creator for GameMaker Studio 2. When this stuff becomes public I will need to start re doing a lot of my older beginner content (which frankly, is already overdue.). More thoughts coming in this weeks video!

Comments

Anonymous

I, for one, am excited to be able to write functions anywhere in GML! edit: and a built-in easing editor, and the sequences, and the lightweight objects! this is going to be awesome

Karlstens

Heya Shaun, you wouldn't happen to have friends in high places that can get me onto the 2.3 beta, would you? :)