Designing games with kodu_game_lab_v1

89
Game Design with Kodu Game Lab

description

An edited version of the original Kodu Labs Presentation.

Transcript of Designing games with kodu_game_lab_v1

Page 1: Designing games with kodu_game_lab_v1

Game Design with Kodu Game Lab

Page 2: Designing games with kodu_game_lab_v1

Kourse Overview

Module 1

What is Kodu Game Lab

What is a Game

Module 2

Solve three tutorials

Learn about bots and objects

Write our first program

Module 3

Generate Game Ideas

Look at School Examples from Australia

Design templates used by students

Page 3: Designing games with kodu_game_lab_v1

Kourse Overview

Module 4

Design Patterns and Code Recipes

Game Space

Module 5

Game Progress

Game Play

Game Communication

Module 6

Design Process

Debugging and Troubleshooting

Page 4: Designing games with kodu_game_lab_v1

Module 1

If you were a game character what would you be like?

Activity 1.1

Page 5: Designing games with kodu_game_lab_v1

Activity 1.1

Name: Imberius

Powers: The ability to steal food from others without being detected.

3 Things that make me special:

1. Stealth

2. Pick pocketing

3. Charm

Page 6: Designing games with kodu_game_lab_v1

Activity 1.2

• Kodu is a visual programming language made specifically for creating small 3D games.

• The language has a visual nature and allows quick design iteration using only an Xbox game controller for input (mouse/keyboard input is also supported).

Page 7: Designing games with kodu_game_lab_v1

Kodu comes with a large selection of built-in worlds or you can create a new one from scratch.

Page 8: Designing games with kodu_game_lab_v1

It has many BOTS and OBJECTS

Page 9: Designing games with kodu_game_lab_v1

These ‘do’ various things when…

Page 10: Designing games with kodu_game_lab_v1

• Different Bots and Objects do different things.

• Each Object can have up to 12 pages of code. These are the different STATES.

• Each page (or state), can have up to 7 SCORES (lines of code).

• A line of code is based around WHEN DO (see next slide).

Understanding the Programme

Page 11: Designing games with kodu_game_lab_v1

WHEN: DO (What do these actions do?)

Page 12: Designing games with kodu_game_lab_v1

Further: WHEN: DO (What do these actions do?)

Page 13: Designing games with kodu_game_lab_v1

Each has:

PROPERTIES: Characteristics (size, invisible, damage etc).

BEHAVIOURS: Things it can do (see, hear, bump)

ACTIONS: Things it can perform (move, launch, glow)

About BOTS & OBJECTS

Page 14: Designing games with kodu_game_lab_v1

How will it teach children to program?

• What has been excluded:– Loops– Branching– Variables– Typing– Syntax Errors

Page 15: Designing games with kodu_game_lab_v1

How will it teach children to program?

• So what has been left in?– Objects– Message Passing– Sensors– Filters– Actuators– Modifiers

Page 16: Designing games with kodu_game_lab_v1

Huh?

Page 17: Designing games with kodu_game_lab_v1

What CAN YOU MAKE?

Page 18: Designing games with kodu_game_lab_v1

Activity 1.3

What is a game?

Record the names of five (5) of your favourite games in the space provided in

your manual.

Page 19: Designing games with kodu_game_lab_v1

Activity 1.3

What are the key factors that makes a game, a game?

Page 20: Designing games with kodu_game_lab_v1

Activity 1.3

• Games are fun.• Games have rules.• Games have an objective. • Games have winners and losers.• Games require players to make decisions

and require skill.• Games are an experience.

Page 21: Designing games with kodu_game_lab_v1

Activity 1.4

Game Review

Name: Bonk-Out

Objective: Knock over the castles while protecting the sticks.

Rules: The A button launches the pucks. Push bots can also launch pucks. Pucks destroy everything but the player. The player can control the pucks by bouncing them away.

Why is it fun? The game is fun because it is simple and fast moving.

Page 22: Designing games with kodu_game_lab_v1

Activity 1.4

Share what you find……

Page 23: Designing games with kodu_game_lab_v1

Module 2

Page 24: Designing games with kodu_game_lab_v1

Activity 2.1: Tutorial 1

Objective: Kodu wants to visit the castle.

Page 25: Designing games with kodu_game_lab_v1

