Categories
Uncategorized

Windows Phone 7 Series: Now That’s More Like It!

Windows Phone 7 Series generic phone

A New Windows for the Phone

Ever since joining The Empire, I’ve been saying that Windows Mobile needs to go back to the drawing board. While there was good technology lying in its innards – mobile versions of the .NET framework, SQL Server and Office – treating the mobile form factor as “the desktop, but much, much smaller”, was the wrong approach. In the meantime, the Esteemed Competition were doing the right thing: designing their phones’ OS features and interface from the ground up rather than attempting to force-fit the desktop UI into a pocket UI.

Today at Mobile World Congress in Barcelona, Microsoft previewed the latest in a series of steps forward – consider Xbox to Xbox 360, Windows Vista to Windows 7, Live Search to Bing – there’s now Windows Phone 7 Series.

(The name’s a bit long. Whoever does the naming at Microsoft corporate HQ must get paid by the syllable.)

A Quick Look at Windows Phone’s Experience

A good starting point is this video, which covers Windows Phone’s features in three minutes, thirty seconds:

You can take an interactive tour of the UI at the Windows Phone 7 Series site:

Screenshot of the Windows Phone 7 Series site's home page

A Closer Look at the Windows Phone Experience

Over at Channel 9, Laura Foy has posted her interview with Joe Belfiore, VP Windows Phone 7 Program Management, who gave her a walkthrough of the goodies in Windows Phone (the video is 22 minutes, 18 seconds):

Get Microsoft Silverlight

Some quick notes from the video:

  • There are three mandatory hardware buttons, which are context-sensitive:
    • Back
    • Windows (the “Start” button)
    • Search
  • The screen is a capacitive touch-screen, capable of supporting multi-touch
  • The Start menu is built up of tiles: little block representing the information and features that you care most about
    • You can add your own custom tiles; Joe shows a “me” tile linked to his Facebook profile
  • A browser with:
    • Snappy performance
    • Support for multitouch actions such as pinch zoom, double-tap to zoom and finger drag
    • Very readable text, that to sub-pixel positioning in HTML
    • Phone number recognition in HTML documents; touch them to dial them
    • Street address recognition in HTML documents; touch them to get a map
    • Multiple tabs
  • The “People Hub”
    • Aggregates Exchange, Hotmail, Gmail, Yahoo! Mail and other mail contacts
    • Provides a live feed of your contacts
  • Context-sensitive search:
    • Press the “Search” button while in the People Hub, and you search your people list
    • Press the “Search” button while in the Start menu, and it runs a web search
      • Based on your query, it knows whether to give you a web search result or a local search result
      • In the demo, Joe does a search for pizza and gets a map and results for pizzerias near him, and a quick pan over to adjacent pages yield directions and reviews
      • A tap on “nearby” yield the locations of useful things like parking, ATMs and so on near the selected pizzeria
      • In another demo search, Joe does a search for “Avatar” and it returns a list of nearby theatres and times for the movie Avatar; a quick pan to an adjacent page yields the results for local business and places with “Avatar” in the name
  • Email:
    • Easy pivoting between unread, flagged and urgent emails
    • A caching system prevents you from seeing the dreaded “loading” screen
    • Press “Search” within email and you perform a search of your email messages, by subject, text and so on
  • Rotation: you can operate the phone in “portrait” or “landscape” mode
  • Calendar:
    • Support for both work and personal calendars
  • ActiveSync works in the background and keeps the phone synced with email, contacts and calendar
  • User-customizable UI colour schemes
  • The “Pictures Hub”
    • Gallery: Lets you browse all the pictures on your phone
    • Mosaic: Recent and favourite pictures
    • What’s New: New photos from your social networks
    • Camera roll: A folder for photos taken with your phone
    • Support for photo albums from Facebook and Windows Live, which you browse as if they lived right on your phone
  • Music and Video
    • History: Most recently played music and videos
    • New: New music and videos added since the last sync
    • Zune HD-style marketplace searching and support for Zune subscriptions with unlimited music plays
  • The “Me” tile
    • Lets you update your status on places like Facebook
    • Nice little typing features like auto-spelling-correction and a special soft keyboard for emoticons
  • The UI concept: Windows Phone is task-centric, not app-centric, with a hub associated with each: people, photos, media
  • There’s also a games hub, which ties into Xbox Live
  • Third-party applications and games? Wait…

