This post is part of an ongoing series presented by the "Every Dev Has a Story" program from Microsoft where we share stories about innovators, creators, and developers doing something unique. If you’re harnessing technology in a new way or have built something great, tweet screenshots, video, or blogs of your story using the #iDevThis hashtag on Twitter.
The city of Dallas hosted the Kinect for Windows Hackathon in July where more than 100 developers and designers met to discover what could be created with their imaginations and the new Kinect for Windows v2 sensor and the SDK 2.0 public preview. Topping the list of innovative projects was Super Dueling Golem Dudes, a two-versus-two game in which a player’s gestures control moving platforms that help his or her teammate shoot at their opponent. The creators, Daniel Fairley and Jim Welch, won first prize, taking home $500 and two Kinect for Windows v2 sensors.
We caught up with the team to ask them about their experience at the event and developing for the Kinect. Here’s what they had to say:
How did you get started building games?
DF: I've been playing around with different game frameworks since college. I started with Pygame (Python) and moved on to Löve (Lua) and Gosu (Ruby). Nothing really stuck with me until I started trying building "real" games about 4 years ago with XNA. The workflow was great for simple 2D games but I never actually finished anything since it was just in my spare time and XNA required you to write the engine first and game second. A little over a year ago I jumped head first into Unity3D and haven't looked back. I'm a full time Java web developer so the move to C# and .NET was incredibly easy to do. I like to consider myself a part time game developer doing Java web development as a hobby since my real passion is creating games.
JW: I started building games as a contributor in the form of a composer. I went to school for music and knew I wanted to make music for games or film throughout my entire education. I eventually shifted all my energy into game audio and I now do that full time. I’ve began developing my own titles because of the freedom it allows and use my connections and experience working with game developers to help facilitate that. I currently spend about 80% of my time doing audio for other people’s games and 20% on developing my own games. I’m actually looking to maybe flip that and focus more exclusively on game development.
What was the game you developed for the hackathon?
JW: The game Daniel and I built for the hackathon was a 4 player game intended to allow children with limited motor skills play with adults with a gaming background. This would allow a growing number of parents a way to experience something they enjoy with their children in an asymmetrical design that challenges all players appropriately. The game we created would consist among a suite of games and was built as a proof of concept. The proof of concept we chose to call “Super Dueling Golem Dudes”. The game consisted of two players using the Kinect moving their hands and bodies to move giant golems with platforms for hands around the screen. The other two players used controllers and moved small men with machine guns around the screen using the platforms to battle one another. The concept is a golem needs to work with their small army man counterpart to be victorious over the other golem/man team.
What was it like developing for the Kinect specifically?
JW: We used Unity and found it was really smooth working with the Kinect. Once we got everything installed properly it was all running within an hour. All of the variables were exposed and easy to tweak. Occasionally we had some issues with detecting the correct person but that was largely due to working in a room full of people walking by and not a problem with the hardware. It was a pleasant experience.
DF: I was pretty nervous about it at first since it was such a huge unknown to me going into the Kinect Hackathon. What if I had do a ton of 3D math? What if I had to build the bodies? I had no idea since the Unity3D plugin was still in beta and only for those who signed up as Kinect developers.
Once we finally got the plugin, I started hacking in the sample scenes that were given. It only took an hour or so to get the skeleton sample into our own game. After another hour or so we had everything we needed with no hiccups. The Unity3D plugin is incredibly well done and everything is abstracted out so we could focus on making a game instead of writing wrappers around everything we needed. Overall, it was a pleasant experience and blew my expectations out the water.
What were you most excited about regarding using the Kinect?
DF: The ability to use mixed inputs for a game was exciting from a game design standpoint. I brought my controllers to the Hackathon planning to use them along with the Kinect. I wanted to use the movement tracking provided with the Kinect to interact with some sort of characters controlled by players using the controller. This worked out well and play-testing was a blast. We always had people looking over our shoulders wondering what we were doing with Xbox controllers at a Kinect event.
JW: I was really excited about using the device as an alternative way for children to game. I have a 2 year old and I want to introduce him to gaming. Unfortunately he just doesn’t have the motor skills or patience for a game controller and it’s not easy to find Kinect games designed for his age group.
What was a key learning your team took away from the hackathon that could help other developers?
JW: I’d say the biggest thing I learned is not to be afraid of the Kinect technology and to start making great apps to help give people a compelling reason to start using the hardware. I mean it’s a really cool device and what it can do is impressive. I just think we are missing the software to support its potential. Hopefully, moving forward, I can be a small part in changing that!
DF: The biggest take away from the event was keep your scope small when playing with new technology especially new hardware. There's several interesting challenges to code around when using a Kinect over traditional inputs and you'll need time to find them and solve them before presenting if you want a smooth playthrough.
What advice do you have for developers who are experimenting with Kinect technology?
DF: Solve these problems early:
1. What happens when more people than intended walk into view of the Kinect?
2. What happens when one player walks out of view of the Kinect and comes back?
With so many people walking around during the event we were having trouble keeping the game focused on us instead of all the people passing by. We solved this by keeping track of the body associated with each player and ignored other bodies once we had two players. For people walking out of view, we would drop that body and wait for another person to come into view and assign the player to that body. Handling these two things early enabled us to iterate quickly and were actual real world possibilities. Always be thinking about how your Kinect game might play in a crowded room or party.