Kodu Game Lab/Update History

This is the list of the Kodu Game Lab updates with new features, bug fixes, and more.

## Version 1.3

### Version 1.3.5.0

* Added Pipes and Underwaters
* Mars Rover Update
* More rocks added
* Minor bug fixes

## Version 1.4

### Version 1.4.164.0

* Added squash
* Added sign in
* Minor bug fixes

### Version 1.4.203.0 (November 15, 2017)

#### New Features

* Updated the tutorial system so that it works properly with touch input. Also updated the 6 basic tutorials that come with Kodu to work with touch.
* Also in tutorial mode, when showing text in a modal dialog have it change to reflect which input mode is active (keyboard/mouse, touch, gamepad). So switching between input modes should work smoothly.
* micro:bit – When running your game, you can now use the micro:bit buttons to close the text dialogs that you have programmed. This way you don’t have to put down the micro:bit and use the keyboard in the middle of your game.
* Terrain editing with touch is now better. Previously it required you to tap the Paint button each time you changes materials or brushes. Now it remembers what you were doing and should act as expected.
* Restored the full screen anti-aliasing. For people running in HiDef mode this should result in a much better looking worlds. You can see the effect this has by manually turning it on/off in the Kodu Configuration Tool (grey icon on desktop). The item is called “Smoothing (FSAA)”. This got stuck in the always off position some time ago. And I finally figured it out.
* You can now detect the SeaGrass object using the Bumped sensor but it won’t block your motion. This allows characters to swim through it if they want, or bump into it and eat it.
* The New World level is now loaded with the camera facing due North. This should help with lessons that rely upon a specific orientation.
* Disable the F2 key. Previously this allowed the help overlays (upper left hand corner of screen) to be turned off. It turns out that this is never used on purpose and causes all kinds of problems when accidentally hit. So it’s gone.
* Increased the maximum number of simultaneous thought balloons from 20 to 50 so everyone can talk at once.

#### Bug Fixes

* Fixed a bug when programming changes to the sky color or light settings. Sometimes this would just lock up and get stuck on the dialog where you chose the new setting. This should no longer happen.
* Fixed a minor bug when using the darker light settings. When editing the world we should always use the full “day” settings so you can see what you are doing. Sometimes it would get stuck with the “night” settings in the editor.
* Fixed a couple of places where clicking on a dialog was being detected by the terrain under the dialog causing unexpected edits.
* Fixed a bug when working with the gamepad that caused it to take 2 buttons presses to run the level rather than one.
* Fixed a minor bug in the SaveLevel dialog that was adding extra spaces to the end of the level description. While the spaces weren’t noticeable, they did cause the system to think that this was a “new” level and treat it differently.
* Fixed a bug in the cylinder collision detection. This was causing the collision shapes for the straight pipe sections to be twice as long as the pipes. So if you tried to go around the pipe, at one end it would be fine but at the other you would be blocked.
* Fixed a bug when programming the mouse to create objects. For instance if I program WHEN Mouse Left DO Create Apple the program should create an apple wherever I click. But, with the bug it also registered a bumped event with the character the programming was in. In some cases this could cause the newly created apple to be immediately destroyed.
* Fixed bug in mouse movement programming. Previously if you programmed WHEN Mouse Left DO Move Forward it would cause the character to move even when the mouse button wasn’t pressed. Now it works as expected.
* Fixed a bug with the Turtle. His altitude wasn’t being restored properly after he opened and closed. This would cause him to rise up into the air.
* Fixed a bug with the Inline tile where it wasn’t being applied correctly for levels started via Resume.
* Fixed the saving and restoring of camera positions. This was causing the camera to be in the wrong place when loading some levels. The idea is that when you save your level, the camera position also gets saved wherever it happens to be. This allows you to set the starting position for the camera in your world. This still isn’t perfect but it should be a lot better now.
* Fixed bug where sometimes the tiles on the Add Item menu would be blank. This usually happened if Kodu was left running while the machine went to sleep.
* Minor tweak to how the text is drawn on the programming tiles which makes them a bit crisper.
* Restricted the Winner tile to allow a winning Color or Player, but not both. Also fixed bugs in Winner and GameOver display. There were some cases where the display wasn’t working correctly.
* Fix problem with input from sign-in dialog also selecting Main Menu items under the dialog.
* Fixed problem with Kodu not starting due to error reading Locales.Xml file. This is the file that tells Kodu what languages are available. Normally we try and download a new version when Kodu starts up. Now, if this fails we do a better job of falling back to the version of the file that is installed with Kodu.
* Removed Creator button from screen during edit mode. It was just cluttering things up and wasn’t useful at that point. Now it only appears when useful, eg Main Menu, Home Menu, Load World, and Community pages.
* Removed invalid options that show up for WHEN Mouse Move. The only valid verbs are Move and Turn.
* Make WHEN Mouse Move DO Move actually work.
* Fixed some bugs in the collision system related to immobile and frozen characters.
* Fixed bug causing trees to flicker on some systems.
* Fixed crashing bug sometimes caused by Closest selector.

