Levels

It’s a game programming course, so we don’t complete units – we pass Levels. Each level usually has a couple of lessons that share a common programming theme. Work through the levels and lessons in order! There is a 99% chance that what you do in one lesson will be used in a following lesson. Have fun and remember that the more you practice the better you’ll get.


LEVEL 01

GETTING STARTED
Intro
Lesson 01 Dowload and Install GameMaker
Download Lesson Resources
Lesson 02 Unzipping Lesson Resources
(skip this lesson if you know how to unzip!)
Lesson 03 About the Course YouTube Channel
Settings for watching HD Videos on YouTube

LEVEL 02

GAMEMAKE BASICS AND FIRST GAME
Intro
Lesson 01 Loading Sprites
Creating Game Objects
Creating a Game Room
Adding Game Objects to Rooms
Lesson 02 Using Events to React to Player Actions
Basic Player Movement
Detecting and Reacting to Collision Events
Lesson 03 Creating more instances of objects
Destroying instances
Lesson 04 Positioning objects with x,y
Changing sprite image angles
Adding sounds to the game
Lesson 05 Cloning the Get The Ghosts Game

LEVEL 03

INTRODUCTION TO VARIABLES
Intro
Lesson 01 Creating instance variables
Setting instance variables
Using the Draw Event
Drawing variables to the screen
Lesson 02 Conditional Statements
Modifying variable values
Basic Operators
Common Game Examples
Lesson 03 Generating Random Values
How to Use Randomness in Games

LEVEL 04

USE IT OR LOSE IT
Intro
Lesson 01 Practice all concepts so far by completing a bunch of modifications to the Get The Ghost Game.
Lesson 02 Practice all concepts so far by completing a bunch of modifications to the Two Player Game.

LEVEL 05

ALARMS, COUNTERS, GLOBAL VARIABLES, AND ADVANCING CONDITIONS
Intro
Lesson 01 Timing game tasks
Using alarms to delay code execution
Using variables as counters for timing
Lesson 02 Global Variables versus Instance Variables
Using Global Variables
When to use Global Variables
Lesson 03 More about Conditional Statements
if, else, else if
Using AND and OR operators &&, ||

LEVEL 06

SPRITE, ANIMATION CONTROL, STATES
Intro
Lesson 01 Changing and modifying object sprites
Sprite index and sprite size
Lesson 02 Importing Sprites
Using the Sprite Editor
Working with Animated Sprite Sheets
Creating Animated Sprites
Lesson 03 Linking object behavior to Sprite Animation
Introduction to object States
Using variables, states, and sprites together
Block, punch, kick control and animation
Lesson 04 More about the Draw Event
Using Draw Sprite scripts
Using Draw Sprite Extended
More control over how sprites appear

LEVEL 07

USING SCRIPTS AND METHODS
Intro
Lesson 01 Scripts and Methods
Parameters and Return Values
Lesson 02 Instance ID’s as return values
Using instance id’s

LEVEL 08

CREATING YOUR OWN SCRIPTS
Intro
Lesson 01 Creating your own scripts
Why to use and create scripts
Lesson 02 How to use arguments / parameters
Advantages of using arguments
Lesson 03 Returning values from scripts
Using scripts that return values

LEVEL 09

INSTANCE ID’s
Intro
Lesson 01 Getting Instance Id’s
Controlling objects using instance id’s
Lesson 02 Remembering objects through their id
Instance selection
Random Instance selection
Lesson 03 Code Reading involving instance id’s
Local Variables
With statement

LEVEL 10

MOUSE BASICS
Intro
Lesson 01 Mouse Position Variables and Events
Using States with Mouse behvior
How to code Drag and Drop
Unit selection
Unit Selection with Way Point Movement

LEVEL 11

LIST BASICS
Intro
Lesson 01 Introduction to Lists and List Scripts
Using Lists for Inventory
Quick Introduction to Recursion

LEVEL 12

GRID BASED GAME WITH SCRIPTS/LISTS
Intro
Lesson 01 Grid Based Game Concepts
Collision Masks
Keyboard Input
Review of Script Use
Lesson 02 Scripts for Intersection Detection
Use of Lists for Ghost New Direction

LEVEL 13

LOOPS AND ITERATION
Intro
Lesson 01 Introduction to Loops
for loop, do until loop, while loop, repeat
code reading and writing involving loops
Lesson 02 Using Loops with Lists
Loop counters and List Index Positions
Filling Lists, Traversing Lists
Drawing List Values
Lesson 03 Common loop Algorithms
Sum, Average, Minimum/Maximum Values
Searching a List
Lesson 04 Harder Loop Algorithms
Using GameMaker’s Object lists
Splash Damage, Closest Monster, Move Tower

LEVEL 14

INHERITANCE
 Intro
 Lesson 01 Object Inheritance
Parents, Children, Event_Inherited
OverRiding Event Code
Inheritance for Efficiency in your programs

LEVEL 15

ARRAYS 
 Intro
 Lesson 01 Creating, Filling, Reading Arrays
Using Arrays
Arrays increase efficiency
Common game tasks arrays make easier

LEVEL 16

SOUNDS AND AUDIO ENGINE
 Intro
 Lesson 01 Playing sound effects
Detecting sounds that are already playing
Managing sounds with sound id’s
Volume control using sound id’s
Background Music versus Sound Effects
Audio Emitters for simple volume control
Audio Groups for volume control
Lesson 02 Implementing 3d Sound
Using Emitters for Panning effects
Playing sounds using Location Effects
Volume drop-off effects based on distance

LEVEL 17

FILE READING WRITING
 Intro
 Lesson 01 Using INI files to store key value data
ini file format
Saving/Reading values to the file system
Saving/Reading data in Lists
Using Maps to store player inventory, game state
Using Grid to save/restore object locations in game
Loading levels, room maps, etc from file.
Lesson 02 Using TEXT files to save/load data
Reading numerical and text based data
How to format text file for easy writing/reading
Using text files to save inventory, maps, object data
Writing/Reading lists, maps, and grids to text files

LEVEL 18

*coming soon*
 *Intro
 *Lesson 01 object movement with total control
velocity and acceleration
space game movement
gravity, pushes, and pulls
viewports
basic viewport use for two player split screen
drawing relative to viewport
viewport detection – unique view drawing
menu tips
*Lesson 02 more more

 

Code, Compile, Smile