Activity 2.2: Tutorial 2

Page 26: Designing games with kodu_game_lab_v1

Activity 2.2: Tutorial 3

Page 27: Designing games with kodu_game_lab_v1

Activity 2.3: Getting to Know the Bots and Objects

Page 28: Designing games with kodu_game_lab_v1

Activity 2.4: Programming Bots

Physical Sensors

Page 29: Designing games with kodu_game_lab_v1

Activity 2.4: Programming Bots

Physical Actions

Page 30: Designing games with kodu_game_lab_v1

Activity 2.4: Programming Bots

WHEN sensor filter

DO action modifier

Page 31: Designing games with kodu_game_lab_v1

Activity 2.5: Programming Bots

Our first game:

Ideas• Tag• Treasure Hunt

Requirements• 1 bot that the player controls• 1 bot controlled with AI

Page 32: Designing games with kodu_game_lab_v1

Kodu ‘Make Game’ Resources

• Nicki Maddams: http://www.interactiveclassroom.net/?page_id=189– Games & Video: http://www.interactiveclassroom.net/

• Mr Dorling: http://bit.ly/xpWfJP• Macquarie University: getting started with Kodu Game

Lab http://bit.ly/AyXbdQ• Kodu Curriculum: http://bit.ly/x6JUGD• Kodu Trainers’ Manual: http://bit.ly/A5hR0S• Kodu Participants’ Manual: http://bit.ly/A8tlLh

Page 33: Designing games with kodu_game_lab_v1

Activity 2.5: Programming Bots

Page 34: Designing games with kodu_game_lab_v1

Module 2: Recap

We have covered:• We have completed Tutorials 1,2 & 3• We met the bots and objects• We have an understanding of the Kodu

Game Lab programming language• We have written our first program

Page 35: Designing games with kodu_game_lab_v1

Module 3

Page 36: Designing games with kodu_game_lab_v1

Activity 3.1: Generating Game Ideas

If we were going to start making our first second Kodu Game Lab game now (we’re not), what would you make?

Think of an idea for a Kodu Game Lab game, record your idea in your manual.

Page 37: Designing games with kodu_game_lab_v1

Activity 3.3: School Case Studies

Yarra Road Primary School•Grade 5 and 2 students working together in pairs•Cyber safety theme•Requirement to include a maze

Page 38: Designing games with kodu_game_lab_v1

Module 4

Page 39: Designing games with kodu_game_lab_v1

Activity 4.2: Game Design Patterns

• A way to describe design choices that reoccur in many games

• An explanation to why these design choices have been made

• A guide of how to make similar design choices in your own game project– What is required to make the pattern emerge– What consequences can the pattern have on game play?

Page 40: Designing games with kodu_game_lab_v1

Activity 4.2: Game Design Patterns

Name

Problem

Solution

Consequences

Page 41: Designing games with kodu_game_lab_v1

Activity 4.2: Kodu Game Lab Recipes

Code Recipes

Are language specific solutions to common coding problems.

Page 42: Designing games with kodu_game_lab_v1

Activity 4.2: Kodu Game Lab Recipes

• Game Space

• Game Progress

• Game Play

• Game Information

Page 43: Designing games with kodu_game_lab_v1

Activity 4.3: Game Space Patterns

Open World

Games using the open world design patterns allow the player to roam wherever they want. Open world games usually involve non-linear game play with players able choose the sequence in which they complete game tasks. The camera follows the player (which is the default with Kodu Game Lab) and therefore open world games are more suitable for single player games.

Page 44: Designing games with kodu_game_lab_v1

Activity 4.3: Game Space Patterns

Page 45: Designing games with kodu_game_lab_v1

Activity 4.3: Game Space Patterns

Race

Racing games require the player to race around a pre-defined track or space. Often there are checkpoints, with goal either to beat opponents or register a fast time. Racing games closely mirror real life races and are therefore a simple pattern to understand and to play.

Page 46: Designing games with kodu_game_lab_v1

Activity 4.3: Game Space Patterns

Page 47: Designing games with kodu_game_lab_v1

Activity 4.3: Game Space Patterns

Side Scrolling

