Tuesday, December 18, 2012

My Game Maker 8.1 Resources

game maker logoGame Maker has been the cornerstone of my video game design and development instruction for some time now.  In the past, I have used it to as a tool in summer computer camps, after school programs, and a unit in our school's gifted and talented program.  Currently, it is the primary tool in the 8th grade semester long video game design and development elective at William Annin Middle School in Basking Ridge, NJ and the online game design and development course offered through the VHS Collaborative (formerly Virtual High School).  I have developed a number of resources for Game Make 8.1 and am in the process of creating new resources and converting many of my existing resources for use with Game Maker Studio.  These resources will be available here in addition to the Game Maker Teacher site and Valve's Steam for Schools Game Maker site (coming soon!)
Below is a list of existing resources that I have created.  Feel free to use them.  I just ask that you provide credit and a link back to my blog.

Game Maker 8.1 Tutorial Videos:
The Game Maker Interface: This short video will provide you with an understanding of the gamemaker environment. It will explain the different resources that are included in a game created with GameMaker. (3:23)

Creating Sprites, Objects, and Rooms: This tutorial will show you how to create sprites, objects and rooms. You will create and name your first resources using a proper naming convention. In the next lesson, we will program your objects with events and actions. (7:05)

Introducing Events and Actions: This tutorial will show you how to create events and actions for objects. Events and actions are what tell the objects what to do in a game. (1:49)

Working with Events and Actions: This tutorial will show you how to program events and actions for your objects. Events and Actions are what indicate what the objects can do in a game.  (3:46)

Creating Moving Objects: This video will assist you in creating objects that move automatically in GameMaker 8. (3:56)

Adding a background and sound: This tutorial will show you how to add sound and a background to your games in GameMaker 8. (5:38)

Mouse Events: In this tutorial, we will add obstacles to avoid in the game. We will set it up so that we can click on the obstacles with the mouse in order to get rid of them and save our main character. (4:06)

Scoring and Lives: This tutorial will show you how to add score and deal with lives based on collision with the enemies. (9:34)

Lives as a scoring mechanism: In this video, we will set it up so that your character has 3 lives and each time it collides with a bomb, your character will lose a life. (7:04)

Conditional Statements / Game Over: In this video, you will learn how to deal with the end of a game in GameMaker 8. If / Then statements are introduced to determine what to do at the conclusion of the game (if all lives are lost). Questions are also incorporated to determine if you want to try again or end the game. (4:00)

Conditional Statments / lives (another example): In this tutorial, you will learn how to use if / then statements to test conditions in a game. In this example, we will be determining what should happen when the lives are equal to 0. (5:20)

Instance Count: This GameMaker 8 tutorial will deal with checking the instance count to determine if a level has been complete based on the elimination of all enemies.  Upon completion of the level, the game will advance to the next level. (6:02)

Conditional Statements and Instance Count: In this tutorial, we will explore conditional statements further. This time, we will determine when there are no more enemies. Upon eliminating the last enemy, you will advance to the next level of the game, which will be more challenging than the first. (7:49)

Game Information: This tutorial will show you how to add game information to your GameMaker 8 game. Game information is the area where you can provide directions to the player.  I see this as the online 'game manual' and have students include important elements (storyline, characters, items, level descriptions, scoring mechanisms, winning / losing scenario, and game controls) I will also show you how to make the game information show up automatically at the start of the game. (3:37)

Shooting in a direction: This tutorial will show you how to create a main character that can shoot a projectile based on the direction he is moving. (7:38)

Shooting (another example): This video will demonstrate how to shoot projectiles in GameMaker from a given object.

Move towards an object: This video will show you how to use a step event in GameMaker 8 to create a loop that continually checks the location of an object and has another object move toward it. (3:40)

Random objects spawned from an object: This tutorial will show you how to have an enemy automatically shoot objects in a given direction.  This tutorial utilizes a step event and the random action to randomize the occurrence of the enemy projectiles. (2:23)

Spawned bullets from an object (another example): This tutorial will demonstrate how to make a non-player character automatically shoot based on randomly creating objects within a step event. (9:40)

Setting a time limit using timers: In this video, you will learn how to use timers to set a time limit for levels in your GameMaker 8 game.  The tutorial uses timers and health.  The health is continually reduced until it gets to 0. (5:03)

Platform Basics and Views: This tutorial will walk you through the basics of creating a side scrolling platform game including gravity and setting up views. (13:22)

Jumping from a platform: This video will show you how to jump only if you are on a platform. It will avoid the 'double jump' issue by first checking that you are in fact standing on something.

