Side-Kick is a game development studio focused on motion games. During my two years as the studio's lead game designer we have worked with all available motion sensing hardware, produced dozens of demos and apps and three full console games (Eeedo Sports and Air Time for Eedoo's CT510 console and Mini Ninjas Adventures for Xbox and Kinect).
As I write this, the popular story in the gaming press is 'Kinect doesn't work'. I don't think that's true. I honestly believe it is possible to create great games for Kinect. It is also tricky and there are challenges and pitfalls all along the game's production and release. Below are a few lessons I learned from Kinect game development that I think might benefit other teams working with the hardware.
KINECT CAN'T DO SMALL GESTURES
The margin of error is just too big for the hardware to handle. Take a look at the Kinect's skeleton viewer. Move your arms and you'll see those crazy jumps where your elbow is suddenly positioned above your head. If the gesture you design is too small, these detection mistakes can trigger it and the player will bite their fingernails and eat their hair because they have no controller to break. So, no fist bumps and you probably shouldn't put that self destruct button right next to the ventilation lever.
KINECT DOESN'T DO FAST
The way we measure movements in our games is usually by looking at the angle and velocity of the moving body part. The sensor samples at 15 fps. Which means if the player moves his arm too fast, the Kinect might miss the movement altogether. Since you have no way to control the speed of the player's movement, your only way to deal with this is to show the player the optimal speed during the instruction stage and hope that it sticks.
THE KINECT IS SENSITIVE TO LIGHTING CONDITIONS
Sunlight can make the Kinect's detection abilities erratic at best. We've blocked all the windows in our playtesting room. If you develop for Kinect, I advise you do this. It of course, won't help you when the game reaches the player's living room.
TEACH. REPEAT. PRAY.
Teach. Finding the right way to teach the player a gesture is consistently the most time consuming and iterative process we go through. The tutorial animations on Mini Ninjas Adventures have literally gone through dozens of iterations to find the right style, angle and speed. During a game's production we bring in tons of people of different ages and gaming backgrounds to see if they understand the gestures we teach them.
Repeat. After teaching a gesture you have to repeat it. This is your way to help players retain the information. The more specific the gesture is, the more times you have to repeat it. Pressing X to do a karate chop is one thing. Slicing with your arm at a specific angle is something else.
Pray. In the office, we call it gesture deterioration. It's the process in which the player, over the hours of playing, morphs the gesture you taught them into a mutated version that is all their own. This happens to EVERYONE, including the people who actually created the game. It is inevitable. What you pray for is that once the mutated gesture stops working for the player, they'll remember to go back to the original version you taught them. Which of course, only works if you taught them well.
YOU CAN'T CONTROL THE PLAYER'S LIVING ROOM
There will be players that won't be able to get your game to work in their home. This is the one thing that really stings. It is also, I think, responsible for Kinect games' top Metacritic scores being in the 70's-low 80's. The player's set-up is something you will have absolutely no control over. In designing the game, you can discount for smaller spaces by not detecting any movement below the knees and above the player's head but that will only take you so far. The player's space can be too small, there can be too much sunlight, the placement of the Kinect can just be off.
And if the Kinect does not work for a certain player, the complaint won't be "This game hasn't worked for me, in my living room". It will be "This game is broken". It's completely understandable and none of it is the poor player's fault but you will find yourself making weepy phone calls to your mother. Just saying.
As a Kinect developer, the only constructive way to look at it is this: If most players have problem with a specific gesture, or your game as a whole, you screwed up. But, if some are saying your game is completely unplayable while others are calling it the best Kinect game ever: Forget it Jake, it's Chinatown.
PLAYERS WILL DO WHAT THEY WANT
This is the ultimate truth of our chosen profession. Games demand player autonomy to be games. This is what fuels Ebert's 'Games can't be art' argument. You can handcraft the most exquisitely designed level of all time and a player can still stand in the corner for two hours and pretend to have sexual intercourse with a potted plant. You can try to minimize "wrong" ways of playing your game but eventually, you will have no control of the player's individual experience.
When a controller is involved, all of the player's choices have to be funneled into the game through the tiny plastic device in their hands. There is only one way to press X. However, there are about a million ways to throw a punch. In a motion controlled game, players can do ANYTHING. Trust me, I've seen it all in playtesting sessions. Including the player that punched in reverse, yanking his fist backwards every time. I still don't get that one.
And, that's it for now. Feel free to ask me questions in the comments.