When you first start Kodu you are presented with the Main Menu. If you choose Options from here you will be presented with a scrolling list of a bunch of things about the game that you can tweak.

Navigating the list is easy. You can scroll the list by either using the mouse wheel or the up/down arrows on the keyboard. You can also scroll with the mouse just by moving the mouse to the top or bottom edge of the window. The tile in the center of the screen is the one in focus. Clicking on any other tile will bring it into focus. Clicking anywhere off of the tiles will exit the Options screen back to the Main Menu. To the right of the in focus tile is the Help tile. Clicking on this will give you help on the current tile. Since the options are mostly self explanatory I’ll just quickly go over the highlights. Feel free to leave comments if there’s something you would like more information on.
The “Show Tool Tips” option controls the display of the ToolTips. These are the grey boxes with description text that show up when you are in the programming UI and when using any of the pie menus. Turning them off here prevents them from ever being shown. If you have them turned on you can also dismiss them just by moving the mouse.
The “Help Overlay Amount” controls how much information is displayed in the upper-left hand corner of the screen. When you’re first starting to explore Kodu you should leave this set to “All” since the information is required for working within Kodu. Once you become more proficient you may choose to turn this down or even off. I find that I always leave it on because it’s always handle to be able to look at the help overlay just in case I forget something.
The “Overscan” option is mostly designed for the Xbox version. When graphics are displayed on televisions often the edges of the screen are cut off. This setting allows you to tune how close to the edge of the screen the UI elements and help are displayed. On the PC you will generally want to set this to 0 since you can easily see to the edge of the window.
The “InverStick” options only apply if you are using a GamePad as a controller and allow you to invert the sense of up/down and left/right.
The “Terrain Edit Speed” option allows you to tune how fast the terrain changes when you are editing. For instance, if you are using the terrain raise/lower tool a higher value here will make the terrain move up and down faster. A lower number allows for more precise control.
The “Volume” controls allow you to tune the audio to your liking. The “UI Volume” controls the loudness of the click and noises the UI elements make. The “Effects Volume” controls the loudness of the character sounds and explosions. The “Music Volume” controls any background music you add to the game.
There are also some other options which are not in the current build but will appear soon:
The “Check for Updates at Startup” option will let you choose to have Kodu “phone home” and see if an updated version is available. If there is a new version available you will be asked whether or not you want to download the update.
The “Gather Usage Information” option will allow you to choose to have the system send usage information back to us which we can then use to make Kodu better. This is strictly optional but will help better understand what are users are doing with Kodu and how we can improve Kodu.
The “Privacy Statement” option will just display the privacy statement. This explains exactly what information the above two options are sending back to us and what we’re doing with the information.
The “End-User License Agreement” will display the EULA for Kodu.
Hey Xbox Kodu fans. We just put a new version up for peer review. If this gets through then we'll have the Koduzone machines back online soon. If you're a member of the Indie Games community please review the game if you have the time. Thanks!
This will be a short one but I wanted to point out some of the features on the Load Level menu so that you’ll be able to use it more effectively. The Load Level menu looks like this:

