Game Maker Language Developer Hiring Guide

Hiring Guide for Game Maker Language Engineers

Ask the right questions to secure the right Game Maker Language talent among an increasingly shrinking pool of talent.

Game Maker Language (GML) is a proprietary computer programming language developed by YoYo Games for their GameMaker Studio software. Introduced in 1999, GML is primarily used for the creation of video games, allowing developers to control aspects such as object interaction and game environment. The language is designed to be user-friendly, making it accessible to beginners while still offering advanced functionalities for experienced programmers. GML is event-driven, meaning it executes in response to specific occurrences within a game. The language's development and evolution have been instrumental in democratizing game development, contributing to the rise of independent game developers globally.

First 20 minutes

General Game Maker Language knowledge and experience

The next 20 minutes of the interview should attempt to focus more specifically on the development questions used, and the level of depth and skill the engineer possesses.

What are the different types of loops in GML and how do they work?

GML supports three types of loops: 'for', 'while', and 'do...until'. A 'for' loop repeats a block of code a specified number of times. A 'while' loop repeats a block of code as long as a certain condition is true. A 'do...until' loop repeats a block of code until a certain condition is true.

How would you create an array in GML?

You can create an array in GML by using the array keyword followed by the name of the array and the values it should contain. For example, 'var myArray = [1, 2, 3];' creates an array with three elements.

Describe the difference between a local and a global variable in GML.

A local variable is only accessible within the script or event where it is defined, while a global variable is accessible from any script or event in the game.

What are the basic data types in GML?

The basic data types in GML are real numbers, strings, arrays, and data structures.

How would you define Game Maker Language?

Game Maker Language, or GML, is a proprietary programming language developed by YoYo Games for their GameMaker software. It is primarily used for the development of video games and allows developers to create complex and large scale games in a relatively short amount of time.

The hiring guide has been successfully sent to your email address.
Oops! Something went wrong while submitting the form.

What youre looking for early-on

Does the candidate show enthusiasm and passion for game development?

Passion for game development can indicate that the candidate will be motivated and dedicated to their work.

Is the candidate familiar with the latest trends and technologies in game development?

Staying updated with the latest trends and technologies can help the developer to create more engaging and innovative games.

Does the candidate have experience with game development projects?

Previous experience with game development can indicate that the candidate has practical knowledge and can handle the demands of the role.

Is the candidate able to communicate effectively about technical concepts?

Good communication skills are important for a developer to explain complex ideas to non-technical team members and to collaborate effectively with others.

Has the candidate demonstrated problem-solving skills during the interview?

Problem-solving skills are essential for a developer as they will often encounter issues that require innovative solutions.

Does the candidate have a strong understanding of Game Maker Language (GML)?

This is important because GML is the primary language used in Game Maker Studio. A strong understanding of GML is crucial for developing games.

Next 20 minutes

Specific Game Maker Language development questions

The next 20 minutes of the interview should attempt to focus more specifically on the development questions used, and the level of depth and skill the engineer possesses.

What are the different types of data structures in GML and how are they used?

GML supports several types of data structures, including stacks, queues, lists, maps, and grids. These can be used to store and manipulate data in different ways, depending on the needs of the game.

How would you implement collision detection in GML?

Collision detection in GML can be implemented using the built-in 'collision_rectangle' or 'collision_circle' functions, which check for collisions between instances and a specified shape.

Describe the difference between 'instance_create' and 'instance_create_layer' in GML.

'instance_create' creates an instance on the highest layer, while 'instance_create_layer' allows you to specify the layer on which the instance should be created.

What is the purpose of the 'instance_create' function in GML?

The 'instance_create' function is used to create a new instance of an object at a specified position in the game room.

How would you handle errors in GML?

GML has a built-in error handling system that allows developers to catch and handle errors. This can be done using the 'try...catch' statement.

The hiring guide has been successfully sent to your email address.
Oops! Something went wrong while submitting the form.

The ideal back-end app developer