Wait a Minute…What About Third-Party Apps and Games?

"MIX10: The Next Web Now" logo buttonCan you wait a month?

Here’s the deal: the announcement at Mobile World Congress was about showing what Windows Phone can do. As for what’s possible on the developer front, it’ll all be announced at the MIX10 Conference, which takes place from March 15th through 17th in Las Vegas.

There will be a dozen sessions at MIX10 for Windows Phone, and they promise to be quite interesting. I’ll be at MIX10, and will blog what I learn from these sessions when they take place.

You can save $200 off the price of MIX10 registration if you register before February 21st, so if you want to get in on the ground floor with Windows Phone and save some money, register now!

What the Tech Press is Saying

Pretty good stuff, actually. Rather than bury you with links to a zillion blog entries filed from Mobile World Congress, I thought I’d pick two of the big tech blogs, Gizmodo and Engadget:

Here’s what Gizmodo has to say about the new Windows Phone:

It’s different. The face of Windows Phone 7 is not a rectangular grid of thumbnail-sized glossy-looking icons, arranged in a pattern of 4×4 or so, like basically every other phone. No, instead, an oversized set of bright, superflat squares fill the screen. The pop of the primary colors and exaggerated flatness produces a kind of cutting-edge crispness that feels both incredibly modern and playful. Text is big, and beautiful. The result is a feat no phone has performed before: Making the iPhone’s interface feel staid.

If you want to know what it feels like, the Zune HD provides a taste: Interface elements that run off the screen; beautiful, oversized text and graphics; flipping, panning, scrolling, zooming from screen to screen; broken hearts. Some people might think it’s gratuitous, but I think it feels natural and just…fun. There’s an incredible sense of joie de vivre that’s just not in any other phone. It makes you wish that this was aesthetic direction all of Microsoft was going in.

Here are Engadget’s impressions, after having some hands-on time with Windows Phone:

The design and layout of 7 Series’ UI (internally called Metro) is really quite original, utilizing what one of the designers (Albert Shum, formerly of Nike) calls an "authentically digital" and "chromeless" experience. What does that mean? Well we can tell you what it doesn’t mean — no shaded icons, no faux 3D or drop shadows, no busy backgrounds (no backgrounds at all), and very little visual flair besides clean typography and transition animations. The whole look is strangely reminiscent of a terminal display (maybe Microsoft is recalling its DOS roots here) — almost Tron-like in its primary color simplicity. To us, it’s rather exciting. This OS looks nothing like anything else on the market, and we think that’s to its advantage. Admittedly, we could stand for a little more information available within single views, and we have yet to see how the phone will handle things like notifications, but the design of the interface is definitely in a class of its own.

(In another article, Engadget simply summed it up with “Microsoft is playing to win”.)

Watch this Space!

"Counting Down to Seven" badgeWe’ll have more announcements about Windows Phone over the next few weeks, so keep an eye on this blog!

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

It’s a “Portal” Day Today

Today is all about virtual meetings; I’m spending most of it sitting at the home office with a headset microphone clamped to my head, bouncing from one online meeting to another, magically transporting my presence over great distances. My co-worker John Bristowe is in the same boat and quipped on Twitter: “I feel like I’m playing Live Meeting Portal”.

With that remark, and since it’s a Friday, I can’t help but post this amusing cat photo featuring Portal:

[ani] portal kitty

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

The Life and Times of Internet Explorer 6

Over at the design-oriented Smashing Magazine site, you’ll find Brad Colbow’s comic, The Life and Times of Internet Explorer 6. It’s the browser we all love to hate, including we who collect a nice fortnightly deposit from Microsoft into our bank accounts. I got a great laugh at DemoCamp Toronto 21 when I said “If you got a cat when IE6 came out, it’s dead now.”