Across the center of the screen you see a series of tiles. Each tile represents a saved world. Beneath the tile, information about the world is displayed including the name, saved date, author, tags and description. The tags are useful for filtering the levels making it easier to find a world you are looking for. You set the tags for your worlds when saving them but you can also modify them later.
You can scroll through the list of worlds in several ways. With the keyboard, the left and right arrow keys will scroll the list. With the mouse you have several options:
· Click on the green arrows at the edges of the screen.
· Just move the mouse to the edge of the screen. This works best when running in fullscreen rather than windowed mode.
· Use the mouse wheel to scroll the list.
· Clicking on a tile that is not the current “in focus” tile will move it to the focus position.
Once the world you want is in the focus position clicking on it will bring up a pop-up menu with some options. For built in worlds the only option is “Play”. Choose this and the world will be loaded and start running. For worlds that you’ve created yourself you have more options:
Export : This will package up the world into a .Kodu file and save it in the folder Libraries->Documents->SavedGames->Boku->Player1->Exports. You can then give this file to a friend and they can import it into their Kodu game just by double-clicking on it. A bit of trivia: The reason you see "Boku" in the path is that "Boku" was the original name for Kodu and we forgot to change the path name.
Edit Tags : Choosinig this will let you pick which tags to associate with your world.
Delete : I’m guessing that you can figure this one out on your own. J
When you’ve been playing with Kodu for a while your collection of worlds will probably grow to the point where it’s hard to look through the full list of worlds to find the one you want. We have a couple of ways to make that easier. Across the top of the screen are a series of black buttons labeled “My Worlds”, “Downloads”, “Lessons”, “Samples” and “All”. Internally we refer to thee as buckets. They’re a quick way to filter on major categories of worlds. “My Worlds” are the worlds that you have created. “Downloads” are any worlds that you’ve imported into Kodu. “Lessons” and “Samples” are pretty much just what they say. You can have your own worlds show up in these buckets if you choose by setting the lessons or samples tags on your worlds.
For more fine-grain filtering on the tags click on the Show button. This will bring up the list of all possible tags. You can set one or more tags to filter on. If you choose more than one the results will be any worlds that match at least one of the tags. So if you pick “Action” and “Adventure” you will see all the worlds marked as either “Action” or “Adventure”.
To the right of the Show button is the Sort button. The choices for sorting are by name, by date or by the creator’s name. For each of these sortings, if you select the same option that is already active the order of the list will be reversed. For instance if you choose sort by name the levels will appear sorted alphabetically, A to Z, by their name. If you then choose this option again the sort order will be reversed and they will appear in Z to A order.
While Kodu isn’t as easily localizable as a standard Windows app we’ve tried to keep it relatively straight forward. We realize that even so, this is still harder than it really should be. We're looking into creating some tools to help with the process but have nothing to announce yet.
The four files that need to be localized are located in Kodu\Content\Xml. They are:
CardSpace.Xml :
CardSpace contains the information about the programming tiles. Each tile has a "description" which is what shows up in the help system. Each tile has a "label" which is the text displayed at the bottom of the tile. This needs to be kept short in order to fit onto the tile. These are the only two fields which should be modified.
Help.Xml :
Help contains the programming examples used by the Help system. Each examples contains a "description" which describes the functioning of the example code. The "description" is the only part of each example that should be changed.
HelpOverlay.Xml :
The HelpOverlay contain the onscreen help which appears in the upper-left hand corner (and sometimes bottom edge) of the screen. Each mode is identified by an "id" which should NOT be changed. The rest of the fields contain text strings which are displayed with the associated button icons. The "Ghosted" entries just indicate that an option should be displayed as inactive. These values should not be changed.
Strings.Xml :
Strings contains all the miscellaneous strings used in the application including all the menus, dialogs and other UI pieces. These strings are grouped based on the menu or dialog they are used for. In general, the entries should be fairly self explanatory. If you find an entry that just doesn't seem to exist in the game don't worry it may just be left over from a previous change.
The "buttonAliasStrings" are the strings the user can use to represent a button icon in the level description or using the say verb. These can also be used to display icons for all the characters in the game. Note that you can have multiple aliases that will resolve to the same button so you could also choose to just add one (or more) localized aliases while leaving the existing ones intact. This is probably the best route to take since it will allow any levels you import that haven’t been localized to appear correctly.
Feel free to leave a comment if you have any questions about the process.
You can just install it over the old build without any need to uninstall. Any levels you've been working on will be preserved.
Fixes include:
- Changed the primary font to better support localization.
- Subs can now be "seen" by other characters.
- Fixed mouse to toolbar mapping issues when low screen resolutions are used.
- Scaling of 'Home' icon on home menu is now constant regardless of screen resolution.
- 'Keyboard' and 'controller' tags can now be filtered on in the load level menu and will return correct results.
- 'not' works again.
- Overscan percentage is now being properly restored on startup.
- On the settings screen you can now close them just by clicking off to the side of the menu elements instead of having to hit the escape key.
- Fixed some device-rest issues which occur when the app is minimized or a screensaver triggers.
For this posting I’m going to cover the tools that are available during editing and explain a bit about what each one does and how it’s used. Here's a picture of the screen as it looks when you enter Edit Mode.

