Hiring guide for Game Maker Language Engineers

Game Maker Language Developer Hiring Guide

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.

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

First 20 minutes

General Game Maker Language app knowledge and experience

The first 20 minutes of the interview should seek to understand the candidate's general background in Game Maker Language application development, including their experience with various programming languages, databases, and their approach to designing scalable and maintainable systems.

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.
What are the basic data types in GML?
The basic data types in GML are real numbers, strings, arrays, and data structures.
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.
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.
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.
The hiring guide has been successfully sent to your email address.
Oops! Something went wrong while submitting the form.

What you’re looking for early on

Does the candidate have a strong understanding of Game Maker Language (GML)?
Has the candidate demonstrated problem-solving skills during the interview?
Is the candidate able to communicate effectively about technical concepts?
Does the candidate have experience with game development projects?

Next 20 minutes

Specific Game Maker Language development questions

The next 20 minutes of the interview should focus on the candidate's expertise with specific backend frameworks, their understanding of RESTful APIs, and their experience in handling data storage and retrieval efficiently.

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.
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.
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.
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.
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.
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, a skilled Game Maker Language engineer should demonstrate strong problem-solving abilities, proficiency in Game Maker Language programming language, and knowledge of software development methodologies. Red flags include lack of hands-on experience, inability to articulate complex concepts, or unfamiliarity with standard coding practices.

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.

Wrap-up questions

Final candidate for Game Maker Language Developer role questions

The final few questions should evaluate the candidate's teamwork, communication, and problem-solving skills. Additionally, assess their knowledge of microservices architecture, serverless computing, and how they handle Game Maker Language application deployments. Inquire about their experience in handling system failures and their approach to debugging and troubleshooting.

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.
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 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.

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.