It wasn’t always this way, as the first section of the comic shows (you can click it to read the whole thing):

Part 1 of "The Life and Times of Internet Explorer 6"

There’s a fair bit of history covered in the middle section of the comic, but I feel that the most important sections are the first (shown above), and the end, shown below:

Final part of "The Life and Times of Internet Explorer 6"

That is the real question: “Can we stop supporting IE6 yet?”, followed by a real answer: You have to look at your audience. If you can drop IE6 support without ruining the experience for the majority your audience (you have to make the call on what constitutes a majority), then by all means, go for it.

Expecting people outside our industry to have as much interest in browser technology is about as fair as my insurance agent expecting me to have as much interest in the ins and outs of insurance as he does. I only care about the amount of coverage, the deductible, the slip of paper that goes into my glove compartment, and how much I have to pay a year. Everything else is just yappity-yap from some suit who’s interrupting my work day, trying to show me pages of boring legalese. That’s how we look to most end users.

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

The “Ignite Your Coding” Podcast Series

image Every Thursday in March and April, my co-worker John Bristowe and I will host the Ignite Your Coding webcast series. Each hour-long webcast will feature a guest speaker selected from the bright lights in software development. John and I will start off by asking them about their views on the industry and how to thrive in an era of great technological, business and social change, and then it’ll be your turn to ask the questions.

The theme of the webcast series is “staying on top of change”. I can’t deny hat there’s a certain thrill to the changes in this still-very-new industry (remember, the formal definition of “computable” isn’t even a hundred years old, and some of the pioneers, like C.A.R. Hoare, are still alive). They can also be overwhelming. All the guests on the show have ideas about how to cope with the ongoing changes, how to make the most of your career and life as a developer and intriguing stories about their life “in the trenches”.

John and I started getting interviewees for the show by drafting a list of “dream guests” and then inviting them to speak. John’s pretty well-established in the .NET world, so he went after people that Microsoft developers would know well. I’ve spent more time in the world outside Microsoft development, so I was assigned to invite people often seen in those spheres. We ended up with a great and varied set of guests, some you might have expected and some who might surprise you. We think that you’ll enjoy the webcast and find it both entertaining and informative, whether you eat, breathe and sleep Visual Studio, dream in TextMate or stand on the front lines in the Emacs/vi holy war.

All you have to do to catch the live Ignite Your Coding webcasts is register for the ones you want (see below). We’ll record them all, so if you can’t catch the live shows, you can at least listen to them later.

Here are the guests and the dates:

Pragmatic Programming, Thinking and Learning (Andy Hunt)

Andy HuntAndy Hunt has been behind some of the biggest ideas in everyday software development in the past decade. From co-authoring the Agile Manifesto and The Pragmatic Programmer to starting The Pragmatic Bookshelf, one of the most influential developer book publishers, to helping bring about the rise of MVC web frameworks, chances are that he’s had some influence on your day-to-day work. In this one-hour webcast, we’ll talk with Andy about the ideas in his latest book, Pragmatic Thinking and Learning. We’ll discuss why your brain is where software development really happens, how you can refactor your thinking and as he puts it, “just the plain old weirdness that is people”.

Thursday, March 4, 2:00 p.m. – 3:00 p.m. EST (11:00 a.m. – 12:00 a.m. PST)
Register for this webcast (it’s free!)

Composable Applications FTW (Glenn Block)

Glenn Block is an industry expert who has broad enterprise software development experience including architecture and system design. Typically, developers of client applications face a number of challenges. One of the more common challenges is to build applications in a way that allows its various parts & pieces to be interchanged quickly and seamlessly. In this conversation, Glenn Block will provide guidance on how to structure your applications in such a way that will facilitate this capability.

Thursday, March 11, 2:00 p.m. – 3:00 p.m. EST (11:00 a.m. – 12:00 a.m. PST)
Register for this webcast (it’s free!)

Essence versus Ceremony (Jeremy Miller)

