GameMaker Studio 2.3 Beta Release & Features Overview
Originally teased in April 2019, the 2.3 update for GameMaker Studio has officially entered beta. Beta access is being granted on a first come, first served basis, so apply quickly if you want to get your hands on the beta release.
GameMaker Studio 2.3 has a ton of new features, which YoYo Games has separated into two categories: GML features and IDE features.
GameMaker Language, also known as GML, is the scripting language that powers games created in the engine. While it often gets compared to JavaScript, it has been lagging behind in terms of features for a long time. This update, however, finally brings some much needed concepts into the hands of GameMaker developers.
To make it a more feature-rich language, YoYo Games has added functions, structs, and exceptions. Functions act similarily to GameMaker's scripts, but can be declared anywhere in the codebase, whether it's inline on an object's event, within a script, or inside of another function. Structs, on the other hand, act as variables that can contain multiple values, which developers have historically emulated through arrays. Structs can hold simple data types (numbers, strings, booleans), other structs, and functions, making them extremely powerful.
Arrays have seen a face-lift, with all arrays now being one dimensional. Multi-dimensional arrays, of any length, can now be created by chaining arrays together, effectively nesting arrays within each other. The new exceptions feature not only provide a convenient way to throw exceptions within a codebase, but also allow users to handle default GameMaker errors without crashing.
The resource tree has been changed for the first time in almost two decades, now becoming the Asset Browser, making it more familiar to developers who are used to working in other game engines such as Unity. Along with new organizational sorting options, users can organize their assets into folders however they like, mixing asset types however they please. Previously, GameMaker had unmodifiable top-level folders for each type of resource, which was a minor hindrance for some workflows.
Assets and folders can now be marked with colors and user-defined tags. Tags are not only used for organization and searching for assets, but can be used within the game's code. An object can have multiple tags, meaning an enemy could be tagged with "Enemy" and YoYo Games' example of "Die On Touch" to quickly add behaviors defined within the code by simply attaching tags.
Historically, the order of rooms was determined by the order they appeared in the rooms folder. The new Room Manager allows for the order of rooms to be decoupled from the file structure.
Two new resource types have been added, sequences and animation curves. Sequences define a set of dynamic animations over time to any number of assets, making them a way to animate cutscenes and perform complex chain of events, such as boss fights. For more information, check out YoYo Games' in-depth explanation of sequences or YoYo Games' sequences tutorial series.
YoYo Games explains "An animation curve is an asset that contains one or more curves that represent how a value changes over time, and can use linear interpolation or smooth interpolation to go between different points in the curve." Each curve is composed of channels, each with its own curve settings, which can work hand-in-hand with sequences.
With these new tools, GameMaker developers will be able to save time and create more complex games. No official release date has yet been announced. More information about the release can be found within the official release announcement.