### Version 1.4.216.0 (March 9, 2018)

* Fixed a problem with a strange interaction between launching objects and resource limiting. If the new object wasn’t created due to limiting, the creating character would, instead, try and launch the nearest other object.
* Fixed a bug with creatables. When the game was first run, even before they were created their brain would run for one cycle. That could cause unexpected side effects such as setting scores or creating other objects even though the creatable itself never entered the world.
* Created objects now face the same direction as the object creating them. Previously their facing direction was based on the current camera view direction. Updated more in-game text to use outlines instead of drop shadows.
* Fixed a bug in the pre-game options that would sometimes trigger the pre-game when going into edit mode.
* Adjusted character movement via gamepad sticks. Previously the values were getting set to either fully on or off so it was difficult to move slowly. This should allow better control when using gamepads for movement.
* Fixed glow around soccer ball when selected.
* Fixed bug in pre-game code that caused it to fail when running a game in a language that is different than what was used when the game was created.
* Fixed a bug with linked levels acting as if they have been editing thus requiring another save. This was being caused by the “road” object so it only affected levels with roads.
* Fixed a bug that sometimes cause the world lighting to not get reset when the game was run.
* Fixed a crashing bug with shooting blips. This one only showed up if you have >2000 blips flying around.
* Fixed a bug in the code that allows you to send your kode to the printer. Previously it would always send to your default printer no matter which one you chose from the dialog. Now we pay attention to your choice.
* Changed the label on the line-of-sight programming tile to spell out “line of sight” rather than just having “LOS”. Previously this would have been cropped off but with the new text system it just gets squashed to fit.

### Version 1.4.222.0 (May 11, 2018)

* Fixed bug related to turning when programmed as user controlled using either WASD or arrow keys.
* Fixed a bug that happened while painting terrain. Occasionally the cursor would jump back to the world origin.
* Fixed a bug where the hit points on a character were not being set correctly. This only occurred upon freshly starting Kodu, adding a new character, and then running for the first time.

## Version 1.5

### Version 1.5.2.0 (November 29, 2018)

#### New Features

* Completely changed how movement is handled internally. For the most part I’ve tried to keep the behavior of the characters the same or at least close to the same as they previously were. Probably the most obvious effect of the changes is that we can now handle more complicated movement scenarios such as “mouse-look”. Mouse-look is the name given to the control scheme used by most first person shooters. Typically, the WASD keys are used to control relative movement while the mouse is used to control turning and shooting. For example:

* You can now delete worlds you have shared with the community. The “delete” option will show up on the community page for worlds you uploaded. You must be signed in with he same creator name and PIN you used when you originally uploaded the world. You can use the “My Worlds” tab at the top of the Community screen to find the worlds you have uploaded.
* Added a new timing tile for 1/8 of a second. This will give more fine-grained control over timers. Should be useful for music!
* Updated Missiles to be a bit more like ordinary characters. Missiles can now be seen, shot at, run away from, and even grabbed. Blips can also be used to shoot missiles. In order to minimize the back-compatibility issues, missiles are only sensed when explicitly called out. For instance: **WHEN See Anything DO Color It Red** *<– this will not affect missiles* **WHEN See Missile DO Color It Red** *<– this will work as expected*
* Missiles can now be programmed to Squash their targets.

#### Bug Fixes

* Fixed a bug which was causing newly added characters to not start their smoke emitters until after going from edit mode, to run mode, and back again. Now, newly added characters should show smoke as soon as they are added.
* Removed the HeldBy tile from Clam and Seagrass characters since they can’t be held.
* The soccer ball now floats.
* Removed the Glow option from Lights. They already glow.
* Fixed a bug with using the mouse to pick small items from near big ones, like the Castle. The mouse picking code should be much more accurate now.
* When testing for EndOfPath, we not longer allow the “Me” tile for characters than don’t move, since they’ll never be following a path.
* Removed the Underwater filter tile. This was supposed to filter on the “underwater” characters but was never implemented and so, did nothing.
* Cleaned up some invalid programming tile options. For instance, if we have WHEN See Kodu Not it doesn’t make sense to have the toward, away, avoid, circle, and it tiles on the DO side since the WHEN side never generates a target for them.
* Fixed a bug with the .MSI installer related to using command line options when installing. They should all work correctly now.
* Fixed a bug in the UI Slider code which would cause it to sometime start at the wrong position.
* Fixed an issue with deleting terrain. We were setting the altitude to 0 but not clearing the material value. In some cases, this was causing the terrain file to not be valid.
* Fixed a bug in the calculation of rotation angles for turning. In cases where Quickly, Quickly, Quickly was being used, the character would turn the wrong way.
* Fixed a bug with the Rover not scanning rocks correctly. When a rock is beamed or scanned, the first thing that happens is that the rover turns to face the rock. The code was testing for the Rover to reach an exact angle instead of allowing it to be close enough. Because of other affects in the movement system, the exact angle wasn’t always being achieved.
* Update the font choice for Chinese, Korean, and Arabic translations.
* Added a command line option to detect micro:bit devices. This is only used if the normal detection code fails.
* Added a 5% deadzone for controller stick inputs.
* Fixed bug in the way options settings were being saved (or not saved…).
* Fixed crashing bug when run on displays > 4096 pixels wide.
* Fixed bug in stretch brushes.
* Fixed bug in the delete character brush.
* If Cursor filter is used, prevent additional filtering on Dead, Squashed, Colors, and Expressions since the cursor has none of those. Also, the reverse, if any of those filters are used don’t let them be applied to the cursor.
* Same as above but with Cursor and Cluster, Few, and Many filters.
* Removed use of Dead or Squashed filters with use of Expression or Moving filters.
* Don’t allow Cursor filter with Said, Bumped, Got, or Held By sensors.
* Prevent Moving filter being used when sensing static objects.
* Don’t allow Camouflage filter on missiles.
* Removed second Lili Pad filter since these are treated the same whether it’s a single pad or a cluster of them.
* When changing missile colors (WHEN See Missile DO Color It Red), also change the smoke color.
* Fixed bug where sometimes with linked levels the characters would temporarily disappear.
* Fixed bug with knocked out characters still being tilted after being revived.

### Version 1.5.29.0 (March 26, 2019)

#### New Features