Jeremy MillerJeremy Miller is no stranger to the developer community of .NET. He is the author of StructureMap and the forthcoming StoryTeller, as well as being a major contributor to FubuMVC and Fluent NHibernate. In this one-hour webcast, we’ll discuss a wide range of topics; including how newer OSS efforts in the developer community of .NET are trying to reduce friction, AAA-style mocking instead of record/replay mocking, the effective use extension methods for cleaner/readable/easier unit testing, jQuery magic, and much more!

Thursday, March 18, 2:00 p.m. – 3:00 p.m. EST (11:00 a.m. – 12:00 a.m. PST)
Register for this webcast (it’s free!)

Agile Techniques for Paying Back Technical Debt (David Laribee)

David LaribeeDavid Laribee is currently an Agile Coach at VersionOne. Technical debt refers to the costs associated with byzantine dependencies and sloppy code. Technical debt is a drag. It can kill productivity, making maintenance annoying, difficult, or, in some cases, impossible. In this one-hour webcast, David will provide us with some advice for “paying back technical debt” with agile techniques.

Thursday, March 25, 2:00 p.m. – 3:00 p.m. EST (11:00 a.m. – 12:00 a.m. PST)
Register for this webcast (it’s free!)

Scalability and Performance for All (Richard Campbell)

Richard CampbellRichard Campbell knows a thing or two about scalability and performance, having designed and built applications for over 30 years with a number of leading North American organizations. He’s also taken that knowledge and applied it at his company Strangeloop, which builds an appliance that specializes in website acceleration. In this webcast, Richard will help us navigate the world of scalability and performance and how developers need to think differently when building applications for the future.

Thursday, April 8, 2:00 p.m. – 3:00 p.m. EST, (11:00 a.m. – 12:00 a.m. PST)
Register for this webcast (it’s free!)

State of the .NET Developer Nation (Scott Hanselman)

Scott HanselmanScott Hanselman is a household name to nearly every developer of .NET worldwide. From his deeply-informative blog to his engaging podcast, Scott is well known for his expertise and insights that he shares willingly with the broader community of .NET. In this webcast, we’ll talk to Scott about the state of the developer nation of .NET; a “what’s hot and what’s not” with developers of .NET today. We’ll also chat with Scott about his role at Microsoft and tips on staying on top of your game as a developer in the industry today.

Thursday, April 15, 2:00 p.m. – 3:00 p.m. EST (11:00 a.m. – 12:00 a.m. PST)
Register for this webcast (it’s free!)

Horrors, Overflows and Fake Plastic Rock (Jeff Atwood)

Jeff AtwoodJeff Atwood writes the popular developer blog Coding Horror, created and helps run the Stack Overflow and Server Fault and SuperUser community Q&A sites and co-hosts the Stack Overflow podcast with Joel “Joel on Software” Spolsky. With a schedule like this and a one-year-old, he somehow stills finds the time to keep his Rock Band skills finely honed. Join us as we chat with Jeff in a one-hour webcast where we talk about the Stack Overflow phenomenon, how Coding Horror grew to become one of the most-read developer blogs and career strategies in the post-desktop age.

Thursday, April 22, 2:00 p.m. – 3:00 p.m. EST (11:00 a.m. – 12:00 a.m. PST)
Register for this webcast (it’s free!)

A Chat with “Uncle Bob” Martin (Robert C. Martin)

"Uncle Bob" MartinHis business card may say “Robert C. Martin”, founder and CEO of the Object Mentor consulting firm, but we know and love him as “Uncle Bob”. He’s been coding since the Beatles broke up, and in that four-decade span, he literally wrote the books on agile and extreme programming as well as the letters UML, OOP and C++. Throughout the industry, he’s known as a champion of proper design, test-driven development and just plain writing good code. We’ll chat with Uncle Bob in this one-hour webcast, where we’ll talk about software craftsmanship, why it takes work and why it matters.

Thursday, April 29, 2:00 p.m. – 3:00 p.m. EST (11:00 a.m. – 12:00 a.m. PST)
Register for this webcast (it’s free!)

