The Kinect SDK and Xbox: Part 1

No code today, just some general musings and observations on Kinect. I have been playing around with the Kinect SDK for quite a while now, creating lots of fun applications for prototypes, research and just general noodling during our much valued ‘RECESS’ time. One of the things that always pops up during conversations with clients or colleagues is ‘How cool is that! We need to make an Avatar and drive it with the Kinect!’. And I agree, that would be cool.

It turns out that XNA Game Studio has its own avatar API, and can even generate a random avatar for you. Getting the avatar to move with your Kinect data is not trivial, but not impossible either- basically mapping the Kinect SkeletonData Joints to the corresponding avatar joint or position. Several people have given this a go, with good success… to a point (a simple ball joint example here). The problem lies in the data that comes from the SDK. When it loses track of a joint, or when one joint passes in front of another, the data coming out is just all over. If you stand behind a chair, your avatar or skeleton will show your legs flopping around completely akimbo. Not a pretty sight.

That leads into what really interests me: The features I see in Xbox Kinect that are not available in the SDK. For example, the Xbox version has higher fidelity and can track more joints. And even more interesting to me is that the avatars themselves have joint restrictions- so even if the data is garbage, the avatar never moves to a completely bizarre position.

What I would really like is to create an avatar with XNA Game Studio, and drive it with the data from the Kinect SDK with this joint restriction applied. And then maybe with some changes publish my application to an Xbox using the Kinect on that platform as well. Well, it seems you can’t get there from here- while XNA Game Studio will allow you (with the proper licensing) to publish games to both PC and Xbox, the Kinect packages are obviously different and incompatible.

So just to explore it, what does it take to become an Xbox Kinect developer? Well, I can’t say I have the conclusive answer on this. Not being part of that community it seems the information is difficult to obtain. From the Microsoft site, you need to be part of the Xbox 360 Registered Developers Program. And to become a partner in that program you need to email them with a concept and wait a bit. And then sign an NDA. And then wait a bit more. And that’s if you do not have a Development Account Manager. If you do, then I guess you already know what to do.

I want information. How much, exactly, does it cost? Are there any smaller Kinect for Xbox developers out there? Or is it restricted to big game developers? What equipment is needed, and kits? How difficult is it to port a game from the PC with the SDK to Xbox? Judging from the blast of media from Microsoft regarding the Kinect, I would have thought this information would have been easier to access. Ah well these are the questions I hope to have answered for Part 2!