A platform game is a game that the player can only move in 2D dimensions, it also called a side scroller. Side Scrolling games usually require the player to do lots of jumping, over gaps and over other obstacles that may or may not be moving. Side scrolling games were extremely popular in the 80s and have a nostalgic feel when played.

Page 48: Designing games with kodu_game_lab_v1

Activity 4.3: Game Space Patterns

Page 49: Designing games with kodu_game_lab_v1

Activity 4.3: Game Space Patterns

Maze

Using a maze as your game world turns your game into a puzzle requiring the player to use skill to find the correct route. Some mazes have a single route that needs to be discovered while other mazes have multiple possible routes.

Page 50: Designing games with kodu_game_lab_v1

Activity 4.3: Game Space Patterns

Page 51: Designing games with kodu_game_lab_v1

Activity 4.3: Game Space Patterns

Fixed Board

Some games spaces are small fixed areas. These game spaces are more suited to multiplayer games without split screen functionality. By having a set space and a fixed camera all players have the same perspective.

Page 52: Designing games with kodu_game_lab_v1

Activity 4.3: Game Space Patterns

Page 53: Designing games with kodu_game_lab_v1

Module 4: Recap

We have covered:• The importance of the game space• The role of game design patterns• The role of Kodu Game Lab Recipes• Explored common game space patterns

and recipes

Page 54: Designing games with kodu_game_lab_v1

Module 5

Page 55: Designing games with kodu_game_lab_v1

Activity 5.1: Game Progress Patterns

Time Limit

Time Limits require a player to complete an action or achieve a goal or alternatively sets a time that the player must survive in the game in order to win. Countdown clocks usually display the time remaining to give the game a sense of urgency. Some games feature time bonuses that are gained through achieving certain tasks.

Page 56: Designing games with kodu_game_lab_v1

Activity 5.1: Game Progress Patterns

Page 57: Designing games with kodu_game_lab_v1

Activity 5.1: Game Progress Patterns

Scores

Scores are a numerical representation of a player’s success. Points can be added to a players score for achieving certain goals or deducted for failed activities. A player’s score is usually displayed at all times during a game, often points achieved are displayed as an overlay as the goal is achieved adding to the sense of achievement and progress.

Page 58: Designing games with kodu_game_lab_v1

Activity 5.1: Game Progress Patterns

Page 59: Designing games with kodu_game_lab_v1

Activity 5.1: Game Progress Patterns

Health

The health of the players bot can also be used to indicate progress within the game. A health bar shows the current health of the character and provides immediate feedback to player.

Page 60: Designing games with kodu_game_lab_v1

Activity 5.1: Game Progress Patterns

Page 61: Designing games with kodu_game_lab_v1

Activity 5.1: Game Progress Patterns

Save Points

Save Points (also called Check Points) are convenient points in a game, usually after a hard section of the game has been completed where the game is either saved automatically or given the option. If the user fails during the next section of the game, the game is restarted from the save point rather than returning the player to the beginning of the game. This alleviates the problem of players needing to replay easier sections of the game in order to reach their sticking point.

Page 62: Designing games with kodu_game_lab_v1

Activity 5.1: Game Progress Patterns

Page 63: Designing games with kodu_game_lab_v1

Activity 5.1: Game Progress Patterns

Page 64: Designing games with kodu_game_lab_v1

Activity 5.1: Game Progress Patterns

Page 65: Designing games with kodu_game_lab_v1

Activity 5.1: Game Progress Patterns

Page 66: Designing games with kodu_game_lab_v1

Activity 5.1: Game Progress Patterns

Multiple Levels

Having multiple levels in a game is a great way to convey a sense of progress to the player. Games also use levels to increase the difficulty and/or introduce new game mechanics.

Page 67: Designing games with kodu_game_lab_v1

Activity 5.1: Game Progress Patterns

Video: Halox Dual

Page 68: Designing games with kodu_game_lab_v1

Activity 5.1: Game Progress Patterns

Page 69: Designing games with kodu_game_lab_v1

Activity 5.1: Game Progress Patterns

Page 70: Designing games with kodu_game_lab_v1

Activity 5.1: Game Progress Patterns

Page 71: Designing games with kodu_game_lab_v1

Activity 5.2: Game Play Patterns

Power Ups

Power-Ups give a time limited advantage to the player that picks them up. Power Ups require players to make strategic decisions about when to use them as power up need to be earned or require time to recharge.