To find out more about the Ignite Your Coding webcast series, visit the Ignite Your Coding page.

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

Congrats, “Mudge”, on Landing the DARPA Gig!

imageI met Peter “Mudge” Zatko at the Cult of the Dead Cow’s hotel bungalow at DefCon 8, the 2000 edition of the notorious hacker conference. My coworker at OpenCola, Oxblood Ruffin, was a member of the the “cDc” and introduced me and the other OpenColans to him and the other nicknames in the group: “Sir Dystic”, “Dildog”, “Deth Veggie”, “Night Stalker”, “Grandmaster Ratte” and many other black-clad, charmingly oddball characters far more interesting than the characters in the movie Hackers. I think I learned more about security in the hour-long group conversation with him than I’ve learned from countless corporate security training videos and training courses. Later at the conference, the cDc would hand out more copies of Back Orifice 2000, a tool that would cause much heartburn to many people at the company where I now work.

He’s now got a big gig: Program Manager at the Strategic Technologies Office at DARPA, the Defense Advanced Research Projects Agency, the R&D office for the Department of Defense. His area of focus? Security, naturally.

Mudge was responsible for the early research into buffer overflow attacks and published one of the first papers on the topic. In 1998, he and others from L0pht Heavy Industries (a.k.a. “The L0pht”, a hacker think tank) testified before a Senate committee, saying that they could take the internet down in 30 minutes. L0pht was acquired by the security company @stake in 1999, and in 2000, the company where I worked, OpenCola, hired them to do some security consulting. He’s met with President Clinton to talk about DOS attacks and worked at BBN as a division scientist.

I’m curious to see what Mudge can do with government gear and a big budget. In the cnet article, he talks about actively responding to threats. "I don’t want people to be putting out virus signatures after a virus has come out," he says. "I want an active defense. I want to be at the sharp pointy end of the stick."

Do not mess with his pointy end! Congrats, Mudge!

Categories
Uncategorized

Visual Studio 2010 / .NET Framework 4 Release Candidate [UPDATED]

visual studio 2010 logo

If you’re looking for the latest and greatest version of Visual Studio, you’ll want to get your paws on the Release Candidate for Visual Studio and .NET Framework 4.0! It was made available to MSDN subscribers yesterday (if you’re an MSDN subscriber, you can download it immediately), and will be available to the general public tomorrow, Wednesday, February 10.

The changes in the Release Candidate (RC) are based on your feedback from the Beta 2 version and include improvements to:

  • General UI responsiveness (including painting, menus, remote desktop and VMs)
  • Editing (typing, scrolling, Intellisense)
  • Designers (particularly Silverlight and WPF)
  • Memory usage
  • Debugging (stepping, managed/native interop)
  • Build times
  • Solution/project load times

Here’s a Channel 9 video featuring Visual Studio General Manager Jason Zander talking about how the Visual Studio team addressed the feedback you gave for Beta 2:

Get Microsoft Silverlight

The team has tested the RC on all the projects they could get their hands on, but not all the projects in existence. That’s why we’re making the RC build freely available to you so you can try it out on your projects! We want to hear from you, so please give the RC a try and let us know what you think via our survey site.

In the meantime, the Visual Studio team is working closely with vendors who’ve created popular Visual Studio add-ins, such as Resharper, CodeRush and so on to make sure that Visual Studio 2010 works with them.

Update: An Extra Note from Scott Guthrie

Our goal with releasing the public RC build today is to get a lot of eyes on the product helping to find and report the remaining bugs we need to fix.  If you do find an issue, please submit a bug report via the Visual Studio Connect site and also please send me an email directly (scottgu@microsoft.com) with details about it.  I can then route your email to someone to investigate and follow-up directly (which can help expedite the investigation).

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

Hello, Kodu!

kodu game lab

Last week, I presented Kodu (pronounced “Code-ooh”) to a group of teachers and high school students at Corpus Christi Catholic Secondary School. Kodu is a system created by Microsoft Research for programming videogames without using a traditional programming language; instead, you use a combination of menus and visual programming. It was designed to be a gentle introduction to programming that would appeal to children, but many adults – myself included – have ended up getting drawn into it, spending hours constructing and tweaking game worlds.

