Realsense & Unity3d : A First Look

(by Jon Collins, on behlaf of Soma Games and Code-Monkeys)

This article is part of a series that documents our ‘Everyman’ experience with the new RealSense hardware and software being developed by Intel.

Full disclosure, Intel does pay us for some of this stuff but one of my favorite aspects of working with them is that they aren’t asking us to write puff-pieces. Our honest, sometimes critical, opinions are accepted…and even seem to be appreciated…so we got that going for us.

A First Look

There’s no denying that the Pre-alpha SDK is exactly what it says on the box, a pre-alpha, that said there’s a surprising amount of useful functionality which can be gleaned from looking deeper into the C# samples that are present and taking lessons learnerd from previous SDKs.

First off, the kit includes a Unity3D sample (there is just the one in the current package) is the Nine Cubes sample within the frameworks folder of the samples directory structure.

This gives us a good starting point to look into how to take advantage of the camera & SDK, although a few red-herrings are present which may be hangover from development versions, it gave us enough of an idea to further explore and adapt some of the separate C# samples bringing that functionality into our initial Unity3D project. (CS: We use Unity3D almost exclusively here at Soma Games so having this bridge to RalSense was a practical pre-requiste for us to consider adoption of RealSense)

RealSense Hand Joints and BonesFor this exercise we were primarily concerned with being able to track & record finger joint positioning within Unity3D. The available methods and documentation suggest there is an planned ability to load, save, and recognize gestures from a pre-defined library but after a little digging and running questions up to the dev team it appears that feature has been ‘delayed’ 🙁 So with our hopes dashed at not finding the C# gesture viewer sample we wanted to see how, or even if, we would be able to access the joints to explore developing our own approach to logging finger & hand poses.

Developing AppUp Games Using Unity 3D

One of the most exciting and powerful tools available to the indie developer today is Unity 3D (http://www.unity3D.com), a wildly popular game engine that exploded in popularity when the iPhone app store roared into public prominence. The Unity 3D engine has become so popular in part because of its ease of use, powerful tools, and too-good-to-be-true pricing. We’ve raved about Unity as a tool in the past though so I wont get into all that again. Instead I’d like to look at one specific aspect of how Unity and AppUp work together in beautiful unison.

Big Lesson #1: Multi-platform is not an either-or concept. It’s emphatically an also-and concept.

One of the most valuable aspects of Unity 3D is its ability to deploy a single project to multiple platforms. By installing various plug-ins or a little ninja coding you can build one game that runs on everything from Mac and PC desktops, all manner of mobile devices and even in a browser. Today’s case in point will be our recent release of Bok Choy Boy and how we brought it to Intel AppUp (here) at the same time we launched to several other platforms including iPhone, iPad and a browser based mini-game.

IMHO the profound magic of the app store model, specifically places like AppUp, iTunes and the Android marketplace is a massive, instantaneous, global distribution network. So long as you plan for it up front there is no reason not to target ALL of these platforms at one time in order to create the widest possible exposure for your game…and in so doing try to take over the world…again. The reality is that you never know where a game will catch on. For example, when Bok Choy Boy launched we never expected the HUGE audience we garnered in China. Over half of the total downloads have been in a country that we weren’t even thinking of. In hindsight we can guess why the Chinese market liked it, but we would have lost a ton of customers if we hadn’t taken advantage of the globe spanning power of app stores like AppUp and planned for multi-platform distribution and used a tool like Unity 3D. So I could keep beating that horse but seriously…do this.