Make Your First Video Game
4.5 (15 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.
2,421 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Make Your First Video Game to your Wishlist.

Add to Wishlist

Make Your First Video Game

Go from Game Enthusiast to Game Developer within a Few Short Hours.
4.5 (15 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.
2,421 students enrolled
Created by Nick Baldwin
Last updated 9/2015
Current price: $10 Original price: $25 Discount: 60% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 4.5 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Create a Whack-a-Mole Video Game
  • Bonus: Create a Brick-Breaker Video Game
  • Know the Fundamentals of 2D Game Development
  • Write Some Basic Code in GML (Game Maker Language)
View Curriculum
  • This course uses GameMaker: Studio, so you'll need to go to the YoYo Games website and download and install the latest version of GMS. All other software will be covered in the course.
  • GameMaker: Studio is for Windows Only.

Want to make games for Xbox One, PS4, or Ipad?

Awesome! That's what gamedevU is all about. We'll take you from being a gamer with zero programming experience all the way to being a Pro Indie Developer, able to publish on whatever platform you want.

  • Playstation 4
  • Xbox One
  • WiiU
  • iPhone
  • Android
  • Windows Phone
  • PC
  • Mac
  • Linux
  • ...and more

This course teaches you to start game development using GameMaker: Studio. It's a really great cross-platform game development IDE which lets you make your game once, and then publish to multiple platforms.

This course is the first part in a modular series of courses from gamedevU that will let you go from total beginner to Pro Indie Developer after taking all the courses. This course is a solid first step, and it's the most important, because it will build your fundamental understanding of game development and get you started in the right direction.

This Level 1 course will have you feeling fluent with GameMaker: Studio.

You're going to make 2 games:

  • A Whack-A-Mole game featuring Owen Wilson (more fun to whack than a mole)
  • A Brick-Breaker game

You'll learn programming in a style that makes it easy to understand, even if you've never done any programming. Better yet, you'll never feel like you're "studying". The concepts are made easy and are built in to the course to where you'll pick up all the programming skills naturally.

The course includes 59 videos which will walk you through the entire process.

Who is the target audience?
  • This course is meant for Video Game Enthusiasts who have never done any programming or digital art before. If you've always wanted to learn to make games, this is your first start.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
59 Lectures
Course Overview
3 Lectures 11:00

Learn how to get the most out of this course. Memorization is not the goal. The goal is understanding the concepts behind everything so that you can apply each principle yourself.

Preview 05:54

There are four criteria that constitute Fair Use. Learn what they are and your permissions with the material we will be creating.

Preview 02:43

Download the reference files, and download and install GameMaker: Studio.

Preview 02:23
Let's Make Our First Game
22 Lectures 01:33:58

Learn how to import sprites into your project.

Importing Sprites

Learn how to import backgrounds into your project.

Importing Backgrounds

Create a room for your game.

Creating a Room

Create your first object and place it in the room.

Creating Objects and Placing them in our Room

Learn about origins and how they affect the alignment of sprites.

Origins and Sprites: What is an Origin?

Events and Actions control the functionality of your game. Make your first Events and Actions in this step.

Creating Events and Actions for Our Main Object

Learn the difference between an object and an instance.

Objects and Instances

In this segment you'll see how sprite masks affect collision detection.

Collisions and Masks

Create a click event and assign actions to it.

The Click Event

Learn how to add your first sound effect to an event.

Adding a Sound Effect to a Collision Event

Bulk importing of assets is a huge time saver. Try it out.

Bulk Importing Multiple Sound Effects

Your first dose of coding in GML (Game Maker Language). We'll write a script to assign a random sound to a variable, and call that sound from the click event we previously created.

Scripting: Play a Random Sound on Collision

Add a control object and get it to play music.

Creating a Controller Object to Manage the Gamestate

Let's add a title screen.

Let's Add a Title Screen

Who's keeping score? We are. Well, after this chapter, we are.

Earning Points: The Score Variable

A score is no good if you can't see it. So let's put it up on the screen.

Drawing the Score to a GUI

The title screen doesn't need a GUI, so we need to use our control object to detect when the game is on the homescreen, and have it not draw the score for that screen.

How to Hide the GUI on the Title Screen

Creating invisible colliders for boundarys is a really efficient way to manage "surfaces" in our game.

Making a Boundary Object

We'll make some more levels.

Adding More Levels

When you beat a level, the game needs to go to the next level. So let's do that.

Making the Player Progress from One Level to the Next

When you beat the last level, there's no "next level". So we get a huge error message. How do you fix that?

Beating the Last Level

One of the most important concepts in the entire course. Don't skip this video. Your game will not be successful if it's not really a game. But what does it mean to be a "game"? Is there an objective criteria?

Probably not. But for the purposes of gamedevU, we have an actual, objective standard. And this one simple thing is the difference between a unique, successful game vs. "just another one".

Core Concept: What is a Game? What Makes a Game?
Let's Make Brick Breaker
34 Lectures 02:34:58

Learn where you're headed next.

Intro to Our Second Game

Let's get our sprites and backgrounds added via bulk import.

Importing Sprites and Backgrounds

An awesome tool for getting free, usable retro game sound effects.

Generating Sound Effects On the Fly

Where to find royalty-free music.

Getting Free Licenced Music

We'll do a bulk import of all the sound effects we made earlier, and then we'll use the built-in image editor to create a couple sprites.

Importing Sounds and Making Sprites

Learn about image_speed and image_index.

Image_speed and Image_index

Let's randomize our image_index.

Randomizing the Image_Index

Making the paddle.

Making a Paddle Object

We need to make a boundary object just like we did in our previous game.

Our Boundary Object

Making the paddle move when you press the left and right keys.

Paddle Movement

Let's make sure the paddle doesn't leave the screen.

Paddle Boundaries

It's not brick breaker unless the ball can bounce off of things.

Bouncing Our Ball Off of Objects

And if the bricks don't break, there's not much of a game. So let's get those bricks to break when hit.

Breaking Bricks

Learn about the point_direction function and how we can use it to calculate the new angle for the ball to bounce at.

Calculating Angles Using the Point_direction Function

We need to create a simple gamestate for whether we are "playing" or "between lives".


The ball should launch off the paddle when we press the spacebar.

Launching the Ball

How directions are noted in GameMaker.

A Quick Note About Angles and Direction

Do you like cheats/glitches? Then you've probably already seen the one in our game. So let's fix it.


Let's make a control object like we've made before.

Adding a Control Object

We need to detect when the game starts and when the game ends, and change the "lives" and "score" variables according to those.

Game Start and Game End

Adding a titlescreen.

Adding a Title Screen

Removing the score and lives GUI from the titlescreen.

Optimizing Our Title Screen

We need to detect when all the bricks are gone, and then change levels when there are none left. So let's write some code in our control object to do it.

Take the Player from One Level to the Next

When you lose all your lives or beat the game, it needs to restart and go back to the titlescreen.

Making the Game Restart

Make your game cool, and actually a game.

Getting Thematic: Integrating an Implied Storyline

Let's use seashells instead of bricks.

Browsing for Seashell Images

A little image editing.

Resizing and Editing our Images

Making objects from our shell images.

Creating Child Objects from Our Seashell Images

Parents and inheritance - no longer just a family feud.

About Parents, Children, and Inheritance

If the ball bounces perfectly horizontally, it can get stuck. Let's make sure that doesn't happen by measuring the absolute value of the vspeed (vertical speed).

Getting Unstuck: Tracking the Balls Absolute Vspeed

Item drops from broken bricks makes a brickbreaker game much more fun. Let's try a quick example you can expand on later.

Making a Treasure Object

Now that we've made our treasure, let's make it fall.

Certain Bricks Drop Treasure When they Break

Earn an extra life at 2,000, 4,000, 8,000, 16,000 points.

Earning Extra Lives Based on the Score

Add some more treasure drops, remake the game with your own art, add your own sounds and music... And then send me a copy of your game for a special prize (a link to a picture of David Bowie).

Homework and Closing Thoughts
About the Instructor
Nick Baldwin
4.5 Average rating
15 Reviews
2,421 Students
1 Course
Game Development Instructor

My name is Nick Baldwin and I am a coder, speaker, teacher and trainer living in St Augustine, FL. I teach both the technical and business aspects of game development to aspiring indie game developers. I am the founder of gamedevU, a hub for teaching game development and promoting Gamer Culture. I am also the organizer and facilitator of both GameDev Jax and the International Game Developers Association (IGDA) of Jacksonville.

I regularly teach live workshops on developing games for Xbox One in coordination with Microsoft at the Microsoft Store in Jacksonville, and I travel around the region speaking at various tech events evangelizing for the indie game development industry.

I am a serious geek in my heart of hearts, and I ABSOLUTELY LOVE Retro Games. It is my passion and my business to teach other people the skill of making their own games.