Kodu was built using XNA, Microsoft’s framework, toolset and runtime environment for building games for Windows, Xbox 360 and Zune. It was released for the Xbox 360 last summer as an Xbox Indie Game; you can download it for 400 Xbox points — about 5 bucks – or you can try the free trial version (it’s time-limited, but full-featured). If you don’t have an Xbox 360, you can download the Windows version of Kodu for free.

Kodu’s a little tricky to describe – it’s one of those things that’s much easier to show rather than tell. Here are a couple of videos that should give you a bit of Kodu’s flavour. First, here’s IGN’s look at Kodu:

Here’s XNA Roundup’s review of Kodu:

Kodu was designed to be programmed with the Xbox 360 gamepad, which you can use if you’re programming it on the Xbox 360 or a computer (if you’re using a computer, you’ll need either a wired Xbox gamepad plugged into one of its USB ports or a USB adapter for your wireless Xbox gamepad). If you’re using Kodu on a computer, you have the additional option of using the keyboard and mouse.

This is the first of a series of articles on Kodu programming that will appear here from time to time. If you’ve got kids (or know some) who are curious about programming, or if you’re looking to try a completely different kind of programming, get Kodu on your Xbox or PC and give it a try!

In this first installment, I’ll show you how you can build a simple little program that lets you drive an avatar around a small world. In later installments, I’ll show you more game-like elements and the “code” for a game of mine called “Stupid Sparkling Vampire Game”.

Touring Teran00bia

In addition to a programming “language”, Kodu provides you with tools for editing the worlds in which your games take place. I often start with a simple, no-fuss world that I created called “Teran00bia”. It’s a small, flat square world suitable for experimentation. If you have the Windows version of Kodu, you can download Teran00bia here. I can also share the Xbox 360 version, but you have to “friend” me on Xbox Live first – my gamertag is “Accordion Guy”.

Teran00bia is a blank slate, a world with nothing in it. Here’s what it looks like when you load it:

kodu 00

In this exercise, we want to stick a single character – Kodu – into the world and allow the player to drive him around using the controller’s left stick.

To start programming, get into Edit Mode. Press the “Back” button on the gamepad to switch to Edit Mode. Your screen should now look like this:

01 world view

In Edit Mode, the left thumbstick moves your “cursor” (the purple “donut”) around the world, while the right thumbstick changes your camera angle. You use the left bumper (that’s the button just above the left trigger) to zoom out and the right bumper (the button above the right trigger) to zoom in. The screenshot below shows a zoomed-in view of Teran00bia:

02 closer up

The floating icons near the bottom of the screen make up Kodu’s menu. You use the left and right triggers to scroll through the menu and the A button to select a menu item.

Select the Object Tool from the menu. It’s the second menu item from the left, and its icon is Kodu, who looks sort of like a blue fish with an antenna. When you select the tool, the Kodu menu disappears and you’re now using the object tool, as shown below:

03 about to add

The Object Tool lets you add items to the world or edit any existing ones. There aren’t any items in the world at the moment, so let’s add one. Use the left thumbstick to move the cursor to the spot where you want to place an object, then press the A button. The following menu will appear:

04 add menu

This menu lists the items available to you. Starting at the top and going clockwise, the items in the menu are:

  • Kodu (the game system’s mascot, who can be used as either a player character or a non-player character)
  • Apple (useful as a health power-up, but nothing stops you from making them poisonous or explosive)
  • Bots 1 (a set of characters that can be used either as player characters or non-player characters)
  • Bots 2 (more characters that can be used either as players characters or non-player characters)
  • Objects (things that characters in the game can interact with, such as rocks, coins, castles and factories)
  • Tree (another object that characters in the game can interact with – I have no idea why trees weren’t part of the set of Objects)
  • Path (lets you draw paths which Kodu and the other bots can follow)