* Add MaxHealth, BlipDamage, and MissileDamage tiles. Their values can be set and read just like any score tile.
* Updated Damage and Heal tiles to support full range of scores for their values rather than just numbers.
* Add OverPath tile. This allows you to sense when a character is over a path. Does not trigger when character is jumping.
* Change OnWater and OnTerrain tiles to both return false when the character is jumping. A typical use for this would be to have the character die when touching water (or lava) but allowing them to jump over it safely.
* The MouseOver detection now also works for the onscreen GUI Buttons.
* World and private scores can now appear in Say commands much like the color scores can. To display the current value of world score A use <score A>. To display the current value of private score b use <private score b>.
* Add new settings slider tiles from controlling BlipReloadTime, BlipRange, MissileReloadTime, MissileRange, CloseByRange, FarAwayRange, and HearingRange. These can now all be adjusted via programming during gameplay.
* Accented characters in Spanish now work properly with the Spanish keyboard. For instance, typing ‘a now results in á.
* Micro:bit 1.5 is now supported!
* The edit/run cycle of complex levels should now be faster. Previously moving from run mode back into edit mode caused the full terrain to be reloaded. This no longer happens and so, should be much quicker.
* In game, when a full screen text dialog is displayed, we now wait half a second before accepting input. This is to help prevent accidental closing of the dialog.

#### Bug Fixes

* Fixed Rover’s rotation when scanning rocks.
* Increase friction for all characters so they don’t coast quite as much.
* Fixed TurnSpeed and MoveSpeed programming tiles.
* Fixed bug in terrain sensor when used over smooth terrain.
* Fixed a bunch of bugs related to movement when frame rate is very low (<10). This caused characters to fall through the ground, to get stuck when moving, to bounce oddly, to overshoot when turning, and to be too twitchy to control easily.
* Fixed bug with blips not hitting some characters. Problem was related to the order that the characters were added to the world.
* Fixed a bug in the Load World Menu when changing the sort order.
* Fixed bug in input arbitration which was causing unused inputs to sometimes block active ones. For instance, if you programmed WHEN GamePad LeftStick DO Move above WHEN Keyboard Arrows DO Move, the GamePad line would block the input from the keyboard line even when no gamepad was being used.
* Fixed a bug where rules which were first indented and then unindented would sometimes not be evaluated correctly since the system still thought they were indented.
* Fixed bug with detecting Bumped Missiles colored other than white.
* Fixed hearing range to be linear between 0 and 100 meters. Setting to full is the same as setting to infinity. By the way, the square terrain tiles are ½ a meter on a side, so 10 meters equals 20 blocks.
* Fixed missiles show by the GUI buttons to just fly forward. Previously they flew toward to world origin.
* Fixed bug with GUI button labels where they would persist across worlds even when deleted.
* Fixed bug preventing Alt+NumPad special characters from being added.
* Fixed a bug in the scoring where sometimes the private scores from the target object where being used rather than the private scores from the object running the code.
* Fixed bug with scores set to Quiet being reset to Loud on reload of level.

### Version 1.5.42.0 (May 2, 2019)

#### New Features

* Kodu now speaks Vietnamese!
* The “Print Kode” option has been updated to also include any tutorial instructions.
* More tuning on how things bounce and roll.
* The Octopus can now move on land again.
* When editing a level, you can now easily align characters with the N/S and E/W axes. Hover the mouse over the character so it is highlighted and then use the up and down arrow keys to rotate the character.

#### Bug Fixes

* Fixed a bug in the missile code which would sometimes cause them to destroy the character they were launched from.
* Fixed a bug in the text string handling code which, in some cases, could cause the help descriptions to get cut short.
* Fixed a but in the mouse click tile. When combined with a specific character type it would trigger when clicked on the background when it should only have triggered when clicked on a character of the specified type.
* The “timer” tiles were not being reset properly when a game was restarted. Fixed.
* Fixed bug with movement. Characters with no obvious facing direction (wisp, saucer, etc.) would not respond to absolute directions (Move North, …) properly.
* Fixed a bug in the language translation code which was preventing updates from being downloaded when needed.
* The alignment of pipes was originally broken. When this was fixed it left old levels with pipes in skewed positions. The code now detects old levels and fixes the pipe alignment.

### Version 1.5.47.0 (June 12, 2019)