What you’re looking to see on the Game Maker Language engineer at this point.

At this point, the candidate should demonstrate proficiency in Game Maker Language, problem-solving skills, and understanding of game design principles. Red flags include lack of knowledge about GML syntax and functions, inability to troubleshoot code or design issues, and poor communication skills.

Digging deeper

Code questions

These will help you see the candidate's real-world development capabilities with Game Maker Language.

What does this simple GML code do?

var sum = 0;
for (var i = 0; i < 10; i++) {
  sum += i;
}
show_message(string(sum));

This code declares a variable sum and initializes it to 0. It then runs a for loop from 0 to 9, each time adding the current iteration number to sum. Finally, it shows a message box with the final value of sum, which is the sum of numbers from 0 to 9.

What will be the output of this GML code?

var x = 5;
var y = 10;
if (x > y) {
  show_message('X is greater');
} else if (x < y) {
  show_message('Y is greater');
} else {
  show_message('X and Y are equal');
}

The code first declares two variables x and y and assigns them the values 5 and 10 respectively. It then checks if x is greater than y, if x is less than y, or if they are equal. Since y is greater than x in this case, it will display a message box saying 'Y is greater'.

What does this GML code that manipulates an array do?

var arr = [1, 2, 3, 4, 5];
arr[2] = 10;
show_message(string(arr[2]));

This code declares an array arr with 5 elements. It then sets the third element of the array (index 2) to 10. Finally, it displays a message box with the value of the third element of the array, which is now 10.

What does this GML code that uses threading do?

var thread = thread_create(my_function);
thread_start(thread);

This code creates a new thread that runs the function my_function. It then starts the thread, causing my_function to run concurrently with the rest of the game's code.

What does this GML code that uses class objects do?

var player = new Player();
player.name = 'John';
show_message(player.name);

This code creates a new instance of the Player class and assigns it to the variable player. It then sets the name property of the player object to 'John'. Finally, it displays a message box with the value of the player's name, which is 'John'.

What does this advanced GML code do?

var obj = instance_create(0, 0, obj_Enemy);
with (obj) {
  direction = point_direction(x, y, obj_Player.x, obj_Player.y);
  speed = 5;
}

This code creates a new instance of the obj_Enemy object at the position (0,0) and assigns it to the variable obj. It then sets the direction of the obj to point towards the obj_Player object and sets its speed to 5. This means that the enemy object will start moving towards the player object at a speed of 5 pixels per step.

Wrap-up questions

Final candidate for Game Maker Language role questions

The final few interview questions for a Game Maker Language candidate should typically focus on a combination of technical skills, personal goals, growth potential, team dynamics, and company culture.

How would you implement AI behavior in a GML game?

AI behavior in a GML game can be implemented using a variety of techniques, such as state machines, pathfinding algorithms, and decision trees. The specific implementation would depend on the needs of the game.

What are shaders and how are they used in GML?

Shaders are programs that run on the GPU and are used to control how graphics are rendered. In GML, shaders can be used to create a wide range of visual effects.

How would you implement multiplayer functionality in a GML game?

Multiplayer functionality in a GML game can be implemented using the built-in networking functions, which allow for the creation of server and client instances and the sending and receiving of data between them.

Describe the difference between 'draw_self' and 'draw_sprite' in GML.

'draw_self' draws the current instance's sprite, while 'draw_sprite' draws a specified sprite. 'draw_sprite' also allows you to specify the sub-image and position where the sprite should be drawn.

How would you optimize a GML game for better performance?

Optimizing a GML game for better performance can involve a variety of techniques, such as reducing the number of instances, optimizing graphics and sound assets, and using data structures efficiently.

The hiring guide has been successfully sent to your email address.
Oops! Something went wrong while submitting the form.

Game Maker Language application related

Product Perfect's Game Maker Language development capabilities

Beyond hiring for your Game Maker Language engineering team, you may be in the market for additional help. Product Perfect provides seasoned expertise in Game Maker Language projects, and can engage in multiple capacities.