Once you've learned the basics, see other helpful Resources to create your own projects.
1. ▶️ Learn Play/Test Mode Camera & Controls
This is an EASY activity anyone can do, which will teach you how to create a new game and move the camera and your avatar in Game Maker. You will learn additional controls for the camera in Build mode and how to place blocks in the next activity.
Start
Launch Game Client OR
Launch Game Maker, create a 1x1 Experience and press TAB to begin Play mode
Practice Camera and Avatar Movement
Controls
Keys/Mouse
Tilt camera
Turn camera
Zoom in/out
Move forward / backward
WS
Move left / right
AD
Free movement
Practice Toggled player actions
Controls
Keys
Stand / Crouch / Crawl
C
Crawl
Hold C
Sit / Stand
X
Try the Shift Modifier
Controls:
Keys
Walk
Run
Walk + Jump
WASD + Press SPACEBAR
Run + Jump
WASD + Press SPACEBAR + Hold SHIFT
Run + Slide
WASD + Hold SHIFT + C
Test Combat Controls
Controls:
Keys/Mouse
Roll
2 x SHIFT
Attack
Charge & Lunge Attack
(moves the Avatar forward)
Block
A few Combinations to Practice:
Run and jump
Run and slide
Attack, roll, and jump
Remember to let your mouse steer your avatar's camera, then use the WASD keys to move relative to what you see on screen.
Now you know the basics to start playing in the metaverse or test your creations! Learn more about building in the next activity.
2. 🏗️ Learn Build Mode Camera & Block Controls
This is an EASY activityanyone can do, and will show you the controls needed to navigate while building in Game Maker and terraform with blocks. Once you know how to navigate and build with blocks, you'll be ready to place and manipulate objects in Activity 3.
Launch Game Maker
Open the Experience from Activity 1 or start a new one
Practice Some Build Mode Camera Controls
Controls:
Keys
Mouse
Zoom in/out
Press W /S
Move camera left/right
Press A /D
Move camera up/down
Press Q / E
Turn camera left/right
Press ⬅️/ ➡️ keys
Turn camera up/down
Press ⬆️ / ⬇️ keys
Orbit around a point in front of you
-
Modifier: Sprint a camera control
Hold SHIFT + use other controls with keys
Hold SHIFT + use other controls with mouse
Find Blocks
Open the Library (press L) and add blocks to your quick access bar (above the Library):
Click the Blocks tab at the top of the library to filter options and only show blocks.
Drag and release a few blocks into slots in quick access bar. Close the library (press L) and click on any block in the quick access bar or use the corresponding number shown in each slot to select a block to use.
Undo/Redo if Needed as you practice the controls below
CTRL + Z to undo
CTRL + Y to redo
Use the Free Brush (default) to practice basic block building controls
Basic Controls
Place
Remove
Replace
Place Layer
(no modifiers)
Modifiers
Line or Rectangle Shape
(on any block surface)
Hold [basic control] + drag & release
Line of Blocks
(vertical)
Hold [basic control] + SHIFT + drag up & release
Rectangle of Blocks
(vertical)
Hold [basic control] + drag to base shape + SHIFT + drag up & release
Test Other Block Brushes & Adjust Size
Notice when placing or removing with other brushes, the center of the shape snaps to the surface (blocks may be placed underground).
Brushes other than the Free brush will only build a vertical column in the brush shape.
Diamond - easy to climb shape
Cube - man-made structures and blocky terrain
Sphere - natural terrain
Now that you know how to build with blocks, you can block out the 3D space for your Experience, create terrain details and paths to guide players.
Learn how to add objects into your world in the next activity.
3. 📐 Place & Position Assets
This is an EASY activity anyone can do. It will introduce asset placement and movement in the Game Maker to build a scene.
Launch Game Maker
Open or create an Experience.
Find Assets
Open the Library (press L) and add assets to your quick access bar:
Add two assets to your quick access bar from the Props and Characters tabs
Place and Remove Objects
An object is an instance of an asset placed in an Experience. You can place as many objects as you want using an asset. Objects snap to block surfaces when placed.
With an asset selected in the quick access bar, LEFT CLICK inside the viewport to place it
Press SHIFT to snap to the grid when placing an asset
To remove an object:
In Select mode, LEFT CLICK to select an object and duplicate it with CTRL+D
Multi-Select
Practice selecting multiple objects and try duplicating and deleting a group:
Drag the mouse to draw a rectangle (this selects all objects behind the rectangle to the edge of the Experience)
Press SHIFT and click one item at a time to add to your selection
Press CTRL to add and remove an object from your selection
View and Snap to the Grid
The grid system and snap tools allow for custom block and asset placement for any project.
Open Grid settings to hide or show the grid, adjust scale, and set opacity. Let's leave the grid on
Place an object with the grid's OSNAP toggle on, and notice that you can turn on and off the X, Y, or Z axes
Snap an object to the ground with a click
Move Objects
Click and drag a coloured arrow to move the object on one axis
Move the mouse pointer between two arrows to activate a plane to move only between those two axes
Move to the center where the arrows meet to activate a cube to move freely between all three axes
In the Properties panel, modify position coordinates to move the asset with precision
Test Movement with a Custom Grid
Rotate Objects
Press O to Turn off OSNAP
Click and drag a coloured curve to rotate the object on one axis
Hover over the gizmo to activate a sphere to rotate freely between all three axes
In the Properties panel, modify rotation coordinates to rotate the asset with precision
Test Rotation with a Custom Grid
Test the Hierarchy to Control Objects
Click an object in the Viewport and notice it is highlighted in the Hierarchy
In the Hierarchy, drag and drop that object onto another object to make it a child
Select the parent object and test movement and rotation to see how it controls the child object's position and rotation
Practice: Use what you've learned to build a small scene of objects. It takes time to get used to the controls with the mouse and keyboard shortcuts, but the tools are very flexible to build any project.
The next activity will introduce behaviours to drive an object's actions and tags to customize how objects can detect and respond to each other.
4. 🤺 Customize Object Behaviours with Tags
This is a MEDIUM difficulty activity using simple behaviours to create custom interactions between objects.
This activity will explore some behaviors that use AI decision making. They are programmed to detect and respond in certain ways to other objects that have specific tags, or identifiers. Tags are included when a behaviour is added to an object to make it easy to build objects that are ready to interact.
Launch Game Maker
Open or create an Experience.
Default Settings
Prey & Predator
Place a "Stag" asset and apply Prey behavior. This includes the Prey tag.
Place a "Grey Wolf"asset nearby and apply Predator behavior. Predator tag is included.
PressTAB to Test:
The Predator will detect the Prey and chase it.
The Prey will run when it detects the Predator up closer.
The Predator will chase any Avatar, or player, which is one of its default Tags to Attack.
Custom Targets
Plant & Prey
Select the Prey and notice that it has a Food Tag and Tags to Flee. Let's add objects with the Plant tag for it to detect.
Place a "Small Plant B" asset nearby and duplicate it. For one of them, apply the Plant component. Scroll to the bottom of the object's Properties, type the tag Plant (case sensitive), and press enter to apply it.
One plant has an identity so it can be "eaten" and the other is just a prop that won't be touched. Duplicate (CTRL+D) both types and spread them in a small area.
PressTAB to Test:
Watch the Prey wander, approach objects it should eat, and make them disappear while ignoring the rest.
THINK OUTSIDE THE BOX
These behaviors are meant to be a function with flexible use.
Make an NPC collect trash using the Prey or Farmer behaviors by adding any custom tag as their food or gathering target.
Only add the custom tag to objects you want Farmer or Prey to remove.
Changing Tags During Play
Soldier & Citizen
Place an "Axeman Recruit" and apply Soldier behavior. Its default Tags to Attack includes Hostile.
Place an "Elder Caveman" with Citizen behaviour.
PressTAB to Test:
You can't attack the Citizen because it has the built in tag Friendly.
The Soldier will ignore you until you attack, which will apply the tag Hostile to your Avatar for the rest of the game!
If you exit Play mode and re-enter it later, the game is reset, so the Hostile tag will be cleared from your Avatar.
Custom AI Interactions
Melee Enemy vs. Melee Enemy
GroupA
Place three "Maximilien" objects together. Select all of them and apply these changes in the Properties panel (which will change them all at the same time):
Apply Melee Enemy behaviour
Next to Tags to Attack, click the X to remove the Hostile tag, click ADD+, and type GroupB in the text box.
Scroll to the bottom of the Properties panel and apply the tag GroupA (remember to press ENTER)
GroupB
Place three "Matthew" objects together. Select all of them and apply these changes in the Properties panel:
Apply Melee Enemy behaviour
Next to Tags to Attack, click the X to remove the Hostile tag, click ADD+, and type GroupA in the text box.
Scroll to the bottom of the Properties panel and apply the tag GroupB (remember to press ENTER)
PressTAB to Test:
GroupA and GroupB will detect each other's tags and fight. Feel free to select these groups, duplicate them a few times, and create a small army of dueling NPCs! ⚔️
Combine a variety of AI-driven behaviors and use tags to direct their decision making. Explore these ideas and your own:
Want players to join a side in a battle? Add Avatar to any enemy's Tags to Attack.
Want fighters to be revived during battle? Use the Healer behavior with Tags to Heal.
There are many other behaviors to explore, but you've learned the basics of controlling object actions by applying behaviors and custom tags.
In the next activity, you'll create functional game logic with other behaviours and add components to make objects more interactive.
5. ✉️ Create Object Cause & Effect with Messages
This is a MEDIUM difficulty activity using behaviours and components to create simple logic systems with objects.
This activity will help you learn the basics of communication in Game Maker using messages to create cause and effect.
Launch Game Maker
Open or create an Experience and move to an area with empty space.
Let's turn the grid off and focus on logic.
Some behaviors and components are only available as [MP], which means they are multiplayer synchronized. For this activity, choose [MP] only when a [SP] option isn't available.
Designing gameplay with [SP] and [MP] logic will be explored later.
Collisions & Messages
Behaviours and components are needed to make objects active and/or interactive. This logic provides a framework so messages can be sent and received to trigger gameplay events.
Tags and Broadcast Type allow for greater control over how events are triggered.
Add the following objects to the viewport:
Asset: Door (any)
No behavior
Asset: Door (any)
Door behaviour
Pressing E next to an object sends the message Interact to it.
Test (Press TAB)
Press E to interact with each door. One door is only a prop. The other animates to appear open and turns off its collisions so players can pass through.
Most objects must have collisions to prevent players from passing through them. You can control if an object has collisions, is visible, or has gravity in the Properties Panel.
Toggle Behaviours On/Off
A message sent to an object's Toggle component can turn it's behaviour on or off. Think of it as locking or unlocking a behaviour.
Add an object that sends a message:
Asset: Museum Info Panel
Button component
Message to Send:Door.Unlocked
Broadcast Type: EveryoneInRange
Create a custom message by typing it into the message field and click to Add it.
Add two objects in range (the yellow sphere) of the first object to receive the message:
Asset: Door (any)
Door behavior
Message to Open:Door.Unlocked
Select the existing message from the message dropdown list.
Asset: Door (any)
Door behavior
Message to Open:Interact
Toggle component
Turn On Message:Door.Unlocked
Initial Behaviour State: False
(behavior inactive at game start)
Test (Press TAB)
Neither door can be opened. Interact with the panel to send its message, and then:
One door opens
The other door's behaviour is toggled on so players can open the door with E.
Trigger & Filter Messages
Add the following objects to the viewport:
TRIGGER: AVATAR DETECTED
Message sent to everything in the Experience (location doesn't matter)
Asset: Door (any)
Name: DoorA
Door behaviour
Message to Open:DoorA.Open
Asset: Ancient Lever
Message Broadcaster behaviour
Message to Send:DoorA.Open
Broadcast Type: All
Wait Before Broadcast: True
Message Required: Interact
TRIGGER: OBJECT COLLECTED
Message sent to specific objects
Asset: Door (any)
Name: DoorB
Door behavior
Message to Open:DoorB.Open
Asset: Key (any)
Collectable behavior
Message On Collect:DoorB.Open
Broadcast Type: SelectedActors
Broadcast Targets: DoorB
Alternative Method: Add a tag to the door, set the key to broadcast the message to SpecificTagsInRange, and adjust the key's broadcast range to include the door's location.
TRIGGER: TAG DETECTED
Message sent to self
(when the object detects a specific tag in range)
Asset: Door (any)
Name: DoorC
Door behavior
Message to Open:DoorC.Open
Speaker component
Detection Type: SpecificTagsinRange
Include Tags:DoorC.Key
Message to Send:DoorC.Open
Broadcast Type: Self
Asset: Key (any)
Tag:DoorC.Key
Pickable behavior
Test (Press TAB)
Trigger doors A, B, and C to open based on the logic set up. Imagine ways to use these simple trigger methods for other design needs!
The lights do not move with the car. Let's create a relationship in the hierarchy to fix that.
Modify
Set the "Headlight" assets to move with the car's platform motion. Open the hierarchy, select them, and drag them onto the Car. This makes them child objects and the car the parent object.
Test (Press TAB)
The location of the "Headlight" assets is now controlled by their parent object's motion.
Messages with Arguments
Some special messages appear in yellow and allow you to send information (an argument) with a message.
You can also create custom messages with arguments that will appear yellow in the message dropdown list. These will be explored in a later activity.
Continue with the previous example so weather and the streetlight will gradually change.
Add objects to communicate special messages:
Asset: Logic Asset
Name: Street Light Trigger
Message Broadcaster behaviour
Message to Send:LightColor
Time: 10
Wait Before Broadcast: True
Message Required:Night
Asset: Logic Asset
Name: Weather Trigger
Message Broadcaster behaviour
Message to Send:WeatherFade
Time: 10
Wait Before Broadcast: True
Message Required:Night
Modify existing objects to receive the special messages:
Asset: Logic Light Asset
Name: Street Light
Message Turn ON:Night
Message Turn ON:LightColor
Asset: Weather Asset
Name: Night
Message Required:Night
Message Required:WeatherFade
Test (Press TAB)
The weather and streetlight gradually change using these special messages.
Save your Experience so this logic is available for use in another activity.
This activity introduced new tools and concepts to understand objects more and how to make them communicate in custom ways.
In the next activity, you will learn to integrate quests with some of the logic from this activity so you can begin designing a flow for players with clear guidance to play through your Experience.
Ready for More Practice?
This activity leaves room for you to test out your own ideas when the player exits the Trigger Volume and the message Day is sent. Test out custom weather profiles and light colours, too!
Remember that the special message LightColor sets transition timing and colour.
Coming Soon
6. ❗ Integrate Quests with Object Logic
This is a MEDIUM difficulty activity using Quests to guide players through your game and use indicators to help players find quest objects like important characters collectables, etc.
This is a ADVANCED difficulty activity to learn about setting up logic layers for multiplayer games, which combines logic individual players experience and synchronized logic all players experience.
This activity will explore how to design layers of logic for multiplayer synchronised gameplay.