Game Maker Tutorial. Where to Get.. ■ Game Maker: Studio Tutorials Game Maker: Studio Tutorials General My First Game, Scrolling ShooterMy First GameScrolling.

Post on 17-Jan-2016

248 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

Transcript

Game Maker TutorialGame Maker TutorialGame Maker TutorialGame Maker Tutorial

Introduction

■ User Interface rooms: the scenes (levels) in

which the objects live backgrounds: the images used

as background for the rooms objects: the things in the game

• instances: one particular occurrence of an object

sprites: images that are used to show the objects

sounds: these can be used in games, either as background music or as effects

scripts: small pieces of code that can be used to extend the possibilities of your game

Your First Game

■ Adding Sprites Click the ‘Create Sprite' icon

• Name it spr_crown• Click Load Sprite.

We also need a wall sprite. • Name it spr_wall

■ Naming Sprites, Sounds & Objects every sprite sprXXXX the sounds sndXXXX the objects objXXXX.

Your First Game

■ Adding Sounds Click the ‘Create Sound' icon

• Name it snd_bounce• Click Load Sound.

bounce.wav

We also need a click sound. • Name it snd_click

click.wav

Your First Game

■ Adding objects create crown and wall objects

• need an object to put in your game.  • A sprite just represents the object.

Add in a wall object.  • Name it obj_wall, choose the wall sprite, and make it solid.

Click the Add Object icon • Name it obj_crown• Choose the Ball sprite to represent the object

don't make it solid. (It's best not to make moving objects solid.) It interferes with the Game Maker collision detection system and

your object may become 'stuck'

Your First Game

■ The Create Event Events are the things that happen in your game. We want the ball to start moving in a random direction. Open the properties for the crown object

• Add in an Event for when the crown is created.• Choose start moving in all directions at speed 4

the ball moves 4 pixels for each step of the game.  If the game is running at the normal speed of 30 frames per

second, then there will be 30 steps every second.  − You can change the game speed in the settings tab of the

room properties    

Your First Game

■ The Collision Event Collision event with the wall object Press the Add Event button Click on the 'Collision Event button and select "obj_wall". Include a Bounce action (from the "Move" tab, "Jump" section) include the Play Sound action (from the "Main1" tab, “Play sound"

section) select "snd_bounce".

Your First Game

■ The Mouse Event Define what to do when the user clicks with the left mouse on

the clown Add 10 points to the score

• Add Event Mouse Event Left Pressed. include the Set Score action from the “Score” tab include a Play Sound action from the “Main1” tab(“snd_click”) include a Jump to Random action from the “Move” tab Finally we include a Move Fixed action

Left Button vs Left Press ?? Relative vs Absolute ??

Your First Game

■ Adding A Room need to create the room in which the game takes place. choose Create Room select the “Settings” tab Name: rm_Main

Your First Game

■ Saving and Testing Choose the command Run Normally or press the green Play

button In the File Menu choose the command Create Application

Your First Game

■ Polishing Your Game Backgrounds

• Create Background. background.png bck_main• Double-click on the game room

click on the "backgrounds" tab.

Your First Game

■ Polishing Your Game Adding Alarm

• Approx every second we will make the crown change direction. 

• setting an alarm clock to trigger an event every second. set the alarm clock when the game first starts

− Select the Create Event and from the Main2 tab add a Set Alarm action

each time the alarm goes we will make the ball change direction− Click on Add Event and choose the button Alarm “Alarm0”− include the Move Fixed action (from the move tab), select all

eight arrows and set the speed to 0 but, enable the Relative property.

reset the alarm.

Your First Game

■ Polishing Your Game Changing direction

• make the clown face the direction that it is moving in• add in an action to change the angle the sprite is drawn at

every time it changes direction. go to Main2 tab and select the Transform Sprite action

Your First Game

■ Polishing Your Game Controller Object : special objects with no sprites assigned

• Play background music choose Create Sound, "snd_music".

− Click on the Load Sound button, music.mp3. Create Object, "obj_Control"

− add a Create Event − indicate "snd_music" and set Loop to true

• Display the player score with this object add a Draw Event to your object. (From Score tab)

• add this object into the room

Your First Game

■ Ending your Game Let's say we want the game to end when the player's score is 20.

• Each time we add to the score, we will check whether the score is equal to 20 Ending the Game more Gracefully

■ Extension improve the Ending Game by creating a text object and putting it

in an ending room

Official Tutorial

■ Official Tutorial Tutorial: What is a Good Game? (zip file, 190 KB) Tutorial: Your First Game (zip file, 850 KB) Tutorial: Creating a Scrolling Shooter (zip file, 1.8 MB) Tutorial: Maze Games (zip file, 1.4 MB) Tutorial: Platform Games (zip file, 1.6 MB) Tutorial: 3-Dimensional Games (zip file, 1.1 MB) Tutorial: Multiplayer Games (zip file, 210 KB) Tutorial: A First Person Shooter (zip file, 2.4 MB)

A Scrolling Shooter