The Edit Mode tools are contained in the ToolBar across the bottom of the screen. Underneath the ToolBar you will find the name of the current tool. Note that if you just hover the mouse over the ToolBar the in-focus tool will change. This allows you to preview the tool before selecting it. You actually have to select the tool by clicking on it with the left mouse button before it becomes active. Also notice the Help Overlay information in the upper left hand corner of the screen. This will change to match whichever tool is currently in focus.
Starting from the left the first icon is for the Home Menu. You can also get to the Home Menu by pressing the Home key on the keyboard.
The second icon is the Play button. This takes you from Edit Mode to Play Mode. The escape key will also take you into Play Mode.
The third icon (The big green hand) is for Camera Move mode. This is the tool you use to move the camera around in the world while you are editing. In this mode you can left-click and drag to translate (move) the camera. Right click and drag will allow you to orbit the camera around whatever you are looking at. The mouse’s scroll wheel allows you to zoom in and out. If your mouse doesn’t have a scroll wheel you can also use the PageUp and PageDown keys to zoom.
While editing a world you will often find that you need to move back and forth between whatever tool you are using and the Camera Tool. To make this easier we have a Camera Tool shortcut. While you are working with any other tool you can press and hold the space bar to temporarily activate the Camera Tool. After setting the camera where you want it just let go of the space bar and the tool you were using before will be reactivated.
Object Edit Tool : The next icon in line is the Object Edit tool. It looks like Kodu with a halo. This is the tool that you will use to add objects to the world and program them. What happens when you click the mouse depends on whether or not you have an object under the mouse cursor. With no object under the cursor you can add a new object to the world by left-clicking to bring up a menu that lets you select the item to add. Once you have an object in the world, you can use the mouse to left-click on the object and drag it around to position it. With no object under the cursor, right click will bring up a menu that also allows you to add items to the world as well as opening the World Settings screen. If you’ve previously ‘cut’ an object the right-click will also let you Paste. If you right-click on an object you get the following menu:
At the top of the menu is the Program option. Choosing this will bring up the Programming Editor where you can program the behavior of your character. The Change Settings option will bring up a screen with dozens of setting you can tweak to tune this character for your game. The Cut and Copy options work as you’d expect. The final three choices, Change Size, Rotate and Change Height, will bring up a slider control that will let you change each of these properties.
Also notice that when the cursor is over an object a color palette will drop down from the top of the screen. When this is visible you can use the left and right arrow keys on the keyboard to change the color of the object.
Paths Tool : Following the Object Edit tool is the Paths tool. The Paths tool works a lot like the Object Edit tool except that it is used for editing paths rather than objects. Right-clicking on the terrain will bring up a menu that lets you pick the type of path you are creating. The four types of paths are Plain, Wall, Road and Flora(flowers). Plain paths are used when you want to lay out a path for a character to follow but don’t want the path to be visible when the game is running. These are invisible when you are in Play Mode. Wall, Road and Flora paths can also be used to guide characters but just as often they are used just for their appearance. The Walls are also useful as boundaries in your game.
Paths are made up of a network of nodes and edges connecting the nodes. They can be connected any way you choose. You can use the left mouse button to click on and drag individual nodes or edges. If you hold the shift key down while doing this you will affect the whole path rather than just the single node or edge. Right clicking on either a node or edge will pop up a menu of optional actions. Note that when you hover the mouse cursor over an edge you see a couple of arrows indicating the direction of the edge. By default edges are bidirectional meaning that bots will follow them in either direction. By right clicking on and edge and choosing Change Direction you can change the edge so that the bots will only go one direction.

Paint Tool : Next we move on to the tools used to create and sculpt the terrain in your game. The first tool is the Paint tool. With this tool you will be able to add new terrain to your world or paint existing terrain with a new material (color and pattern). The first thing you’ll notice when you select the Paint tool is that it has two sub-options which pop up out of the main icon. The one on the left will activate the Material Picker and the one on the right will activate the Brush Picker.
As the name suggests, the Material Picker allows you to choose the material to paint your terrain. You can use the right and left arrow keys or the mouse wheel to scroll through the options. You can also pick a material by directly clicking on it which will bring it to the center. Once you’ve picked the material you want you can just start painting and the Material Picker will go away. The Paint Tool also supports an EyeDropper mode. To use this, hold down the alt key and then click anywhere on the terrain. The current material will then be set to match whatever material is under the mouse where you clicked. This works whether or not the Material Picker is visible.
The Brush Picker allows you to select the shape of the brush you paint with. You can change the size of the brush using the left and right arrow keys. The brush icon at the far right of the Brush Picker choices is the Magic brush. Rather than being a fixed shape, this brush selects a contiguous region based on whatever material is under the mouse cursor. While this is selected you can use the left and right arrow keys to grow or shrink the region.
The next three tools are all designed to allow you to reshape the terrain by adding or removing hills or making the ground smoother or rougher. Like the Paint tool the area affected by each of these is controlled by the brush you choose. As you select each tool, be sure to look up into the upper left hand corner of the screen to see the Help Overlay information about what each tool does. Here’s what is displayed for the first of the three tools:

As you can see, the left mouse button will raise the terrain, the right mouse will lower it and the middle mouse button will smooth the terrain. Don’t worry if you don’t have a middle mouse button, this function is also available on the second tool using the right mouse button.

Water Tool : Next is the Water tool which is how you can add water to your world. Like the Paint tool it also has a Material Picker added to it. In this case it allows you to select the color of the water you add to the world. Adding water is simple, left click will raise the water level and right click will lower it. Like in the real world the water will flow to fill in the lower areas first. Unlike the real world, when the water gets to the edge of the world it just stops instead of spilling onto your floor. To change the color of existing water you need to use the picker to choose the new water color you want, use the left mouse to remove the exiting water and then use the right mouse to add new water in your new color.
Erase Objects Tool : The Erase Objects tool is just a quick way to delete lots of objects. Normally to delete a single object you would go into Object Edit mode, right click on the object and select Cut. Sometimes tough you want to delete lots of objects at once. This is where the Erase Objects tool comes in. Like the terrain tools, the Erase Objects tool uses a brush. As you brush over your world any objects that touch the brush will be deleted. If you make a mistake here, you can click on the Undo button on the left side of the screen to go back to your previous state.
World Settings Tool : The final tool is the World Settings tool. This brings up a screen that is very much like the Object Settings screen but in this case the settings apply to the whole world rather than just a single character. I’ll go into more detail about the individual settings on both these screens in a later posting.
Hello fellow Koders! This will be the first of what I hope to be many tutorials on Kodu that I will be posting as time permits. I’m kind of new to this blogging thing so please bear with me. I plan on starting with some basic overviews of the Kodu interface and then do more deep dives into some of the subtleties of the system and the programming language. Being new to this I’d love to have feedback on how useful this is to you and also what topics you’d like to see in the future.
Tutorial : Basic Navigation
One of the early hurdles that some people have with Kodu is that they expect it to be like any other game: you start the game, you play the game and eventually you finish the game. Kodu is a game creation environment so instead of playing through the game you will be creating your own games. This usually involves an ongoing cycle of edit -> playtest -> edit some more -> playtest, etc. Here’s a map of the major screens in Kodu so I can explain this better.

