Learn to Code in Game Maker Language
4.5 (65 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
528 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Learn to Code in Game Maker Language to your Wishlist.

Add to Wishlist

Learn to Code in Game Maker Language

Learn the basics of game development in GML.
4.5 (65 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
528 students enrolled
Created by Nicholas Cohran
Last updated 7/2015
Current price: $10 Original price: $20 Discount: 50% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 3.5 hours on-demand video
  • 5 Articles
  • 3 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Learn to understand and write GML code
  • Learn how to create a maze game
  • Apply knowledge to other programming languages
View Curriculum
  • Students will need to be able to perform basic tasks on a computer (such as installing software or unzipping folders)
  • Students will need to download and install GameMaker: Studio

Learn the the basic concepts of programming while developing games in the fun and friendly language Game Maker Language (GML).

Learn and Master Core Programming Concepts With GML.

  • Types and Operators
  • Loops and Conditionals
  • Functions and Return Values
  • Objects and Instances

A Powerful Tool to Create Amazing Games

We'll learn about the essentials of programming. By using GameMaker: Studio, we can take what you're learning and immediately apply it to actual games. You will also get a glimpse of the structure of video games.

GameMaker: Studio is a powerful and growing tool that is breaking its way into professional development. Developers often use GameMaker: Studio to quickly prototype and create games that don't require the power of other languages, like C++, Java, and C#. Hotline Miami, Spelunky, TowerFall Ascension, and Gunpoint are only a few examples of the great games that can be created with GameMaker: Studio.

Content Overview

While designing this course, I kept absolute beginners in mind. When you begin this course, you will be taken from the very basics and work your way up to the more complex concepts. There will be several quizzes along the way to test your knowledge of the concepts you are learning.

By the end of the course, you will understand core programming concepts, how to create games in GameMaker: Studio, and you will have a cool maze game that you can show off to your friends and family.

Who is the target audience?
  • Anyone who wants to easily create games
  • Beginner programmers who want a friendly environment to learn in
Compare to Other GameMaker Studio Courses
Curriculum For This Course
64 Lectures
13 Lectures 21:37

You can download the assets that will be used in this course here.


Open GameMaker: Studio for the first time and create a project.

Preview 01:17

Familiarize yourself with GameMaker: Studio's user interface.

Preview 01:48

Learn how to change GameMaker: Studio's theme.

Changing Themes

Learn how to import custom themes.

Custom Themes

Learn how to attach external editors to GameMaker: Studio, such as Gimp.

External Editors

Learn how to import sprites and use sprite sheets.

Importing Sprites

Learn about sprite origin points and how it can affect the positioning and rotation of an instance.

Origin Point

A brief overview of the different features in the room editor.

Room Editor

Learn how to use backgrounds and tile sheets.

Backgrounds and Tiles

Learn how to create objects.


Learn how to create an application that you can share with others.

Creating an Application

Learn how to import and export your projects.

Importing and Exporting Projects

Quiz yourself on the things you have learned in section 1.

Section 1 Quiz
5 questions
34 Lectures 02:06:21

Learn how to display text with the show_message(), show_debug_message(), and draw_text() functions.

Preview 05:40

Comments are an important part of coding. They allow notes to be created within your code to remind yourself of how the code works. Learn how to create single-line and multi-line comments.

Preview 03:05

Variables are the easiest concept in programming, and the most important as well. Learn what a variable is, how to create one, the different types of variables, and how to access them.


Learn about the importance of using a naming convention when creating a new variable.

Naming Variables
2 pages

Arithmetic, such as addition, subtraction, multiplication, and division, can be performed on variables. This is a common thing, and something you will do often. Learn about performing these operations on variables, as well as the shorthand for each operation.


When performing arithmetic, you must follow an order of operations. This is the same as in algebra. Learn about the order using PEMDAS.


Some variables are only accessible in certain parts of your code; this is scope. Learn about instance variables, local variables, and global variables.


There's another way to create global variables, but its usage is highly debated. It's considered bad practice to use this method, but it is a part of GML, nonetheless. Learn how to create a global variable using the globalvar keyword.

Global Variables
1 page

Macros are similar to variables, except their value does not change. Learn how to create macros and use them in your code.


In many types of games and applications, string manipulation is very common. The simplest form of string manipulation is concatenation. Learn how to take two strings and conjoin them.

String Concatenation

A quiz about string concatenation.

String Concatenation
3 questions

Conditionals allow you to make decisions. For example, you may only want to show a message if the player's health is above a certain amount; you would use an If Statement for this. Learn about flow control with If-Else Statements.

If-Else Statements

There are many other comparison operators. Learn about each one.

Comparison Operators
1 page

Conditional operators allow you to evaluate many expressions in one conditional. Learn about the conditional operators.

Conditional Operators

Boolean expressions are not limited to conditionals. You can evaluate expressions as true or false anywhere in your code. Learn how to evaluate an expression and store the return value in a variable.

Boolean Expressions

Switch Statements are useful when you need to evaluate an expression and then execute one of many different blocks of code based on the value. For example, you may want to display a message to a user in their native language; you could use a variable to store which language is being used, and then display the appropriate message using a Switch Statement.

Switch Statements

Dive a little deeper into what a function is, what return values are, and how to use them.

Functions and Return Values

When you need to execute code multiple times, you should look at loops. The For Loop is the most common, and also allows for very dynamic code when used in conjunction with arrays.

For Loops

Sometimes you need code to execute indefinitely. That's where While and Do-Until Loops come in. Learn to use these loops while avoiding the infamous Infinite Loop.

While and Do-Until Loops

Arrays allow you to store many values inside of one structure. These are useful for many things, such as inventories in RPG games. Learn what an array is, how to create one, and how to access its data.

One-Dimensional Arrays

Two-dimensional arrays expand upon one-dimensional arrays, and allow much more content to be stored. Learn what a two-dimensional array is, how to create one, and how to access its data.

Two-Dimensional Arrays

Learn about the most common events, Create, Step, and Draw, their subevents, and when they're executed.

Create, Step, and Draw Events

Sometimes you need code to be executed, but not immediately. In these cases, you can set an alarm, much like you would before you go to sleep, that will execute code when it goes off. Learn how to set an alarm, execute code when it goes off, and how to tell if an alarm has already been set.


Learn how to create your own event.

User Events

Learn how to detect key presses through code.

Keyboard and Ord

Learn about X and Y positions.

X and Y Positions

Scripts allow you to create your own function. Learn how to create a script, add arguments to it, and supply a return value.


Sometimes you need to allow optional arguments. In this video, learn how to allow those optional arguments, and how to add Intellisense to your script so that you can see which argument you are on inside of the editor.

Optional Arguments and Intellisense

When you allow optional arguments, it's often a good idea to supply a default value to be used when no other value is supplied. Learn how to do that in this video.

Default Arguments

Accessors allow you to directly access and modify arrays. Learn about the array accessor, how scripts accept arrays as arguments, and how to modify an array from a script.

Array Accessors

When thinking about the relationship between objects and instances, you can think of a blueprint and a finished product. In this video, dive deeper into what objects and instances are.

Objects and Instances

Instances have built-in variables. Learn more about instances, instance creation, instance destruction, and instance IDs.


Maps are associative arrays, which means that each entry has a key and a value. Learn how to create a map and access the different values it contains.


Learn how to use asynchronous messages, and execute code once the user has read the message.

Asynchronous Messages

Wrapping up Section 2.

Section 2 End

A quiz covering many topic from section 2.

Section 2 Quiz
7 questions
Gummy's Maze
17 Lectures 01:06:26

Gummy's Maze sprites.


Learn about what we will be doing in this section.


Import all of the sprites you will need.

Importing Sprites

Learn how to create a main menu for your game.

Main Menu

Learn how to make Gummy move.

Player Movement

Learn to create a view and make it follow the player.


Learn how to animate Gummy when he walks.

Player Animation

Learn how to create enemies that can move in different directions.


Learn how to add lives and allow Gummy to die.


Learn how to add a game over screen.

Game Over Screen

Learn how to create a simple background from the wall sprite.


Learn how to create a goal that moves the player to the next room upon contact.

Adding The Goal

Learn how to create collectibles with a parent object.


Learn how to create a collectible blockade that will only disappear once the player has collected every collectible.

Collectible Blockade

Learn how to add an end game menu and add a finishing touch to the game.

End Game

Commented project.

Finished Project

A quiz covering topics from section 3.

Section 3 Quiz
4 questions

End of Course.

End of Course
About the Instructor
Nicholas Cohran
4.5 Average rating
65 Reviews
528 Students
1 Course
Indie Game Developer

My name is Nicholas Cohran. I am an indie game developer. I've always had a passion for video games, and I became interested in programming at eight years old. Since then, I have learnt many programming languages, from GML to C. In 2011, I started a YouTube channel where I would upload tutorials on creating specific things in GameMaker. This became more popular than I had expected, gaining over 500 subscribers and several Twitter followers.