■ Variables and properties Properties/variables that each instance

• x x-coordinate of the instance • y y-coordinate of the instance • hspeed horizontal speed (in pixels per step) • vspeed vertical speed (in pixels per step) • direction current direction of motion in degrees

0-360: 0 is horizontally to the right (counter-clockwise)

• speed current speed in this direction • visible whether the object is visible (1) or invisible (0) • solid whether the object is solid (1) or not solid (0)

A Scrolling Shooter

■ Variables and properties global variables:

• score current value of the score • lives current number of lives • Health cirrent health of player (default to 100)• mouse_x x-position of the mouse • mouse_y y-position of the mouse • room_speed current speed of the room (in steps per

second) • room_caption caption shown in the window title • room_width width of the room in pixels • room_height height of the room in pixels

A Scrolling Shooter

■ Game Maker Variable in the Control tab:

• Set the value of a variable• If a variable has a value

■ A Scrolling Shooter : 1945

A Scrolling Shooter

■ Scrolling Backgrounds background image back_water

• set the Vert. speed to 2.

A Scrolling Shooter

■ Scrolling Islands create three sprites with the images

• island1.png, island2.png, island3.png spr_islandX• uncheck the box Precise collision checking

create objects with three sprites• spr_islandX obj_islandX• Uncheck solid• Depth : 10000

The instances with highest

depth are drawn first

A Scrolling Shooter

■ The illusion of motion Add Event to obj_islandX

• Create : Set the vertical speed 2• Step

–65 for the y-position to make sure the island starts completely above the room.

A Scrolling Shooter

■ The main plane create spr_myplane with myplane_strip3.png

• in files that end with _stripXX XX indicates the number of subimages.

• check the box Precise collision checking create obj_myplane

• spr_myplane obj_myplane• Uncheck solid• Depth : -100

A Scrolling Shooter

■ The main plane Add Event to obj_myplane

• Add keyboard event <Left> : if (x > 40) (-4,0) <Right> : if (x< room-width-40) (4,0) <Up>: If (y > 40) (0,-2) <Down> : If (y<room_height-120) (0, 2)

Origin : (0,0)

Don't forget to check the box labeled Relative

positive y-direction is downwards

A Scrolling Shooter

■ Enemies And Shooting create spr_bullet with bullet.png create obj_bullet ( spr_bullet) Add Event

• Create : Set Vertical Speed -8• Step

A Scrolling Shooter

■ Enemy and Shooting Add Event to obj_myplane

• Create :• Alarm 0 :• <Space>

Test Variable − can_shoot equal to 1

Start of a block− Create instance

(0, -16) , relative− Set Variable

can_shoot 0− Set Alarm 0

Number of Step 15 End of a block

A Scrolling Shooter

■ Enemy and Shooting (make the first enemy) create spr_enermy1 with enermy1_strip3.png create obj_enermy1 ( spr_enenmy1)

• Depth 0 Add Events

• Create Create : Set Vertical Speed 4

• Step

A Scrolling Shooter

■ Enemy and Shooting (make the first enemy) Collision With The Player Bullet

• Add sound snd_explosion1.wav

• Add Sprite & Object Explosion spr_explosion1 obj_explosion1

• Add Collision Event (with obj_bullet) to obj_enermy1

Select Other

(0, 0) relative

A Scrolling Shooter

■ Enemy and Shooting (make the first enemy) Collision With The Player

• Add sound snd_explosion2.wav

• Add Sprite & Object Explosion spr_explosion2 obj_explosion2

• Add Collision Event (with obj_player) to obj_enermy1

Other, perform event: yes

Self

A Scrolling Shooter

■ Add Controller Object Create object : controller_enemy

• Uncheck visible Add Event

• Create

• Alarm 0

Add object to room

A Scrolling Shooter

■ Scores, lives, and health Create snd_background with background.mid Create spr_bottom with bottom.png

Create spr_life with life.png Create object : control_life Add Events

• Create

A Scrolling Shooter

■ Scores, lives, and damage Add Events

• No More Lives

• No More Health

Object: obj_myplaneChange into: obj_explosion2

A Scrolling Shooter

• Draw

(0, 404), -1

(180, 440)

(12, 449), (138, 459)

(16, 410)

A Scrolling Shooter

■ Scores, lives, and damage Change Events in obj_enemy1

• Collision : obj_myplane

A Scrolling Shooter

■ Scores, lives, and damage Change Events in obj_playerExplosion

A Scrolling Shooter

■ More enemies create spr_enermy2 with enermy2_strip3.png create obj_enermy2 ( spr_enermy2) Depth 0 Add Event

• Create : Set the vertical speed 4• Step

Create instance − obj_enermybullet1 (0,16)

• Collision : obj_myplane• Collision : obj_bullet

A Scrolling Shooter

■ More enemies create spr_enermy3 with enermy3_strip3.png create obj_enermy3 ( spr_enermy3) Depth 0 Add Event

• Create : Set the vertical speed 4• Step

