Post on 05-Jun-2018
transcript
Getting Started with
MAS/INFO111 Macquarie University
KODU FOR INFO/MAS 111 ................................
LOAD A WORLD ................................................................
THE MAIN SCREEN ................................................................
THE LOAD SCREEN ................................................................
SORTING THE WORLD LIST ................................
USE TAGS TO FILTER THE WORLD LIST ................................
NAVIGATING WITHIN A WORLD ................................
STANDARD PC NAVIGATION CONTROLS ................................
ADD OBJECTS TO THE WORLD ................................
THE TOOL PALETTE ................................................................
ADD AN APPLE TO THE WORLD ................................
ADD A CHARACTER TO THE WORLD ................................
GETTING HELP ON INDIVIDUAL OBJECTS
MOVING AND REORIENTING CHARACTERS
CREATE A VERY BASIC PROGRAM ................................
ACTIVATE THE OBJECT TOOL AND CREATE A
OPEN THE PROGRAM EDITOR ................................
THE SIMPLEST POSSIBLE PROGRAM: “JUST MOVE
DECIDING WHEN TO DO SOMETHING ................................
CHANGE “MOVE ALWAYS” TO “MOVE WHEN YOU SEE SO
“MOVE FORWARD WHEN YOU SEE SOMETHING GREE
MORE EXAMPLES ................................................................
GETTING HELP WHILE PROGRAMMING
LANDSCAPING: MOVING GROUND UP OR DOWN
THE UP/DOWN TOOL ................................
CREATING NEW TERRAIN ................................
THE ADD/REMOVE GROUND TOOL ................................
CHOOSING TERRAIN TYPE ................................
HOW TO MAKE ROUGH OR CURVY GROUND
ACTIVATE ROUGH OR CURVY TOOL ................................
MAKE ROUGH OR CURVY GROUND ................................
FOR FURTHER EXPLORATION ................................
Getting Started with Kodu Game Lab
MAS/INFO111 Macquarie University – S2 2010 (Rev for PC)
...............................................................................................................................
................................................................................................
................................................................................................
................................................................................................
................................................................................................................................
............................................................................................................................
................................................................................................
................................................................................................
..........................................................................................................................
................................................................................................
................................................................................................................................
..............................................................................................................................
AL OBJECTS ................................................................................................
NG CHARACTERS ................................................................................................
................................................................................................
OOL AND CREATE A KODU ................................................................................................
................................................................................................................................
JUST MOVE” ................................................................................................
................................................................................................
MOVE WHEN YOU SEE SOMETHING” ................................................................
U SEE SOMETHING GREEN” ................................................................................................
................................................................................................
ROGRAMMING................................................................................................
GROUND UP OR DOWN ..........................................................................................
................................................................................................................................
...............................................................................................................................
.............................................................................................................................
................................................................................................................................
CURVY GROUND ................................................................................................
...........................................................................................................................
...........................................................................................................................
................................................................................................................................
Game Lab
...............................2
...............................................3
................................................... 3
................................................... 3
.......................................... 4
............................ 4
......................................................5
....................................................... 5
..........................5
................................................... 5
.................................... 6
.............................. 7
..........................................8
......................................9
.................................................. 10
....................................... 10
................................... 10
........................................ 11
............................................ 12
................................................. 12
................................. 13
................................................... 13
.......................................... 14
.......................... 15
............................................ 15
............................... 16
............................. 16
........................................ 17
................................. 18
........................... 18
........................... 18
.................................... 18
Page 2 Getting Started with Kodu
HOW TO MAKE FLAT AREAS ........................................................................................................................... 19
PICK THE FLATTEN TOOL .......................................................................................................................................... 19
MAKE FLAT AREAS ................................................................................................................................................. 19
ADDING WATER TO YOUR WORLD ................................................................................................................. 20
MAKE LAKES AND RIVERS ........................................................................................................................................ 20
BUILDING YOUR FIRST GAME IN KODU .......................................................................................................... 21
GETTING STARTED ................................................................................................................................................. 21
BASIC MECHANICS OF SPACE INVADERS ...................................................................................................................... 21
CREATING ENEMIES ................................................................................................................................................ 23
OTHER FEATURES ................................................................................................................................................... 27
RESULTS .............................................................................................................................................................. 28
ASSIGNMENT NOTES .............................................................................................................................................. 28
KODU FOR INFO/MAS 111
Kodu is a videogame building environment. This very simple interface hides a huge amount of complex code,
allowing us to focus on concepts of design and mechanics rather than syntax and debugging. That said,
because of how much this program ‘does for you’ it isn’t as flexible as something like XNA, Unity or
UnrealEditor that some of you may be familiar with.
The first concept that Kodu assists us with is generating a 3D world. All the levels you will create for this
course will begin as a 3D world simply by loading a blank world in the program. The next step is to add some
terrain, whether it is an island or a pinball table—the word ‘terrain’ is used to describe the surface on which
your game occurs. The objects you can add into your world are assets built into Kodu, so no you cannot
import a model made in another editor and animate it here. You can always make a 2D game by fixing the
camera to one side, and only allow the character(s) to move in 2 dimensions.
The core of Kodu is the programming. Don’t be alarmed by this word, this is programming unlike anything
you’ve seen, and probably will see again. Kodu relies on a rule-based behaviours system that is accessed via
the same graphical interface as the rest of the environment. Fundamental behaviours are stored in individual
tiles, using plain English, that you can chain together based on a ‘When… Do…” clause structure. There is no
typing, and you’ll be hard-pressed to actually cause the program to crash (it might not do what you want, and
it might go into a loop, but I haven’t ever made it crash.)
So work your way through this booklet, keeping in mind that there may be more here than you can get
through in one week. Feel free to experiment as well, this environment is designed to be a rapid prototyping
model, so you can try things very quickly and see if they work.
This manual was originally written for use on an XBox 360, not a PC with keyboard and mouse controls. So,
occasionally there may be references to pressing a button on the controller that obviously doesn’t make sense
when using a computer. Most of the controls are fairly intuitive, though there will be a few that aren’t
‘Windows standard.’ You should be able to figure out most of the controls yourself after reading through this
manual, but if you still have trouble, speak to your practical instructor.
LOAD A WORLD
THE MAIN SCREEN
The Main screen provides four options:
- Resume: open whatever level I last edited
- Load World: load a level from the hard drive
- Community: download levels from the Internet
- Options: Self-explanatory
- Help
- Quit Kodu
We’re going to load a level from the local hard drive. Use the
mouse, click load world.
THE LOAD SCREEN
The load screen shows eight games at a time. Details for each game are below the current game tile.
You can show all the available worlds, or selected categories by using the large buttons near the top of the
screen.
PC Note: you can scroll through this menu either by using the left or right arrow keys, or clicking the green
triangles on either side of the screen. Most screens in Kodu follow this convention of keyboard option and on-
screen buttons. To launch the game, click the world once, then click Play on the pop-out menu.
World list
Left/right arrows on
keyboard or screen
to scroll
Current Game
Details for
Current Game
SORTING THE WORLD LIST
You can sort worlds by date, creator or
make it easier to find a world created by your friend
or created on a certain day. Press the
open the sort menu. Use the left stick to select
different menu items and press to sort.
To close the sort menu without sorting, press the
button.
PC Note: You will find the icon on the screen
which you can click with the mouse to activate the
same functions for sorting. This is another fairly
standard control convention for the PC version.
USE TAGS TO FILTER THE WORLD LIST
Sometimes the list of worlds is long and you wan
focus on a shorter list. Enter the tag menu.
may have several tags. Tags indicate, among other
things, the type of game (racing, shooter, puzzle, etc.)
To show only worlds having a given tag, press the X
button to open the tag menu. Select a particular tag
using the left stick, and press A to choose that tag. The
list of worlds will now show only worlds that have that
tag.
PC Note: Click on the icon then click the category you
want. Hit esc to show the games in that category
creator or title. This can
created by your friend
button to
Use the left stick to select
to sort.
To close the sort menu without sorting, press the
icon on the screen
which you can click with the mouse to activate the
same functions for sorting. This is another fairly
standard control convention for the PC version.
THE WORLD LIST
Sometimes the list of worlds is long and you want to
Enter the tag menu. Each world
may have several tags. Tags indicate, among other
things, the type of game (racing, shooter, puzzle, etc.)
To show only worlds having a given tag, press the X
a particular tag
using the left stick, and press A to choose that tag. The
list of worlds will now show only worlds that have that
icon then click the category you
want. Hit esc to show the games in that category
Page 5 Getting Started with Kodu
NAVIGATING WITHIN A WORLD
Let’s look at a very basic world so that we can learn how to move around and activate different modes.
1. Open the load screen.
2. Use the large category buttons to show only the Lessons worlds.
3. Open any world. You open the world by left clicking on it and selecting Play.
When you open a level, it is in “play mode.” How it looks and how you move around will depend on the game.
However, the following is pretty standard across all games:
STANDARD PC NAVIGATION CONTROLS
The cursor in the PC version is simply your normal Windows mouse cursor, not the white circle.
- Zoom the Camera with the mouse scroll wheel.
- Change the camera angle by Right-Click and Drag. (although note you often don’t have full 360 on the
camera – it may be limited)
When Editing you can move around using the move camera
command. In the move camera command you can zoom and
change the camera angle as above, plus move the camera by left
click and drag or use the WASD keys as in most 3D games. When
using any of the other editing commands you can temporarily access the move camera command by holding
down the space bar and then using any of the above camera operations.
ADD OBJECTS TO THE WORLD
THE TOOL PALETTE
When you first launch a world, you are in Play Mode. When you want to edit the world, you need to first press
ESC on the keyboard to switch to edit mode (also in the edit mode is the way back to the main menu).
Open the world we used on the previous lesson: “Empty Stadium v01.” The world will open in play mode. Not
that there is anything to do.
Press ESC to enter Edit mode.
The tool palette at the bottom of the screen lets you choose a new tool. Simply click which tool you would like
to use. The icon for tool you have selected will remain larger than the other tools in the palette.
With the object tool active, you can move it around the world with the mouse. Select the Object tool, and
notice how you can now ‘highlight’ objects in your world with the mouse cursor (well, you could if there were
any there, so let’s add one).
ADD AN APPLE TO THE WORLD
With the object tool still active, left click somewhere in your game
world. (Careful where you left click – that’s where the object will
appear). The object radial menu will appear
.Navigate this radial menu with the mouse. Note that a section
with a dark pointed outer edge has more objects nested inside.
Select the apple in the upper-right area of the menu by left clicking
it to add an apple to the scene. Hit escape to close the radial menu
If you place your cursor on the apple, the apple will be surrounded
by a yellow glow. If you move your cursor away it will stop glowing.
Some of the items in the Add Object Menu - such as the tree - will
open smaller menus.
Tool Palette
Selected Tool
Page 7 Getting Started with Kodu
ADD A CHARACTER TO THE WORLD
Let’s add another object:
- Move the cursor to a clear place in the world
- Left-click to open the Add Object menu
- Select the icon with the robots on it, as shown in the
image to the right
- Clicking on this icon will open another menu (below,
right.) This menu allows you to pick a specific
character.
NOTE: this is an example of a group menu. Group menus
are used to organize the menu items so they are easier to
navigate. You can identify a group menu because it has a
point on it (above right)
- Select the Cycle character (highlighted at right)
- Left-click to insert the Cycle character into your world.
GETTING HELP ON INDIVIDUAL OBJECTS
Kodu provides interactive help for all the characters and objects. If you’re not sure what a character does
you want to see examples of a how you can use it,
from a library of examples featuring that character.
Whenever the Add Menu is open (below,) you can press
selected character. PC Note: sometimes pressing th
activate the XBox-controller equivalent.
- Choose the character tool:
- Move the cursor to a place where you’d like to put a
character
- Press to open the Add Object menu (right)
- Navigate within the Add Object Menu to find a character or
object you’d like help for
- With that menu item active (don’t insert the character yet,)
press to open the help for that character
VIDUAL OBJECTS
provides interactive help for all the characters and objects. If you’re not sure what a character does
you can use it, you can open the Help to read about the character and pick
from a library of examples featuring that character.
Whenever the Add Menu is open (below,) you can press Y on the keyboard to get help on the currently
: sometimes pressing the corresponding letter (A, B, X, Y) on the keyboard will
controller equivalent.
Move the cursor to a place where you’d like to put a
to open the Add Object menu (right)
d Object Menu to find a character or
With that menu item active (don’t insert the character yet,)
to open the help for that character
provides interactive help for all the characters and objects. If you’re not sure what a character does, or
open the Help to read about the character and pick
to get help on the currently
e corresponding letter (A, B, X, Y) on the keyboard will
Page 9 Getting Started with Kodu
MOVING AND REORIENTING CHARACTERS
It’s common to create a character in one position and then realize
that he would work better somewhere else. It’s also common to
want to change which direction a character is facing. For both of
these, it is useful to understand the different selection states that a
character may be in: unselected, selected, and active.
Moving characters is easy.
- Select the Object tool. If you don’t have a character in the
scene, add one now.
- Move the cursor under the character that you want to
move. The character should change from its unselected
color (above right) to its active color yellow (middle right.)
- Left click and drag to pick up the character. It should
change to pink - the selected color (below right)
When a character is selected (pink) it “sticks” to the cursor.
To rotate the character, right-click the character and choose Rotate
from the menu. (There are lots of other options in the Right-click
menu worth checking out.)
Try moving the character around and reorienting it.
.
NOTE: if you have a lower-end graphics card, you will not see the
glow effect on the character - but the cursor will still change color.
Page 10 Getting Started with Kodu
CREATE A VERY BASIC PROGRAM
Return to the main menu and don’t save any changes. Now re-open Empty Stadium v01. You may use any
other level for this lesson, but it will be easiest if the level you use doesn’t have any other characters in it.
ACTIVATE THE OBJECT TOOL AND CREATE A KODU
Press ESC to activate edit mode. Choose the Object tool
from the palette.
Now use the character add menu to add a Kodu to the
scene. If you do not remember how to do this, please see
the “Add ” section above.
Keep the object tool active for the next steps. The object
tool serves to edit programs as well as adding and removing objects.
OPEN THE PROGRAM EDITOR
To enter the program editor, right click on your Kodu robot. Click “Program” from the menu that appears.
Here we see the program editor showing an empty program or, more precisely, a program consisting of one
rule, which does nothing.
I mentioned that this program contains one rule. A rule tells the bot what to do and when
The first part of a rule is the When Clause
make the bot react. You can say things like ‘when I see something red’ or ‘when I bump into a tree’ or even
‘when 2 seconds have passed.’
The second part of the rule is the Do Clause
activates or ‘fires’. Bots can do all kinds of things, such as shoot, move, or eat. Different bots have different
capabilities.
The plus sign in the rule lets you add more elements to the rule. We’ll talk more about that in a later section.
THE SIMPLEST POSSIBLE PROGRAM
On the PC, the pencil cursor still appears to show you which rule you are
currently editing, don’t worry about it too
To edit a rule simply click the + next to the clause you wish to edit
should see the Verb Menu (below right.) This menu shows different things
this bot can do.
Choose the move verb, and insert it into your program
program should now look like the picture on the bottom right.
The verb menu lets you specify what the bot is going to do when this rule
activates. Since we haven’t said when the rule should activate, it will be
active all the time.
In effect, what our program says is “always move.”
Since we didn’t say which direction or how to move, the bot will
direction.
To run your program, press ESC on the keyboard twice (ESC often
substitutes for the ‘Back’ convention that
will close the programming UI, return to the tool menu, and then return
to play mode. You should see your Kodu
Pencil Cursor
Do Clause
(empty)
When
Clause
(empty)
I mentioned that this program contains one rule. A rule tells the bot what to do and when to do it.
Clause. It says when something is going to happen; the condition that will
make the bot react. You can say things like ‘when I see something red’ or ‘when I bump into a tree’ or even
Do Clause. It specifies what the actor should do when the ‘when part’
activates or ‘fires’. Bots can do all kinds of things, such as shoot, move, or eat. Different bots have different
e rule lets you add more elements to the rule. We’ll talk more about that in a later section.
E PROGRAM: “JUST MOVE”
On the PC, the pencil cursor still appears to show you which rule you are
currently editing, don’t worry about it too much.
To edit a rule simply click the + next to the clause you wish to edit and you
should see the Verb Menu (below right.) This menu shows different things
insert it into your program by clicking. Your
should now look like the picture on the bottom right.
The verb menu lets you specify what the bot is going to do when this rule
we haven’t said when the rule should activate, it will be
In effect, what our program says is “always move.”
on or how to move, the bot will pick a
ESC on the keyboard twice (ESC often
substitutes for the ‘Back’ convention that indicates on the XBox); this
will close the programming UI, return to the tool menu, and then return
Kodu move in a straight line.
Rule
to do it.
. It says when something is going to happen; the condition that will
make the bot react. You can say things like ‘when I see something red’ or ‘when I bump into a tree’ or even
It specifies what the actor should do when the ‘when part’
activates or ‘fires’. Bots can do all kinds of things, such as shoot, move, or eat. Different bots have different
e rule lets you add more elements to the rule. We’ll talk more about that in a later section.
DECIDING WHEN TO DO SOMETHING
This lesson builds on the previous one. If you haven’t done it, please
do it now.
Activate the Object tool from the palette. Left click the gameworld
to bring up the Character Add radial menu.
Now use the Character Add menu to add
don’t remember how to do this, please see
CHANGE “MOVE ALWAYS” TO “MOVE WHEN YOU SE
Your scene should have one Kodu, and his program should look like this.
program, use the Object tool, right click on the character, and select Program.
matter what.” We want to change it to say
- Click the When clause in the rule to bring up the conditional
statements.
This shows you things that the bot can react to: he can react to things he
sees, hears, or touches, controller input
- Click see from the sensor menu
menu.
- Your program should look like this:
Go ahead and try your program now. Press
the program editor, and press the start
the green Play arrow in the palette) to run the program.
If you run this program in an empty world,
move, because he cannot see anything
tree, or anything else. Note that the ground and sky don’t count as objects.
empty, so depending where your Kodu starts he may see something.
can delete it. When you do, your kodu shouodn’t move.
SOMETHING
This lesson builds on the previous one. If you haven’t done it, please
Activate the Object tool from the palette. Left click the gameworld
to bring up the Character Add radial menu.
dd menu to add a Kodu to the scene. If you
t remember how to do this, please see Add objects to the world.
TO “MOVE WHEN YOU SEE SOMETHING”
, and his program should look like this. (Reminder: to see a ch
right click on the character, and select Program. This program says “move no
We want to change it to say “when you see anything, move.”
Click the When clause in the rule to bring up the conditional
This shows you things that the bot can react to: he can react to things he
controller input and so on.
from the sensor menu to insert it in the
our program should look like this:
Go ahead and try your program now. Press (ESC) to close
start button (ESC again or
to run the program.
world, Kodu will not
, because he cannot see anything. If there are no objects in the world, use the Add menu to add an apple,
Note that the ground and sky don’t count as objects. The empty stadium isn’t quite
empty, so depending where your Kodu starts he may see something. There’s a tree on the far sode
can delete it. When you do, your kodu shouodn’t move.
(Reminder: to see a character’s
This program says “move no
If there are no objects in the world, use the Add menu to add an apple,
The empty stadium isn’t quite
There’s a tree on the far sode – see ifyou
Page 13 Getting Started with Kodu
“MOVE FORWARD WHEN YOU SEE SOMETHING GREEN”
We’d like to change our program so that Kodu only moves when
he sees something green. To do this, we will add to the When part
of the rule. Open the program editor and put the pencil just after
“See” tile. (see right)
Click the + that follows “See” in the rule. Since you already have a see sensor in your program, opening the
menu after this sensor gives you options for modifying the see operation. You don’t usually have to think
about this; as you build a program, the menus will change
to show the right options automatically.
Let’s make our Kodu respond only to green objects:
- Select the Colors menu from the modifier radial
menu
- Select Green and add it into your program.
-
Your program should now look like the below. It means
“when you see anything green, move.”
MORE EXAMPLES
If you see a green Kodu, move.
If you see a green Kodu, move away from it. The rule assumes that you move away from the thing you saw.
Other modifiers include a ‘target’ aspect, ie. causing damage to itself or the thing it bumps into.
Try surrounding your poor initial Kodu with green Kodus and see what happens. Note that Kodu’s vision is not
360o and he doesn’t move forever with the program you’ve given him.
GETTING HELP WHILE PROGRAMMING
The program editor provides help for all the programming tiles. Whenever
you are looking at a tile in a tile selector menu, you can press
keyboard) to get help on that specific tile. The help system will also show
you help for the other tiles in your program. You can also find related
examples related to your program that you can easily insert into your
program.
- Select a character and press the
editor (right)
- Enter the program shown (or any program)
- With a selector menu open and a tile
selected (below right) press the
button for help on the selected tile
- The help for the selected tile will be displayed
- Note that the other tiles in your current row (
the top of the help screen. You can see help for those tiles by moving the left stick left and right.
- Examples related to your program are shown below. Move the stick up and down to select an
example and press to insert the code into your program
- You can scroll through the various examples using the mouse scroll wheel.
ROGRAMMING
The program editor provides help for all the programming tiles. Whenever
tile selector menu, you can press (Y on the
to get help on that specific tile. The help system will also show
n your program. You can also find related
examples related to your program that you can easily insert into your
Select a character and press the button to open the program
Enter the program shown (or any program)
r menu open and a tile
) press the
button for help on the selected tile
The help for the selected tile will be displayed
Note that the other tiles in your current row (see and Kodu in the below picture) will also appear at
the help screen. You can see help for those tiles by moving the left stick left and right.
Examples related to your program are shown below. Move the stick up and down to select an
example and press to insert the code into your program
ough the various examples using the mouse scroll wheel.
in the below picture) will also appear at
the help screen. You can see help for those tiles by moving the left stick left and right.
Examples related to your program are shown below. Move the stick up and down to select an
Page 15 Getting Started with Kodu
LANDSCAPING: MOVING GROUND UP OR DOWN
Making hills and valleys is fun, easy, and allows you to set up
interesting game mechanics. The shape of the ground affects
character behavior: hills block vision, and some characters can’t
climb steep hills.
THE UP/DOWN TOOL
From the Tool menu select the Up/Down tool.
You will see a flashing area on your terrain. It’s purple in the
picture at right but the color depends on the terrain. This is
your brush; it shows which part of the ground the tool will
affect. Most of the tools that affect terrain work like this.
You can change the size of the brush by pressing the Right
and Left arrow keys. (Notice the control tool tips on the left
side of the screen.) You can change the brush shape by
clicking on the blue images near the tool icon in the tool list.
Position your brush in an empty area. Left click briefly and
release it. You should see the area beneath the brush rise to
form a small plateau (below right).
You can lower terrain by right clicking.
You can also move the brush while you are raising or
lowering the ground. Try holding the right or left click while
moving the mouse cursor - with practice you can paint
mountain ranges and hills.
Brushes come in many shapes. With one of the terrain tools
selected, click the blue shapes in the top right of the icon to
bring up the brush menu. Some of the brushes have
different shapes and some of them work very differently.
Play around with different brushes to see how they work.
Page 16 Getting Started with Kodu
CREATING NEW TERRAIN
Kodu includes several stock worlds for you to use, but
sometimes you need a custom shape to make the
game you want. Using the Ground Brush tool, you can
make worlds of many different sizes and shapes. The
shape of the world is very important to game design
and can make simple game programs much more
interesting.
Clicking on the small icons just above and left of the ground brush lets you choose terrain colour, the blue ones
again control the brush shape
For this lesson, please open the Empty World v01 world.
THE ADD/REMOVE GROUND TOOL
Press the ESC to bring up the Tool Menu. This will
pause the game. Select the Ground Brush tool.
You will see a flashing square on your terrain. This
is your brush; this shows which part of the ground
the tool will affect. You can change the size by
using the right and left arrow keys.
Let’s get started:
- Move the brush to where you want to
create some terrain. You may want to
zoom out using the mouse wheel.
- Adjust the size of the brush with the arrow
keys
- Left click briefly
- Notice that you have created a new island
You can hold down the mouse button while moving
the mouse to continue adding terrain in a line.
Deleting terrain is just as easy:
- Position your brush so that it overlaps
existing terrain
- Right click
CHOOSING TERRAIN TYPE
Kodu includes many different building blocks for your terrain
different material and using it to extend the world
- With the Add Terrain tool selected, click the multi
- A list of cubes will appear
- Scroll back and forth in this list using the
- Pick a material with the button
Now that you have chosen a new material, create some more terrain using this material
- Use the mouse wheel to zoom out a bit
- Hold down the left mouse button
- Move the left stick to paint new terrain
includes many different building blocks for your terrain; we call these blocks materials. Let’s
extend the world.
With the Add Terrain tool selected, click the multi-coloured blocks on the left side of the icon.
Scroll back and forth in this list using the arrow keys
button (A on keyboard or left click.)
Now that you have chosen a new material, create some more terrain using this material
to zoom out a bit
left mouse button
Move the left stick to paint new terrain
. Let’s pick a
coloured blocks on the left side of the icon.
Page 18 Getting Started with Kodu
HOW TO MAKE ROUGH OR CURVY GROUND
The terrain you created above was flat – you may want something a bit more three dimensional. You can use
the Up/Down tool we’ve already seen or you can get some more dramatic effects from the Roughen tool.
The Roughen tool randomly changes the height of the terrain under the brush. It has two variants: spiky
creates truly random, spiky effects, and hilly creates a more rounded, softer look.
Use your world from the previous section
ACTIVATE ROUGH OR CURVY TOOL
Press the start button to bring up the Tool Menu select the Roughen
tool. You will see a flashing area on your terrain. This is your brush; this
shows which part of the ground the tool will affect.
MAKE ROUGH OR CURVY GROUND
Use the left mouse button to spike the terrain and the right
mouse button to make the terrain hilly. While you could do this
with the up/down tool and a very small brush, this tool makes it
easier to add visual detail over a large area.
If an area gets to spiky, you can smooth the terrain under the
brush by pressing the middle mouse button.
You can choose more brushes in the same way as the other
terrain brushes.
FOR FURTHER EXPLORATION
Try using the rough/curvy tool to create different visual effects: Create an ocean with a jagged bottom and a
smooth beach (see below for adding water). Make a world with a flat area, a smooth hilly area, and spiky
mountains. Create a mountainous terrain with a narrow path going through it - perhaps by using the
rough/curvy tool together with the flatten tool. Create a world with a mountain and a ramp that lets a
character move from the bottom all the way up to the peak of the mountain.
Page 19 Getting Started with Kodu
HOW TO MAKE FLAT AREAS
You will often find that you need a flat “arena” in which your gameplay can happen. The flattening tool makes
it easy to level an area to a consistent height.
PICK THE FLATTEN TOOL
Press the start button to bring up the Tool Menu select the “Create
Flat Areas and Ramps” tool. You will see a flashing area on your
terrain. This is your brush; this shows which part of the ground the
tool will affect. This brush behaves like the other terrain brushes
discussed earlier.
MAKE FLAT AREAS
When you paint with the flattening tool, it looks at the height
where you start painting and then raises (or lowers) everything
the brush touches to that same height. If you start at a
mountain peak and drag the brush across the terrain, you will
create a flat area at the height of that peak. If you start in a
deep valley, the brush will lower ground to that level.
Move the cursor to the location where you would like to start
flattening. Left-click to start flattening and hold it down while
you move the mouse to paint a flat area. Notice that ground is
lowered or raised as the brush touches it to reach the desired
height.
Page 20 Getting Started with Kodu
ADDING WATER TO YOUR WORLD
When you add water to a world, it is as though you are pouring the
water onto the ground at a particular point; the water will pool in
low-lying areas to form lakes and streams.
Select the “Water Tool” tool.
MAKE LAKES AND RIVERS
Choose a spot to pour water onto the
ground. Left click to add water at the cursor
and right click to remove (lower) the water.
Use this tool by moving the cursor anywhere
where you want the water to rise or sink.
Different bodies of water can have different
types. If two bodies of water touch, they will
take on the same appearance.
Use the left mouse button on some water to
raise the water level and the right mouse
button to lower it. Notice how the water
follows the shape of the terrain, pooling in
lower areas and stopping at higher areas.
There are different types of water. To change the type you are creating, click the coloured blocks above the
Water Tool icon. This type will apply to any new water that you create. To change existing water to use this
type, move the cursor over that water and press the middle mouse button (click the wheel) to set the type of
that water.
Page 21 Getting Started with Kodu
BUILDING YOUR FIRST GAME IN KODU
So far you’ve been tinkering with the tools that make up Kodu Game Lab. The next few pages are a step-by-
step instruction in creating a basic, working videogame. A good way to learn about a new development
environment is to attempt to clone an existing game that you are very familiar with. So we have chosen Space
Invaders as our model to clone in the Kodu environment. If you haven’t played Space Invaders for a while, go
to this link and play for a few minutes to remind yourself of all the various mechanics involved:
http://www.freespaceinvaders.org/
GETTING STARTED
Even with a game as simple as Space Invaders, and in an environment as intuitive as Kodu, there are
fundamental steps of planning to be done before you start touching any of the tools. Planning saves you a lot
of wasted time later on, and focuses your project so you can be sure you are done when you think you are
done. With this project, we already have a template game to work from, so the planning stage is easier—the
biggest reason to clone a game is to shorten your initial design time, and let you get into the development as
quickly as possible!
The process we will use throughout this course is fairly informal, but is most like the Rapid Prototyping Model.
A prototype is a simple version built quickly to get to the play-testing stage as soon as possible. The process
begins with some initial planning where we define our project goals and requirements. Our basic goal here is
to create a reasonable copy of Space Invaders. Our requirements will be a checklist of mechanics, aesthetics
and gameplay experience. The Analysis and Design stage breaks the larger ideas down into specific objects,
characters, mechanics and level designs. Implementation is the point when you dive into Kodu and start
building. As soon as you can, press Play and test the mechanic you’re trying to implement, and let the
information you discover during play-testing influence the next round of design decisions and requirements.
The cycle looks like this:
Image from Wikipedia.org
It is useful to take your game design apart, and build as many self-contained objects and mechanics
individually, and test them as you go—rather than trying to build the whole game, and only then hit Play.
We’ll find some opprotunities for isolated testing as we go.
BASIC MECHANICS OF SPACE INVADERS
A Basic Requirements Checklist:
� Space Invaders consists of one screen/level area.
� The player is a single ship at the bottom of the screen.
� The ship can only move left and right.
� The ship can shoot upwards.
� The enemies are a field of aliens descending in a grid from the top to the bottom of the screen.
� The enemies move left and right as well as downward.
� The enemies shoot at the player.
� If the player is shot, the game ends.
� If the player is touched by an alien, the game ends.
� If the player shoots an alien, it is destroyed and the player gains some points.
� There are shields at the bottom of the screen the player can hide behind to avoid being shot, but
won’t avoid being hit by the alien and destroyed.
� Sometimes special flying saucers go by the top of the screen for bonus points.
So these mechanics we’ve analysed from Space Invaders become our requirements list. A useful way to get
started is to determine which objects the game consists of. The first object we will need is a game field, so
let’s create a large square arena.
Open an empty world.
How big is large? Determine your proportions by placing your player’s ship on the empty field, and then use
terrain painter tool to create a large square field beneath your ship.
Next, reduce the size of your brush slightly, while keeping it centred on your bi
type to whatever you’d like the floor of your arena to look like, and paint another square, so you have two
concentric squares, or one square with a
different coloured border.
Choose the Raise/Lower terrain tool and raise
the whole square a bit. Keep the entire block
even by increasing the size of your brush so it is
slightly larger than the square of terrain you’ve
created.
Switch to the ‘Magic Brush’ in the Terrain
Raise/Lower tool, and with the same material as
your inner square still selected, right-click to
lower the middle area of your arena. This should create a perfect square with four straight walls around the
outside.
Let’s program our first mechanic chunk.
As mentioned above, we want to use
small chunks of programming so we can
test each piece as we go. For this step,
we’ll work on the player/character.
If you chose a saucer like I did, you’ll
notice that your saucer is probably
floating well above the floor of your
arena. You can change its height by
right clicking on it with the Object tool
selected.
Position the saucer at the bottom of your arena,
The ship can only move left and right.
The ship can shoot upwards.
The enemies are a field of aliens descending in a grid from the top to the bottom of the screen.
The enemies move left and right as well as downward.
ies shoot at the player.
If the player is shot, the game ends.
If the player is touched by an alien, the game ends.
If the player shoots an alien, it is destroyed and the player gains some points.
There are shields at the bottom of the screen the player can hide behind to avoid being shot, but
won’t avoid being hit by the alien and destroyed.
Sometimes special flying saucers go by the top of the screen for bonus points.
alysed from Space Invaders become our requirements list. A useful way to get
started is to determine which objects the game consists of. The first object we will need is a game field, so
is large? Determine your proportions by placing your player’s ship on the empty field, and then use
terrain painter tool to create a large square field beneath your ship.
Next, reduce the size of your brush slightly, while keeping it centred on your big square. Change the material
type to whatever you’d like the floor of your arena to look like, and paint another square, so you have two
concentric squares, or one square with a
Choose the Raise/Lower terrain tool and raise
he whole square a bit. Keep the entire block
even by increasing the size of your brush so it is
slightly larger than the square of terrain you’ve
Switch to the ‘Magic Brush’ in the Terrain
Raise/Lower tool, and with the same material as
click to
lower the middle area of your arena. This should create a perfect square with four straight walls around the
Let’s program our first mechanic chunk.
small chunks of programming so we can
test each piece as we go. For this step,
right clicking on it with the Object tool
Position the saucer at the bottom of your arena, in the centre.
Pro Tip: there are other ways to make
walls. Especially if you want a non
square arena, use the Path tool and
choose ‘wall’ instead of plain path,
then raise the height of your Path to
create a wall of whatever shape you
desire! You can modify the path by
clicking nodes and tweak the shape of
your arena even after it’s built
The enemies are a field of aliens descending in a grid from the top to the bottom of the screen.
There are shields at the bottom of the screen the player can hide behind to avoid being shot, but
alysed from Space Invaders become our requirements list. A useful way to get
started is to determine which objects the game consists of. The first object we will need is a game field, so
is large? Determine your proportions by placing your player’s ship on the empty field, and then use
g square. Change the material
type to whatever you’d like the floor of your arena to look like, and paint another square, so you have two
lower the middle area of your arena. This should create a perfect square with four straight walls around the
there are other ways to make
walls. Especially if you want a non-
square arena, use the Path tool and
choose ‘wall’ instead of plain path,
then raise the height of your Path to
create a wall of whatever shape you
desire! You can modify the path by
ng nodes and tweak the shape of
Right click to open the programming panel and input the following code:
This will cause the saucer to respond to the keyboard motion commands. Limiting the movement to
East/West will cause it to only be able to move horizontally, if y
‘up’ the screen.
We also want our saucer to be able to shoot, so I’ll use the
sub-category of the keyboard.
Let’s test these two mechanics and make any a
well so that it is free to move in the arena.
Hopefully you notice the problem straight away.
Correct his wild aim by adding a ‘North’ modifier to the shooting rule.
Kodu is such a fast programming environment that it is increasingly important to know what you want before
you try to build it, or you’ll be caught in a never ending loop of ‘fiddling.’ It sounds so easy to j
start building—and it is, but it’s also very easy to get lost playing with how the character shoots, and end up
wasting time that should be spent on giving it something to shoot at, for example. It’s also good practice to
get into because not all environments are as quick to implement and test as Kodu, and if you are spending
time implementing features that are not in your requirements brief, you’ll waste far, far more time in those
projects.
CREATING ENEMIES
Let’s create some enemies. In the original Space Invaders, the screen is fully
descending in a nice orderly fashion. I am going to change this up a little bit by populating the screen on
fly with enemies that will move along a path towards the play
be a bit more dynamic game than the original.
Invaders as a result.
First, pick an object from the Objects Tool; I’m going to use a Wisp for th
when you make them glow. Add the object to the scene.
Right click to open the programming panel and input the following code:
This will cause the saucer to respond to the keyboard motion commands. Limiting the movement to
East/West will cause it to only be able to move horizontally, if you have oriented the camera so that North is
We also want our saucer to be able to shoot, so I’ll use the Space Bar for that. You’ll find Space Bar in the Misc
Let’s test these two mechanics and make any adjustments as necessary. It’s important to position your saucer
well so that it is free to move in the arena. Try driving your saucer back and forth and shooting some blips.
Hopefully you notice the problem straight away.
ng a ‘North’ modifier to the shooting rule.
Kodu is such a fast programming environment that it is increasingly important to know what you want before
you try to build it, or you’ll be caught in a never ending loop of ‘fiddling.’ It sounds so easy to just jump in and
and it is, but it’s also very easy to get lost playing with how the character shoots, and end up
wasting time that should be spent on giving it something to shoot at, for example. It’s also good practice to
not all environments are as quick to implement and test as Kodu, and if you are spending
time implementing features that are not in your requirements brief, you’ll waste far, far more time in those
In the original Space Invaders, the screen is fully-populated by a grid of aliens
descending in a nice orderly fashion. I am going to change this up a little bit by populating the screen on
fly with enemies that will move along a path towards the player, instead of in one big block. The effect should
be a bit more dynamic game than the original. The game may also resemble Centipede a bit more than Space
First, pick an object from the Objects Tool; I’m going to use a Wisp for this one because they look pretty cool
when you make them glow. Add the object to the scene.
This will cause the saucer to respond to the keyboard motion commands. Limiting the movement to
ou have oriented the camera so that North is
You’ll find Space Bar in the Misc
s important to position your saucer
Try driving your saucer back and forth and shooting some blips.
Kodu is such a fast programming environment that it is increasingly important to know what you want before
ust jump in and
and it is, but it’s also very easy to get lost playing with how the character shoots, and end up
wasting time that should be spent on giving it something to shoot at, for example. It’s also good practice to
not all environments are as quick to implement and test as Kodu, and if you are spending
time implementing features that are not in your requirements brief, you’ll waste far, far more time in those
populated by a grid of aliens
descending in a nice orderly fashion. I am going to change this up a little bit by populating the screen on-the-
er, instead of in one big block. The effect should
The game may also resemble Centipede a bit more than Space
is one because they look pretty cool
Right-click to change some of the Settings of the
wisp. Firstly, let’s lower its health from 50 to 10 or
15 (remember the default value of your saucer’s blip
bullets is 5 damage). Secondly, enable ‘Creatable’ in
the settings list.
Making the wisp creatable causes it to be classed as
a template object, meaning the game can ‘create’
them on the fly. We don’t have to place each enemy
we want to shoot in the stage beforehand this way.
This makes for a much neater program and some interesting random play. However, when you make
something creatable, it also disappears from the stage
when you hit Play. Something has to create it!
Let’s use a Stick to create Wisps. Use the Object tool to
place a Stick in the top left corner of your arena. Sticks are
the little turret-like objects with a friendly name.
Program the stick with the following:
So now we have some code that will create a wisp for us. Test it
Not very interesting, because the wisps don’t do anything! Let’s fix that.
Firstly let’s change the height of those wisps to match your saucer.
For Space Invaders, we will use a Path to guide our
enemies across the board. The path for this game is pretty
simple, and looks like this:
You can make more turns or fewer, but the last one needs
to run right over your saucer.
The path should be invisible when you press play, but if it’s
not, check your world settings for Path Debugging and turn
it off.
click to change some of the Settings of the
wisp. Firstly, let’s lower its health from 50 to 10 or
15 (remember the default value of your saucer’s blip
llets is 5 damage). Secondly, enable ‘Creatable’ in
Making the wisp creatable causes it to be classed as
a template object, meaning the game can ‘create’
them on the fly. We don’t have to place each enemy
age beforehand this way.
neater program and some interesting random play. However, when you make
something creatable, it also disappears from the stage
when you hit Play. Something has to create it!
sps. Use the Object tool to
place a Stick in the top left corner of your arena. Sticks are
like objects with a friendly name.
So now we have some code that will create a wisp for us. Test it out.
Not very interesting, because the wisps don’t do anything! Let’s fix that.
Firstly let’s change the height of those wisps to match your saucer. Now let’s give them their marching orders.
For Space Invaders, we will use a Path to guide our
emies across the board. The path for this game is pretty
You can make more turns or fewer, but the last one needs
The path should be invisible when you press play, but if it’s
not, check your world settings for Path Debugging and turn
neater program and some interesting random play. However, when you make
Now let’s give them their marching orders.
Now let’s teach that Wisp to walk along the path. It’s as simple as:
You’ll notice that we have no ‘When’ clause here, me
comes into play based on some other conditions).
So if you test this, you should have
the stick spitting out wisps that go
racing down the path towards you.
This is where the play testing comes
in handy. You can see we already
told the Wisp to move ‘slowly’ but if
this is still too fast for your liking,
you can slow it down more. Perhaps
you think they are too tough—
change their maximum health so
you can kill them with one hit.
Now, the stick is spitting them out at regular intervals. I think this is prett
to change it up a little. In the stick’s program add:
This will cause the stick to wait 1 second, then 0, 1 or 2 seconds more before shooting enemies.
timing until you get something you like. You can
timer to make it more chaotic.
At this point you should be able to ‘play’ your game. We haven’t implemented any scoring or failure
mechanics though, so let’s do that now.
Firstly, let’s add some value to shooting those wisps, by adding this rule to the wisp class.
scoring variables in the Game menu category.
Pro Tip: Kodu uses colour to designate
different instances of objects. So the
White path I’ve designated here is the
white one we’ve drawn on the board.
We can change the colour and so have
different paths, and assign different
properties based on that distinction.
The score panels work much the same
way.
ow let’s teach that Wisp to walk along the path. It’s as simple as:
You’ll notice that we have no ‘When’ clause here, meaning that wisps will always do this (until some other rule
comes into play based on some other conditions).
Now, the stick is spitting them out at regular intervals. I think this is pretty boring. So let’s add the following
s program add:
This will cause the stick to wait 1 second, then 0, 1 or 2 seconds more before shooting enemies.
timing until you get something you like. You can even set up a second line of wisp creation with a different
At this point you should be able to ‘play’ your game. We haven’t implemented any scoring or failure
mechanics though, so let’s do that now.
some value to shooting those wisps, by adding this rule to the wisp class. You’ll find the
scoring variables in the Game menu category.
aning that wisps will always do this (until some other rule
y boring. So let’s add the following
This will cause the stick to wait 1 second, then 0, 1 or 2 seconds more before shooting enemies. Play with the
even set up a second line of wisp creation with a different
At this point you should be able to ‘play’ your game. We haven’t implemented any scoring or failure
You’ll find the
Now what happens if the player messes up and gets hit by an enemy? That ends the game of course! So add
this to the wisp as well.
The wisps are still missing something: their own missiles. Add this rule:
We’ve told the wisp to shoot the secondary weapon, the slow moving missile. Our board is level, so I’ve used
the level command, that way when it hits the back
the land, if you choose ‘cruise’ the missile can make its way over hilly landscapes.
Be sure to configure the timing to create enough of a challenge, but not so much that the game is too har
Also, check the wisp’s settings to see how much damage each missile does. Do you want the player to be able
to survive more than one shot, or is it one
it’s hit by a missile.
Now, if you play for long enough, eventually one of your wisps is going to shoot another one. That will
probably cause one wisp to destroy the other
kode:
So, whenever the shot hits a wisp, the damage will be zero
you want to introduce different enemies.
So now we have a scoreboard, but the game will go on forever!
to your player/character (in mine, the saucer).
So now when we hit 20 points, the game is over and we win!!
Now what happens if the player messes up and gets hit by an enemy? That ends the game of course! So add
The wisps are still missing something: their own missiles. Add this rule:
We’ve told the wisp to shoot the secondary weapon, the slow moving missile. Our board is level, so I’ve used
the level command, that way when it hits the back wall it will explode rather than try to follow the altitude of
the land, if you choose ‘cruise’ the missile can make its way over hilly landscapes.
Be sure to configure the timing to create enough of a challenge, but not so much that the game is too har
Also, check the wisp’s settings to see how much damage each missile does. Do you want the player to be able
to survive more than one shot, or is it one-hit-kills? We also need to add a game-over rule to the saucer when
you play for long enough, eventually one of your wisps is going to shoot another one. That will
probably cause one wisp to destroy the other—giving the player free points! Let’s change that with this line of
e damage will be zero. There might be better ways to do this, especially if
you want to introduce different enemies. This is a good time to do some testing.
So now we have a scoreboard, but the game will go on forever! Let’s create an end condition. Attach this line
to your player/character (in mine, the saucer).
So now when we hit 20 points, the game is over and we win!!
Now what happens if the player messes up and gets hit by an enemy? That ends the game of course! So add
We’ve told the wisp to shoot the secondary weapon, the slow moving missile. Our board is level, so I’ve used
wall it will explode rather than try to follow the altitude of
Be sure to configure the timing to create enough of a challenge, but not so much that the game is too hard.
Also, check the wisp’s settings to see how much damage each missile does. Do you want the player to be able
over rule to the saucer when
you play for long enough, eventually one of your wisps is going to shoot another one. That will
giving the player free points! Let’s change that with this line of
There might be better ways to do this, especially if
Let’s create an end condition. Attach this line
This is another obvious time to do some testing. Play the game through a couple of times and m
while you do so. Think about various settings: speed of the enemies, speed of your saucer. What about the
speed that your blips are fired/reloaded? Is 20 points too long, or too short? Is this level easy enough to be
level 1, or can it be made easier? How would I make it harder?
Finally, go back to the requirements list and check to see what’s missing.
OTHER FEATURES
Shields! Of course, the original cover system! Let’s add a shield to hide behind. First think about the
properties of the shields in the original: they will absorb enemy fire, but eventually get holes drilled in them.
The player can also punch holes through them with his own shots, so they aren’t invincible. Kodu won’t let us
make holes in objects, but we can approximate
So let’s pick an appropriate object to act as a shield, how about a rock? They could be asteroids! Place a rock
in your scene, and adjust its size to 2 or 3 so its big enough to be useful. Then check its
is where game balancing comes in, and where game documentation is important. How much health do your
rocks have? How much damage does a wisp’s missile do? How much health does the rock have compared to
the player’s saucer? These things all need to be balanced to make sense so that the rock can take a few hits
before it blows up, but the player’s saucer can’t. So perhaps if the missiles have a damage of 50, and the
player’s saucer is also 50 (so 1 shot destroys it), the rocks shoul
shots. It really pays to have this stuff written down so you can check it all at once. We’ve only got 3 game
elements here, what if we add 3 more enemy types with more than one kind of shooting capability?
Whatever you decide as your balance, place two or three rocks in your arena that your player can hide behind.
I suggest placing them in between the last 2 passes of the wisps so the enemies don’t run into them and get
confused.
Something we’ve hardly touched on is the look of this game. So far the level is pretty ugly. Let’s play with a
couple world settings to change that!
Firstly let’s set up the camera so we know what the player will be seeing each time. Click on the World
Settings at the end of the Tool menu,
and scroll to Camera. Choose Fixed
camera, then click the X icon to set your
camera’s position. This is the
perspective I’m using:
Now back in the World Settings Menu,
play with the Sky and Lighting settings
until you find something atmospheric.
I’m going for the sci-fi space aesthetic so
I’ve chosen some fairly dark settings.
That will make the glowing of my
This is another obvious time to do some testing. Play the game through a couple of times and m
while you do so. Think about various settings: speed of the enemies, speed of your saucer. What about the
speed that your blips are fired/reloaded? Is 20 points too long, or too short? Is this level easy enough to be
e easier? How would I make it harder?
Finally, go back to the requirements list and check to see what’s missing.
Shields! Of course, the original cover system! Let’s add a shield to hide behind. First think about the
e shields in the original: they will absorb enemy fire, but eventually get holes drilled in them.
The player can also punch holes through them with his own shots, so they aren’t invincible. Kodu won’t let us
make holes in objects, but we can approximate the deterioration of the shields using health.
So let’s pick an appropriate object to act as a shield, how about a rock? They could be asteroids! Place a rock
in your scene, and adjust its size to 2 or 3 so its big enough to be useful. Then check its maximum health. This
is where game balancing comes in, and where game documentation is important. How much health do your
rocks have? How much damage does a wisp’s missile do? How much health does the rock have compared to
hings all need to be balanced to make sense so that the rock can take a few hits
before it blows up, but the player’s saucer can’t. So perhaps if the missiles have a damage of 50, and the
player’s saucer is also 50 (so 1 shot destroys it), the rocks should have 200 health, meaning they’ll only last 4
shots. It really pays to have this stuff written down so you can check it all at once. We’ve only got 3 game
elements here, what if we add 3 more enemy types with more than one kind of shooting capability?
Whatever you decide as your balance, place two or three rocks in your arena that your player can hide behind.
I suggest placing them in between the last 2 passes of the wisps so the enemies don’t run into them and get
Something we’ve hardly touched on is the look of this game. So far the level is pretty ugly. Let’s play with a
Firstly let’s set up the camera so we know what the player will be seeing each time. Click on the World
your
ettings Menu,
play with the Sky and Lighting settings
until you find something atmospheric.
fi space aesthetic so
Pro Tip: Saving in Kodu is a little
different to your average document
editor. There is a built-in version
incrementation option so you can
quickly sort through v00, v01, v02 of
the same project. Take a close look at
the save screen by pressing Home on
the keyboard, or clicking the house on
the Tool palette.
This is another obvious time to do some testing. Play the game through a couple of times and make notes
while you do so. Think about various settings: speed of the enemies, speed of your saucer. What about the
speed that your blips are fired/reloaded? Is 20 points too long, or too short? Is this level easy enough to be
Shields! Of course, the original cover system! Let’s add a shield to hide behind. First think about the
e shields in the original: they will absorb enemy fire, but eventually get holes drilled in them.
The player can also punch holes through them with his own shots, so they aren’t invincible. Kodu won’t let us
So let’s pick an appropriate object to act as a shield, how about a rock? They could be asteroids! Place a rock
aximum health. This
is where game balancing comes in, and where game documentation is important. How much health do your
rocks have? How much damage does a wisp’s missile do? How much health does the rock have compared to
hings all need to be balanced to make sense so that the rock can take a few hits
before it blows up, but the player’s saucer can’t. So perhaps if the missiles have a damage of 50, and the
d have 200 health, meaning they’ll only last 4
shots. It really pays to have this stuff written down so you can check it all at once. We’ve only got 3 game
elements here, what if we add 3 more enemy types with more than one kind of shooting capability?
Whatever you decide as your balance, place two or three rocks in your arena that your player can hide behind.
I suggest placing them in between the last 2 passes of the wisps so the enemies don’t run into them and get
Something we’ve hardly touched on is the look of this game. So far the level is pretty ugly. Let’s play with a
Firstly let’s set up the camera so we know what the player will be seeing each time. Click on the World
Saving in Kodu is a little
different to your average document
in version
incrementation option so you can
quickly sort through v00, v01, v02 of
the same project. Take a close look at
the save screen by pressing Home on
the keyboard, or clicking the house on
Page 28 Getting Started with Kodu
objects stand out more, but I should probably add some lights to make things a bit more visible.
RESULTS
At this point you should have a working version of a Space Invaders-like game. There are a lot of things that
could be added to it, of course, but many of the basics of gameplay and the functions of Kodu have been
covered here. Feel free to experiment with this design and learn more.
ASSIGNMENT NOTES
We have referred to this design as being worth a Credit, but that isn’t entirely true. To get a credit with this
design, you’ll need to add at least one more enemy type to increase the difficulty at some point in the game.
You would also want to spend some time on the aesthetics, as indicated above. Even then, this would only be
a low credit. To get higher marks, we’d like to see something other than a straight clone of a primitive game.
Add something innovative, or polish it until it really shines. It also assumes that the accompanying
documentation with this game is of a very high standard. You can’t make a great game and provide terrible
documentation for this course. Both are important parts of the process.