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 |