Create instance − obj_enermybullet2 (0,16)

• Collision : obj_myplane• Collision : obj_bullet

A Scrolling Shooter

■ More enemies create spr_enermy4 with enermy4_strip3.png create obj_enermy4 ( spr_enermy4) Depth 0 Add Event

• Create : Set the vertical speed -4• Step

• Collision : obj_myplane• Collision : obj_bullet

A Scrolling Shooter

■ More enemies Create snd _explosion3 with explosion1.wav Create spr_enermybullet1 with enermybullet1.png Create obj_enermybullet1 ( spr_enermybullet1) Depth 0 Add Event

• Create : Set the vertical speed 8• Collision : obj_myplane• Outside Room

Destroy the instance

A Scrolling Shooter

■ More enemies Create spr_enermybullet2 with enermybullet2.png Create obj_enermybullet2 ( spr_enermybullet2) Depth 0 Add Event

• Create

• Collision : obj_myplane• Outside Room

Destroy the instance

A Scrolling Shooter

■ More enemies Change Events : controller_enermy

• Create

• Alarm 0

A Scrolling Shooter

■ More enemies Change Events : controller_enermy

• Alarm 1

• Alarm 2

• Alarm 3

5

3

Maze Game

■ Add 2 rooms : Set the room size to be 480x480 pixels and set the grid to be 32x32 pixels

■ adding 3 sprite sprWall sprPerson sprTarget

■ Create objects Now create a wall object: Name it objWall

• Use the wall sprite• Make it solid (so things can't pass through it)

Create the person object : Name it objPerson• Use the person sprite

Create a target object : Name it objTarget• The target object should not be solid, as the player needs to be able

to move on top of it.  When the player collides with the target object, the game will continue on to the next room.

Maze Game

■ Set up movement for the person Add an event to the person object for the Keyboard  <Left>

• Add the action from the Control tab 'If instance is aligned with grid‘

• Set the snap horizontal and snap vertical to be 32 pixels.

• Add a start moving in direction

• Set the direction to be left and speed to be 4 Add actions for the up, down and right keys.  (You can use the

duplicate event option to make this job easier) To stop the person moving

• add actions for the <No Key> event

• Click the centre block in the 'Start moving in a direction' options.

Maze Game

■ Set up collision handling If the person collides with a wall it should stop, so add a

collision event

Add a collision event to the target object for a collision with objPerson

Maze Game

■ Draw 2 maze-like rooms making sure that you have walls all around the outside.  Place the person and target at the beginning and end of your

maze

Monsters

■ Add in 2 sprites one facing left and the other facing right objMonsterleft, bjMonsterRight Make a monster object : objMonster

■ Add a create event for objMonster Add in a Start Moving action make it start moving to the right.

■ Add a collision event for objMonster add in the following actions:

Paths are another way of doing the same thing, but without using collisions with blocks to turn the monster around.

Maze Game 2

■ To make the maze more interesting, we should be collecting diamonds along the way.  A door stops the person from getting to the target.  When all

the diamonds are gone, the door disappears. The target does not appear in the room until all the diamonds

are collected. 

■ Add 2 new sprites sprDoor and sprDiamond 

■ Add 2 new objects objDoor and objDiamond.  Make the door solid as it acts like a wall

Maze Game 2

■ Add sounds for picking up the diamonds : sndDiamond for opening the door : sndDoor.

■ Place diamonds around your maze. The objDiamond should have a collision event with the

person It should then play the diamond sound and destroy itself

Maze Game 2

■ Place the door so that it blocks access to the target Don't put any diamonds on the other side of the door!

■ In the person object add a collision event with the door object, stopping the

person and aligning it with the grid.  Just the same as you did with the wall object

■ When all the diamonds are gone, the door should play a sound and destroy itself.  Add the step event to the door object Add the 'If the number of instances is a value' action.  (On the

Control tab) Choose these options:

Step event : occurs once for every step of the game, which is usually 30 times a second.

Maze Game 2

play a sound and destroy the door if there are no diamonds left

add block markers to our actions

■  Save and play your game to test whether it works as expected.

Maze Game 2

■ The Target Marker use a target that does not appear in the room until all the diamonds

are collected

■ Create a marker sprite and object.  Call them sprMarker and objMarker.  Make it invisible by unchecking the Visible option.

■ use the step event add an action 'If the number of instances (of the diamond) is zero, 

Change the Instance to change the marker to the actual Target object

■ Place the target marker in the room where you want the target to appear.

Reference

■ Reference http://ictmindtools.net/gamemaker/tutorials/ http://www.yoyogames.com/make/tutorials http://forums.tigsource.com/index.php?topic=3251.0 http://www.learningplace.com.au/deliver/content.asp?

pid=35421 http://madebyluke.com/gamedesign/tutorials/index.html http://en.wikibooks.org/wiki/Game_Maker_Programming http://en.wikipedia.org/wiki/Game_Maker http://gamemaker.info/en http://www.gmlscripts.com/gm8help/help/index.html

top related