Power Ups solve the problem of having to complete a variety of tasks of varying difficultly as they let the user have increased abilities to face harder challenges without making the tasks (without power ups) too easy.

Page 72: Designing games with kodu_game_lab_v1

Activity 5.2: Game Progress Patterns

Page 73: Designing games with kodu_game_lab_v1

Activity 5.2: Game Play Patterns

Transfer of Control

Some games allow the player to control different characters at different stages of the game. This could include when a player’s character enters a car or boards a boat. The new character would usually have different abilities and therefore the game play would be different resulting in greater interest for the player.

Page 74: Designing games with kodu_game_lab_v1

Activity 5.2: Game Play Patterns

Page 75: Designing games with kodu_game_lab_v1

Activity 5.2: Game Play Patterns

Big Boss

Games or levels in games often finish with a battle with a Big Boss. The Big Boss is a much more difficult opponent and often has different abilities to the previous opponents. Battling the Big Boss is a great way to build a sense of progress and to give closure to game.

Page 76: Designing games with kodu_game_lab_v1

Activity 5.2: Game Play Patterns

Page 77: Designing games with kodu_game_lab_v1

Activity 5.2: Game Information Patterns

Alarms

Alarms can be used in games to warn players of danger. They can be used indicate that a phase of the game is about to begin or end. Different sounding alarms can be used to notify the player of different events.

Page 78: Designing games with kodu_game_lab_v1

Activity 5.2: Game Information Patterns

Page 79: Designing games with kodu_game_lab_v1

Activity 5.2: Game Information Patterns

In Game Information

Dialog boxes can be used to display information to the user, this information may simply notify the user of their progress in the game or it may provide information that the player needs to successful complete the game.

Page 80: Designing games with kodu_game_lab_v1

Activity 5.2: Game Information Patterns

Page 81: Designing games with kodu_game_lab_v1

Module 5 Recap

We have covered:• Game Progress Design Patterns and

Recipes• Game Play Patterns and Recipes• In Game Information Patterns and Recipes

Page 82: Designing games with kodu_game_lab_v1

Module 6

Page 83: Designing games with kodu_game_lab_v1

Activity 6.2: Troubleshooting and Debugging

Identifying risks: Can we do this in Kodu?

There are many things that are possible or impossible to create with Kodu Game Lab. When designing a new game it is crucial that the game designer identifies the parts of the game that may not be possible and creates them first, that way if the game is impossible to create time has been wasted creating the other parts.

Page 84: Designing games with kodu_game_lab_v1

Activity 6.2: Troubleshooting and Debugging

Debugging: Why isn’t this working?

When the game is playing as expected there are debugging lines that can be turned on. As the name suggests the Debugging Lines of Sights and Sounds will show where the bot can and can’t see and hear and is very useful in discovering why any code is not working as expected.

Page 85: Designing games with kodu_game_lab_v1

Activity 6.2: Troubleshooting and Debugging

Copy, Paste, Clone: Is there a quicker way to do this?

When creating multiple bots with the same programming it is quicker and easier to clone and paste the bot or object. Bots and objects can also be cut and pasted between projects.

Page 86: Designing games with kodu_game_lab_v1

Activity 6.2: Troubleshooting and Debugging

Using Versioning: Whoops I changed something I shouldn’t have!

When saving major changes to Kodu Game Lab games it useful to save it as a new version. This effectively creates backups of your game which is useful if you happen to make changes that cause your game to stop working.

Page 87: Designing games with kodu_game_lab_v1

Activity 6.2: Troubleshooting and Debugging

Using the Resource Meter: Why is my game running so slowly?

Kodu Game Lab is for making small games and when games get too large Kodu starts to slow down, often making the game unenjoyable and unplayable.

Page 88: Designing games with kodu_game_lab_v1

Activity 7.2: Getting Help Online

• Workshop Resourceshttp://media.planetkodu.com/workshop/resources.html

• Planet Kodu

http://planetkodu.co

• Kodu Kwestions

http://planetkodu.com/kwestions

Page 89: Designing games with kodu_game_lab_v1

HELP??

Download Kodu Game Lab

http://fuse.microsoft.com/kodu

Join the Kodu community at:

http://planetkodu.com