Question: What is a macro in GameMaker?


Macros in GameMaker are essentially constants. They are a way to define values that will not change throughout the execution of the game. Defining a macro happens at compile time, and the value associated with a macro name gets directly inserted into the code wherever it is used.

In GameMaker Studio 2, you create macros using the #macro directive, like so:

#macro SCREEN_WIDTH 1024 #macro SCREEN_HEIGHT 768

After these macros have been defined, you can use SCREEN_WIDTH and SCREEN_HEIGHT anywhere in your code, and GameMaker will treat them as if you had literally typed 1024 and 768.

For instance:

// Set the size of the application surface surface_resize(application_surface, SCREEN_WIDTH, SCREEN_HEIGHT);

During compilation, GameMaker will replace SCREEN_WIDTH with 1024 and SCREEN_HEIGHT with 768, so the compiled code will be equivalent to:

surface_resize(application_surface, 1024, 768);

This is especially useful for values that are used frequently throughout your project and may need to be updated or changed. Instead of searching through your entire codebase to replace a value, you only need to update the macro definition.

Additionally, using macros can make your code more readable and maintainable, since names like SCREEN_WIDTH can provide more context than a raw number, making it clear what the purpose of the value is.

Was this content helpful?

Start building today

Dragonfly is fully compatible with the Redis ecosystem and requires no code changes to implement.