Use the left thumbstick to select Kodu from the menu, then press the A button to confirm the selection. A Kodu will appear:

05 kodu added

You can move Kodu around by pressing the A button to select him, using the left thumbstick to pick a new location and then pressing the A button to drop him there.

What we want to do is program Kodu to move in response to the left thumbstick, as is the convention for most Xbox 360 games. While Kodu is selected, press the Y button. The screen should look like this:

06 programming

Every programmable object in the Kodu game system has a set of behaviours, each one having two parts:

  • When, which describes the event that the object will respond to
  • Do, which describes what the object will do in response to the event

The behaviours are numbered starting at 1 and are listed in order of descending priority – that is, behaviour 1 has first priority, followed by behaviour 2, then behaviour 3, and so on.

Your programming “cursor” is the pencil. Move the pencil over the “+” in the “When” part of behaviour 1 and press the A button. You’ll see a menu pop up:

07 when menu

This menu lists the events to which Kodu can react. For now, we’re concerned with making him respond to the left thumbstick, which is part of the gamepad. Select “Gamepad” from the menu with the left thumbstick, then press the A button to confirm the selection. The menu will vanish and you’ll see that a “Gamepad” tile has been added to the “When” part of behaviour 1:

08 gamepad added

We need to specify which gamepad control Kodu should respond to. Make sure the pencil is over the “+” of the “When” part of behaviour 1, then press the A button. A menu containing various controls on the gamepad will appear:

09 gamepad menu

Use the left thumbstick to select “L stick”, then press the A button. The menu will disappear and you’ll see that the “When” part of behaviour 1 has two tiles: “Gamepad” and “L Stick”:

10 ks added

We’ve just described an event that Kodu should respond to. Now it’s time to describe the response. Move the pencil over the “+” of the “Do” part of behaviour 1 and press the A button. A new menu will appear:

11 move selected

This menu lists responses to events. In this case, we want Kodu to move where the player tells him to move, which is specified by the left thumbstick. Select “Move” from the menu with the left thumbstick, then press A to confirm the selection. The menu will vanish, and you’ll see that a “Move” tile has been added to the “Do” part of behaviour 1:

12 move added

We’ve now completely defined a single behaviour for Kodu: “When the player moves the left thumbstick, move in that direction”. It’s time to take our (admittedly simple) game for a spin.

Press the Back button to stop programming Kodu. You’ll now be in the Object Tool. Press the Back button again to return to Edit Mode, where Kodu’s main programming menu will become available. Use the left trigger to select Play Mode and press A to confirm the selection.

13 play selected

The program will start with the intro screen. Press A to dismiss the intro screen.

14 opening screen

You’ll now be in the game world. Use the left thumbstick to move Kodu around:

15 gameplay

Kodu moves, but he’s not so fast. Let’s look at a way to speed him up a little. Press the Back button to exit the program and return to Edit Mode. Use the triggers to select the Object Tool from the menu, then press the A button to confirm the selection.

16 stopped

Move the cursor under Kodu so that he’s selected:

17 kodu selected

Press the Y button to program Kodu. You’ll be return to his set of behaviours:

18 current program

Move the pencil over the “+” of the “Do” part of behaviour 1, the press the A button. A menu will appear:

19 quickly selected

The menu will contain modifiers for the “Move” response. Select “Quickly” from the menu using the left thumbstick, then press the A button. The menu will disappear and you’ll see a “Quickly” tile has been added to the “Do” part of behaviour 1:

20 1 quickly

To make Kodu move even faster, you can add another “Quickly”:

21 quickly selected 2

…in fact, you can add up to three “Quickly” tiles to push Kodu to his maximum speed:

23 3 quicklies

Play Around

I could cover more Kodu features, but you should use it the way it was meant to be used – experiment! Try adding other objects to the world and adding behaviours to them. Take a look at the  programming behind the worlds that were provided with the Kodu game system (be sure to check out “Left 4 Kodu Classic”, a cute Kodu version of the zombie thriller game Left 4 Dead).

Links

This article also appears in Canadian Developer Connection.