What's Coming To GameMaker In 2024

cover

Welcome to the 2024 edition of the GameMaker Update.

We have a lot planned, but before we get into that, let’s do a recap of last year.

In 2023, we did 6 monthly releases, two LTS updates and a lot of beta releases. We released twelve asset bundles, four template projects and a whole load of extensions.

We supported our community by showcasing 14 GameMaker developers at our booth at Gamescom, and sponsored several game jams throughout the year.

Additionally, we saw a 300% increase in GameMaker’s user base. The same year we also made the GameMaker exports free for non-commercial use, and switched to a one-time payment for the commercial licence (consoles excluded).

Now, let’s look at some exciting features we have planned for this year.

Code Editor

One of the first things we have coming this year is the new Code Editor, already in beta.

CE_Main.png

This is a full-screen editor that shows your GML Code or Visual, with all GML Code events appearing in the same window, just a scroll away.

This allows you to have everything you need on one screen, with the Inspector showing you the asset details, and the Code Editor showing you object events, shaders, notes, or other text files.

CE_NavBar.png

The top of this Editor displays a Navigation Bar, with three drop-down menus:

  1. Asset Selector: The first menu lets you change what asset is open.
  2. Document Selector: The second menu lets you focus on a different document, like an event within an object, or choose between the Fragment/Vertex shader.
  3. Declaration Selector: The third menu lets you dive deeper into a GML document and focus on a particular variable or function declaration.

This bar can be snapped to any side of the Editor.

The editor supports Language Server Protocol. Code completion, syntax highlighting, and error reporting is through the LSP which means the editor supports any language that can be described by an LSP.

This makes it very easy for the editor to work with different languages in addition to GML, like shaders, JSON, XML, and more.

It also means the opposite, allowing GML files to be edited in any IDE that can use an LSP. Our LSP for GML will be open-source so it can be customised for use anywhere.

noteeditor.png

This editor also supports markdown so you can write formatted notes and documentation, and preview it within the IDE.

The new code editor will also support Hotkey Chords so that gives you much more freedom in how you set up your shortcuts. The editor also adds improved support for right-to-left (RTL) languages and ligatures.

Vertical_Scrollbar.png

To count some quality-of-life features, you can now have a minimap with the vertical scrollbar, with hover preview of code.

stickeys.png

With Sticky Headers, you can see the Event you are in and the starting of the conditional block when you have scrolled past it.

JSDoc_AutoComments_CE2.pngEditingCode_RainbowBrackets.png

This also brings JSDoc and comment improvements, like support for hyperlinks, highlighting TODO and BUG comments, guides for indentation and whitespace, rainbow brackets, and much more!

Prefabs

A Prefab lets you make assets in one GameMaker project, and reuse them endlessly in other GameMaker projects.

prefabs1.jpg

This links those assets to its source project, so if you change something in the original project, it will update the assets wherever they are used.

An example of this is a Platformer player object. You can make this in one project and re-use it in multiple of your Platformer games. Updating the code in the original project will update it everywhere it’s used.

This makes it easy to create shareable code or assets for use in your own projects.

Prefabs will be delivered through our Package Manager, allowing us to bring new Prefabs and Prefab updates to you without you having to install a new version of the IDE.

Prefabs being packages allows them to be pulled from the source project at compile time, so using Prefabs doesn’t take space in the project where they’re being used. This means if you import a Prefab but don’t use it in the game, it will never be copied into the compiled game.

To make a prefab, you can export your project as a Prefab which will make it appear in the Prefab Manager. Assets from this project will appear in the Prefab Library and be usable in any projects.

When importing a Prefab into a project, you can choose to stick to the version that was imported, or stay in sync with changes to the source project.

prefabs2.jpg

We will start by rolling out official Prefabs via our Prefab Library, and in a later release, we will release the Prefab Manager which allows you to make your own Prefabs.

Plugins

We are working on plugin support, which will allow you to create your own tools that work within the GameMaker IDE. 

This plugin system is already utilised by official tools like the Sequence Editor and the new Code Editor. We will open this up soon, giving you the power to make GameMaker your own.

We are also working on our language plugins for localisation, to make it easier for anyone to submit fixes and improvements for IDE translations. This will be done through GitHub repositories where you can contribute changes for all supported languages.

GUI Tools

We have plans for UI that tie nicely into Prefabs.

The UI system will be based on Flex Panels. A Flex Panel can hold items, and position them according to its dimensions, making it responsive.

There will be UI layers in the Room Editor, which will be based on Flex Panels, for holding UI instances and positioning them responsively. You can make objects for things like buttons, sliders, or any UI elements, and put them into these layers.

ui1.jpg

These layers will be shared among Rooms so you can set them up once, and use them throughout your game. You can stick a layer either to the game’s display, or to a specific viewport.

Along with this, we will release official Prefabs containing UI elements like buttons, checkboxes, sliders, and much more – this will make use of the UI system described above.

GMRT

The last year has seen a lot of work go into the new runtime, GMRT. We had a closed beta period which opened us up to a lot of feedback from the community, making the runtime stronger.

We are moving towards an open beta of GMRT, starting with Windows, and then expanding into other platforms like web, mobile and finally, consoles.

More Things Coming

Of course, this was only a high level overview of a few of the things coming for GameMaker in the coming year. There will be much more, so stay tuned.

One of the upcoming features includes JavaScript as a first-class language in GameMaker. You will be able to write your scripts and events in JavaScript, within GameMaker, starting later this year.

We’re also investigating similar support for other languages like C#.

Community Support

Aside from all the GameMaker improvements, we’re looking forward to visiting several countries throughout the year, to talk to you about GameMaker.

We’ll also be hosting the GameMaker Awards this year to highlight the best games that you’ve created.

We hope you will join us on this journey as GameMaker becomes better and stronger than ever. This would not be possible without you, and all the GameMakers!

Happy GameMaking!

avatar
Lead Technical Writer at GameMaker, Gurpreet creates documentation and tutorials to make game making easier for you. He loves using the computer to bring new things to life, whether it's games, digital art, or Metal music.
Back to blogs