Game Design with Kodu Game Lab Introductions • Richard Olsen Assistant Director, ideasLAB • Ashley Spagnol Eltham Primary School 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 Kourse Overview Module 3 Generate Game Ideas Look at School Examples from Australia Design templates used by students Module 4 Design Patterns and Code Recipes Game Space Kourse Overview Module 5 Game Progress Game Play Game Communication Module 6 Design Process Debugging and Troubleshooting Kourse Overview Module 7 Next Steps Getting Help Online Kodu Kup Module 1 Kodu Team Hello Activity 1.1 Introduce Yourself If you were a game character what would you be like? 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 Activity 1.2 Kodu is a visual programming language made specifically for creating games. It is designed to be accessible for children and enjoyable for anyone. The visual nature of the language allows for rapid design iteration using only an Xbox game controller for input (mouse/keyboard input is also supported). What is Kodu Game LAB? • Visual programming language aimed at kids for rapid game development • 3D worlds and game play • Xbox Controller or Keyboard and Mouse • Currently in Technical Preview • Small Games What does it take to teach kids to program? • What has been excluded: – Loops – Branching – Variables – Typing – Syntax Errors What does it take to teach kids to program? • So what has been left in? – Objects – Message Passing – Sensors – Filters – Actuators – Modifiers Huh? What CAN YOU MAKE? Activity 1.3 What is a game? Record the names of five (5) of your favourite games in the space provided in your manual. Activity 1.3 What are the key factors that makes a game, a game? 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. Activity 1.3 “If you’ve written a software subroutine that takes more than ten arguments, look again. You probably missed a few. ” Alan Kay “A game is a problem-solving activity, approached with a playful attitude.” Jesse Schell 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. Activity 1.4 Share what you find…… Module 1: Recap We have covered: - Rationale for using Kodu Game Lab - The definition of a game - Examples of games made with Kodu Game Lab Module 2 Activity 2.1: Tutorial 1 Objective: Kodu wants to visit the castle. Activity 2.2: Tutorial 2 Activity 2.2: Tutorial 3 Activity 2.3: Getting to Know the Bots and Objects Activity 2.4: Programming Bots Physical Sensors Activity 2.4: Programming Bots Physical Actions Activity 2.4: Programming Bots WHEN sensor filter DO action modifier Activity 2.5: Programming Bots Our first game: Ideas • Tag • Treasure Hunt Requirements • 1 bot that the player controls • 1 bot controlled with AI Activity 2.5: Programming Bots 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 Module 3 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. Activity 3.2: Game Ideas 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 Activity 3.3: School Case Studies Laurimar Primary School •Worked in pairs •Provided assessment criteria Activity 3.3: School Case Studies Eltham Primary School Activity 3.3: School Case Studies Elsternwick Primary School Module 3: Recap We have covered: • We have started thinking about the games we may make. • We have learnt how some schools have used Kodu Game Lab • We have Module 4 Activity 4.1: Designing Games 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? Activity 4.2: Game Design Patterns Name Problem Solution Consequences Activity 4.2: Kodu Game Lab Recipes Code Recipes Are language specific solutions to common coding problems. Activity 4.2: Kodu Game Lab Recipes • Game Space • Game Progress • Game Play • Game Information 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. Activity 4.3: Game Space Patterns 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. Activity 4.3: Game Space Patterns 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. Activity 4.3: Game Space Patterns 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. Activity 4.3: Game Space Patterns 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. Activity 4.3: Game Space Patterns 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 Module 5 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. Activity 5.1: Game Progress Patterns 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. Activity 5.1: Game Progress Patterns 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. Activity 5.1: Game Progress Patterns 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. Activity 5.1: Game Progress Patterns Activity 5.1: Game Progress Patterns Activity 5.1: Game Progress Patterns Activity 5.1: Game Progress Patterns 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. Activity 5.1: Game Progress Patterns Video: Halox Dual Activity 5.1: Game Progress Patterns Activity 5.1: Game Progress Patterns Activity 5.1: Game Progress Patterns 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. Activity 5.2: Game Progress Patterns 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. Activity 5.2: Game Play Patterns 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. Activity 5.2: Game Play Patterns 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. Activity 5.2: Game Information Patterns 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. Activity 5.2: Game Information Patterns Module 5 Recap We have covered: • Game Progress Design Patterns and Recipes • Game Play Patterns and Recipes • In Game Information Patterns and Recipes Module 6 Activity 6.1: Game Ideas 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. 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. 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. 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. 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. Activity 7.1: Next Steps How do you plan to use Kodu Game Lab at your school? Activity 7.2: Getting Help Online • Workshop Resources http://media.planetkodu.com/workshop/resources.html • Planet Kodu http://planetkodu.co • Kodu Kwestions http://planetkodu.com/kwestions HELP?? Download Kodu Game Lab http://fuse.microsoft.com/kodu Join the Kodu community at: http://planetkodu.com