Game Maker 8.1 Sample 'How to' Examples
Over the years, I find that students often ask how to do 'something' specific in game maker and pulling it out of a large tutorial or trying to sift through an entire game to see the sample can be overwhelming.  I have found that by creating isolated examples, it is easier to understand the specific concepts.  Students can then take the concept and apply it to their game more easily.  Below are a number of links to .gm81 (game maker) files that you can download to analyze and learn from.

How to...

Picking up a key to open a door: This sample game involves the use of variables to determine whether or not the player has an object (key).  The player must collect the key in order to open a lock, ultimately leading to the door to advance to the next level.   

Lives and Game Over: This sample will demonstrate the use of lives as a scoring mechanism.  You can see how to set up lives, remove lives based on collision, and let the player know when the games is over and offer the opportunity to try again or quit.

Shoot in a direction (rapid fire) - This example will demonstrate how to make a playable character shoot in a given direction continuously (without a pause)

Shoot in direction (with a pause) - This example will show you how to shoot in a direction, but with a pause between shots using timers and variables.

Shoot toward the mouse - This sample game shows you how to use the global mouse settings and the move toward action in order to shoot in the direction of the mouse cursor.

Incorporate a Time Limit - This sample demonstrates the re-purposing of health as time remaining.  Timers are used to reduce the time remaining.  A message will appear when the time limit is reached and indicate that time's up and game over.

Set up a checkpoint - This example demonstrates a side scrolling platform game with a checkpoint.  Once the checkpoint is passed, the game will resume from the checkpoint location upon losing a life (rather than starting back at the beginning of the game).  Lives are not used in this example as the idea is that the player can continue to retry from the checkpoint.

Make a character change directions - This example will show you how to change the sprite of your player to face a different direction based on the direction you are moving.  The same idea could be incorporated with enemies so they change sprite when they change direction.

Boss Health: This sample game will show you how to set up lives / health for the player and for a 'boss'.  In this example, player lives (or health) are set using the built in 'lives' while the boss health (or lives) is set up using the built in 'health'.  The caption of each is changed to reflect 'player health' and 'boss health'.  When a bullet hits the boss, he loses one health and the player loses 1 health when hit by an enemy bullet.  If the boss health goes to 0 he dies, and when the player health gets to 0 he dies and prompted with a question to choose whether or not to play again.

Enemy Bullets Spawning (using timers): This example will demonstrate how to make an enemy automatically shoot based on a loop using timers.

Enemy Bullets Spawning (using random action):  This example shows how to make an enemy shoot randomly based on using a step event and the random action.

Drawing Lives as an Image: This sample will show you how to show the lives as an image on the screen using the draw event and the draw lives action.  As you lose lives, the graphic display will reflect the number of lives.

Using a sword - In this example, the player can pick up a sword.  Once the sword is picked up, the player can use the sword to attack.  The player will change into the guy with the sword for a short period (using a timer) of time when the space bar is pressed and then switch back to the player without the sword.  The player can continue to use the sword, but the timer prohibits the player from using the sword continuously.

Rotating image (sprite) using drag and drop - This example shows you how to rotate an image based on sub images and changing the value of the direction when the left or right arrow key is pressed.

Rotating image (sprite) using GML code - This example shows you how to rotate an image by using GML code to change the sub images when the left or right arrow key is pressed.

Item drop - In this example, the player must eliminate an enemy who will then drop a key needed to unlock the door to move on to the next room.  The sample uses variables to determine if the player has the key and will only allow the player to open the door if the value of the variable is 1 (indicating that the player has the key).

Gravity and Views: Vertical platformer -This is an example of a vertical platform game using gravity and views.  The view allows you to utilize a larger room and only show part of the room (following the main character)

Gravity and Views: Horizontal platformer: This is an example of a horizontal (side scrolling) platform game using gravity and views.  The view allows you to utilize a larger room and only show part of the room (following the main character)

Enemy Spawn: This example will show you how to use controller objects and the random action to spawn enemies randomly throughout the game.

Enemy moving back and forth on a platform: This example will show you how to make enemies stay on a platform by using invisible walls and the reverse horizontal direction action.

Enemy moving and shooting toward the player: This example will show you how to set up an enemy (AI) to move toward your player using the x and y coordinates and a step event.  The enemy shoots toward the player as well.  Beware!

Click here to access the google drive including all of the 'how to' examples.
Have any questions?  Is there something you would like me to demonstrate in a video or how to sample?