#### New Features

* First is the % sign. You can now use this when doing math with scores.
* WHEN DO SetScore Red Green % 20Points 3Points <– this will set Red to 23% of Green (or Green% of 23, same thing) Since scores are integers, all results are rounded off.

* Second is the ability to rename characters. You can now change a character’s name to make it easier to keep track of. The rename option is found in the character settings (DNA) menu. Also, if you right click or tap on a character, the Rename option will appear in the menu. Multiple characters can have the same name.
* There are also new filter options derived from the named characters. You can name a character “Fred” and then program another character with WHEN See Fred DO … Note that the name acts like a characteristic of the character. So, for instance I could create a creatable Saucer and a creatable Sputnik, and name them both “Enemy”. As they are spawned, they will all be called “Enemy” so I can then program my character with WHEN See Enemy DO … and this will react to both Saucers and Sputniks. I think this is going to be a very powerful feature for more advanced users. Not only does it allow some interesting capabilities, but it also can help to make the intent of characters more clear helping to make the game more understandable.

#### Bug Fixes

* Tuned the way friction is calculated. The old code was causing strange behavior (spirals) when some characters moved vertically.

### Version 1.5.76.0 (March 22, 2021)

#### New Features

* Add support for micro:bit V2. Kodu should now work with V1 or V2 devices.
* Add support for translating individual levels. Includes support for localizing: - titles - descriptions - ‘say’ strings - ‘hear said’ strings - tutorial instructions Includes Russian for built-in Kodu worlds. Right now doing a translation is a tedious process of hand editing the Xml file. In the future I hope to create a tool to make this easier and less error-prone.
* Tweak the movement of Kodu and other bots that use the hover chassis. This change is not drastic but does make the bots feels more controllable and less like they’re sliding sideways a lot.
* Fix bot to bot collision response when one bot is user controlled and the other is not. Previously the user controlled bot wouldn’t budge when collided with. Now acts as it should.
* Change News Feed on the Main Menu page to stay open all the time. Previously, it would close when not being read which may have hid important announcements. When open it would also sometimes “trap” input making it difficult to get back to the Main Menu.
* Kodu terrain map files now use the extension .Map instead of .Raw. The .Raw extension was being blocked by some anti-virus software. There should be no user-noticable effect of this.
* Add further compression to audio and remove opening video to reduce installer size.
* Update EULA, Privacy Statement, and Code of Conduct links to point to web site.

### Version 1.5.81.0 (May 6, 2021)

#### New Features

* Looks like I made a mistake with the last release which caused the terrain for worlds to disappear when imported. Apologies. This new version should fix the problem.
* This release also fixes a problem with loading languages that only seemed to show up on systems set to Vietnamese. I’m still not 100% certain what caused the issue but this does fix it.

## Version 1.6

### Version 1.6.11.0 (January 5, 2022)

#### New Features

* Final release
* When Random was used with a Timer, it was picking a random time once and then using that time over and over. Now a new random time is chosen for each interval.
* Thumbnails are now higher resolution so they look better in the Load Worlds page.

#### Bug Fixes

* The Save Level dialog was not handling Alt+ character input properly.
* The News feed was running slowly causing the Main Menu to sometimes not be very responsive.
* When sharing linked levels they weren’t always uploaded properly.
* Imported levels sometimes had their terrain deleted. This should be resolved now.

### Version 1.6.12.0 (January 15, 2022)

#### Bug Fixed

* This is a required fix. We found a bug in the new Community code which would cause uploads to fail. This fixes that bug.

### Version 1.6.18.0 (April 9, 2023)

#### Bug Fixes

* Kodu was having trouble importing worlds with multiple levels. The terrain files were getting duplicated and cross linked between the levels. This should be better now.
* Some Vietnamese uses would not get all the language options. I’m still not sure what was causing this problem but I’ve made some changes that I hope will help.
* The “Avoid” tile would occasionally cause a crash. This is now protected against.