MainMenu
When you start Kodu, after the loading screen you will be at the MainMenu shown in the upper left of the map. If you’ve played Kodu before the top menu item will be Resume. Choosing this will reload the last world you had open and start playing (PlayMode).
LoadWorld
From the MainMenu you can also choose LoadWorld. The LoadWorld screen allows you to see all the worlds you have on your system. I’ll go into the details in a later posting. For now just find a level that looks interesting (I chose Xevon v07) and click on the tile. A popup menu will appear allowing you to Play the game. Click on Play and the world will be loaded and play will start (PlayMode).
PlayMode
PlayMode is, well, where you play the game. (Thanks to the Department of Redundancy Department for that brilliant line) In the case of the world I chose, Xevon, it starts with a title screen that also explains the controls for the game. At this point you can press either Escape or Enter to begin playing. If the world doesn’t use the title screen option you will just go straight into playing.
EditMode
At any point during gameplay you can press Escape to go into EditMode. EditMode is where you will probably be spending most of your time. Here you can create the landscape for your game world, populate it with bots and program their behaviors. Once you’ve done editing your world you can go back and playtest it by either clicking on the PlayTool (large green triangle) or by pressing Escape.
HomeMenu
The final major screen I want to mention is the HomeMenu. Those of you familiar with the Xbox version of Kodu will recognize this as the Mini-Hub. Yes, we changed the name because we finally came up with something that makes sense (thank you Kristen!). You can get to the HomeMenu by pressing the Home key or by clicking the Home icon when in EditMode. This works in most places in the game so it’s a nice way to ground yourself if you feel that you’ve gotten a bit lost. The HomeMenu will let you go back to the wold you’re currently working with, save your current world and any changes you’ve made, load another existing world, start with a completely blank work or go back to the MainMenu.
We've been seeing some great momentum build for Kodu in the PC in our academic program. Educators and students have really helped us prioritize our ongoing Kodu development work, resulting in some very nice new features and refinements, particularly in the area of mouse and keyboard user interface.
Now we're ready to broaden the Kodu community on the PC. While the PC version is still in development - we're calling it a Technical Preview, it is now available for absolutely anyone to download completely free of charge, right here, starting today: http://fuse.microsoft.com/kodu/
The biggest change in this version is the new mouse and keyboard UI. This lets you use Kodu completely without a game controller. This has been a far-reaching change as Kodu was initially designed very specifically for a game controller. While the mouse and keyboard version does not quite have the polish of the game controller version, we are already seeing some nice advantages for PC based users and we expect more to come. This is still in development and an area where we would like to receive lost of feedback.
There are also many changes for the new version when compared to the current xbox version:
- deep enhancements to the 'move' verb allowing, for example, a character to follow a path while watching another object - great for scripted camera moves
- nested logic - covered earlier here on the blog - allowing more powerful combinations of sensors and actions
- streamlined terrain editing tools
- ability for characters to respond to mouse and keyboard events
If you're considering a Kodu program in your school, there are two noteworthy success stories that have inspired us:
In Victoria, Australia, The Department of Education and Early Childhood Development has deployed Kodu in an extensive pilot program across 26 of its schools. For the last few months it has been measuring students’ levels of engagement in the program and you can see some of the results here at Planet Kodu (http://www.planetkodu.com/). PlanetKodu was built by IdeasLab, a unique public/private partnership providing advanced technology solutions for schools. PlanetKodu uses internal level sharing protocols that we will be expanding in the future.
In Detroit, Michigan we have been watching our friends at Explorer Elementary who have created the Explorer Kodu Club (http://koduclub.org/default.aspx). Kids are showing up early for school to work on their Kodu projects while learning about programming, design, and narrative development. It is great hearing about kids getting involved with creativity and technology early in their schooling and having fun with it!
As Kodu is a technical preview, there are some known issues we'd like to draw your attention to:
- the in-game help, in some places, still references the game controller
- some low-end PCs may have a problem running Kodu. We recommend that users run the "configure Kodu" application and choose lower-quality graphics settings if they are having problems running Kodu or want better graphics performance at cost of some visual detail
- most of the built-in content is design for controller play. we will be improving this incrementally with each release
- we've added an export function so that you can publish your game into a file which you can then email or post to your own website. The feedback when you export is currently confusing - what happens is that the world you've exported is placed in your documents folder under SavedGames/Boku/Player1/Exports with a .kodu extension.
We expect fresh Kodu releases on a roughly two-week cycle. It's our goal to be very transparent about what we're working on in the hopes that this next phase will be an active collaboration with energetic Kodu users around the world. These next few months will be filled with activity.
Thanks to everyone for wonderful and motivating messages about what Kodu means to you. It remains one of the most exciting projects of our careers.

Here's one way to use nested rules in Kodu.
In this example, rules 3 and 4 won't run unless rule 2 is true.
What we're doing here is using score to keep track of ammo. When the user presses the trigger, we check the score. If it's above zero, we shoot. If it's zero, we play a sad sound.
If you've been using Kodu, you'll recognize what a radical simplification this is - and all you have to do is indent a rule.
This will be in the PC build, and it's going into patch 3 which we *hope* to have live on the 360 for the holiday break.
Sorry I've been a little quiet lately - we've been doing a reorg but we're still truckin' on the kodu highway :)
- big perf gains for world-sharing (upload, download, and browsing)
- scaleable characters
- lots of small fixes and little surprises - see previous posts for details
Thanks again to our awesome, awesome peer review community on the XNA Creator's Club.
PC Kodu is going to have file import and export for Kodu Worlds. This will let you export a world, email it to someone, and have them open it using Kodu on their machine.
The goal is to enable you to use *any* sharing mechanism to share Kodu worlds. Want to make a gallery? Great! Use your favorite tool.
We do have internal community server tools but we only have resources to give them to some institutions. We're looking into sharing this more broadly; it's a pretty optimal Kodu sharing experience (don't have to select server.) We may just publish the protocol as it's small and clean.
Eric just checked it in. Here's his design.
- There are two special folders at the root of Kodu’s user space (below Documents/SavedGames/Boku/Player1). One called Imports, the other called Exports.
o Imports folder behavior:
§ Any “.kodu” files residing in this folder will be imported into the user’s Downloads bin whenever the user enters the load level menu.
o Exports folder behavior:
§ A new option is available on the load level screen’s “pop-out” menu called Export (it shows up underneath Play). This action will export the selected level to the Exports folder, as a .kodu file.
§ Export is not available for builtin worlds.
§ Terrain will not be exported if it is from a builtin world.
- The new installer registers the “.kodu” file extension with Kodu.exe, allowing the user to import a level by double-clicking on a .kodu file.
o This action will import the level to their downloads area, then take them directly into the level in play mode, similar to how trial mode works.
o If another version of Kodu is running when the file is double-clicked, the second copy of Kodu will copy the file to the Imports folder and then exit. When the first copy of Kodu navigates to the load level menu, the new level will be imported.
- Level metadata now contains the version number of the Kodu that saved it to disk. We don’t allow import of levels written by newer versions of Kodu.
- .kodu files are really just CAB archives with a different extension.
Okay, this is annoying.
After uploading the patch for peer review, we found a pretty serious bug.
So we took it down, fixed the bug (go Steve!) and uploaded the patch again.
UH OH
Creator's club doesn't let you restart a peer review. You have to wait 7 days. Isn't that incredibly annoying? Apparently some folks were abusing the process by starting a few peer reviews in one day (a self-correcting problem, to my mind, as people aren't going to peer review for you if you keep restarting it.)
Anyway, victim of circumstances that we are, we had to "cool off" for 7 days before we could put the patch back into review.
Sorry folks! We don't like it either, but here we are. The XNA team has been such an incredible supporter for us we will forgive them this wrinkle.
Good news: 7 days is up today, and the patch is re-entering peer review.
Better news: you should see patch 3 :) We're calling it the "kodux" patch. (not really, but I just did, so I guess we are :))
If you're an XNA dev, please help us move the patch through peer review by downloading and reviewing the build.
Hey, XNA Game Studio developers, we need your help vetting Kodu patch 2 for live consumption.
You can download the ccGame to playtest patch 2 here: http://catalog.xna.com/en-US/GameDetails.aspx?catalogEntryId=243e5e77-616c-48a9-9f34-78efb36e7945&type=1
(must login with your XNA Creators Club membership)
Here's a mostly complete list of the more interesting changes:
- Scalable characters!
- Show scores in say bubbles. You can now add <score red> in your character's say text and it will be replaced with the current red score.
- Fixed blending of cardinal direction movement. "move north west" would move north, but not west.
- Fixed invulnerable setting.
- Fix for object spawn height.
- Improvements to level download times in sharing session.
- In well-known sharing sessions, only share with host.
- Lots of tweaks and little improvements to the physics system.
- Limit path node altitude.
- Added character emissivity based on glow state.
- Added creatable tree programming tile.
- Made say bubble visible in first-person.
- Made health bar visible in first-person.
- First person camera less twitchy.
- Lots of gameplay adjustments to built-in levels.
- Show the number of people in a sharing session.
- Fixed false vision through walls.
- New built-in level: Tedanoo.
Tavishhill2003 is one of the acknowledged masters of Kodu set building. He has completely outdone himself. I pulled these screens from a fantastic new video up on the 'tube. Recommend you go see it there because there is some beautiful dynamic lighting and shakycam work. Out. Stand. Ing.
Honestly, we're still trying to figure out how he pulled some of this stuff off. Video link at bottom.







http://www.youtube.com/watch?v=xXfovBy1LTA
Next patch will let you scale all kinds of things in the world. Mark's been cranking this out and making sure that it works well with physics and the like.
Tiny motorcyles are really, really cute :)
This patch will probably land in early September - it won't be as big as the last patch but we hope to have a few small surprises in there for you.

UPDATE: Scaling for this version is something you do while editing. You can't control scale through Kode. Yet.
More Posts
Next page »