Category Archives: Book Reviews

Books

Augmented Reality with Kinect

Augmented_Reality_with_Kinect

Rui Wang‘s book on Augmented Reality with Kinect is a lovely introduction to using the Kinect SDK to create a simple application, which takes the reader through a large amount of information on Kinect in a remarkably short space of time.  It holds your hand and walks you, step by step, through the process of creating a “fruit ninja” style game (much beloved of UK Prime Minister David Cameron) and provides detailed and well annotated code samples for you to use.

This short tutorial book is an absolute must for anyone finding their feet with Kinect development, and I would strongly recommend it for any intermediate C++ coder who wants to dip a toe into the world of Natural User Interaction.

Augmented Reality means a lot of different things to a lot of different people, but this is very much in the vein of taking a live video feed and adding CG elements on top. If this is the sort of thing you’re interested in.  Be warned however, that it does not cover topics such as AR Markers, which are used a lot in marketing / mobile applications – it is purely focused on the Windows Kinect side of things, at which it does a very good job.

Alias Cummins

Kinect for Windows SDK Programming Guide

kinect-for-windows-sdk

This book, produced by Packt Publishing, purports to be a complete guide to the Windows Kinect SDK. This is not to be confused with the broader themed Kinect books which may cover more subjects such as OpenNI, Omek Beckon, Lib Freenect or various other related topics. This book very much concentrates on the official Microsoft Kinect SDK.

It begins with an excellent and well researched discusson of the Kinect hardware, which is well illustrated, and features all of the relevant information in an easily digestible form, and can be easily picked up if you need to quote a client the specs, like for example the field of vision of the depth sensing camera. It’s 43 degrees.

We are then walked through the basic SDK setup, which is simple enough, and then a discussion of the sensor’s capabilities. Seaonsed professionals may want to skip through this, as they will likely already know much of this, but nevertheless there may be a few head scratching or eureka moments when you fill in a gap in your Kinect knowlegde, so I’d recommend a read through of this section.

After an overview of the various tools and components of the SDK, we start to see some code examples.

Sadly, this is where the book and I begin to part company. The example code is almost entirely written in C#, which is not a language I generally use. Although I’m perfectly comfortable using Visual Studio, I generally use it to code in C++ (which the SDK extensively supports) so I feel that this was a bit of an oversight. I’m sure for anyone starting out who is already familiar with C# and WPF programming, this wouldn’t be a problem, but as I work with Cinder and a number of other C++ libraries, C# isn’t really an option.

The book continues on through the various capabilities of the device and the SDK, and as long as you don’t mind being tied into C sharp, it’s a pretty comprehensive read and holds your hand all the way through. It also covers tricky stuff like the encoding of player ids into the 16 bit depth image stream, something which can cause a lot of confusion starting out, but is vital to get a handle on.

It also covers less well understood topics like speech recognition, beamforming, and does a good job of introducing the reader to simple gesture recognition.
Be aware, however, that gesture recognition is not actually provided by the Kinect SDK as such, and you will have to come up with your own solution for this. This is a pretty common gotcha with Kinect applications, and it can take a long time to get to grips with, so be warned that allthough the material in the book is a good starting point, you may want to look into more sophisticated gesture recognition solutions if your application needs to do anything complicated.

As I’ve mentioned, I was a bit disappointed on the heavy reliance on C sharp, but the rest of the book is so useful that I’d say it’s a welcome addition to your library even if you don’t us C#, just for the hardware information alone.

Kinect for Windows SDK Programming Guide is available now from Packt Publishing.

Mathematics For Game Developers

By Christopher Tremblay – Thomson Course Tehnology
cover

Mathematics For Game Developers is a really unique book. It approaches mathematical subjects from the perspective of the game developer – while still staying in-depth and accurate enough to satisfy the more mathematically minded. It covers all the essential topics – vectors, matrices,physics, calculus, manipulating equations – and it relates them directly to their applications in games programming. It introduces topics one by one, and builds upon existing knowledge – however, it’s also accessible enough that you can just dip into a random chapter and not be too lost. More complex algorithmic subjects like collision detection and space partitioning are covered later on, and these topics are all handled very well. The solutions the book provides are mostly in the form of equations, so you’ll need to do a little work converting them to code, but all in all I think you’ll find the book invaluable. The section on space partitioning is excellent, as is its coverage of understanding lines – a topic usually skipped by math authors as it’s supposedly an ‘elementary’ problem – however the limitations of the conventional y=mx+b approach are explored and worked around in one of the early chapters.

There is so much unique and useful information in this book, and it is presented in such an accessible way, I’d definitely recommend it to anyone who is interested in games development. A basic high school maths knowledge is assumed, but it could be read in parallel with a more conventional book to cover or revise the math basics.

The only things that count against it are the contents of the CD – no Maple evaluation (possibly not the publisher’s fault), and the code samples are a little lacking – absolutely no sample code for collision detection? Unacceptable. There are also some minor typographical errors in one or two of the proofs/expansions, but nothing fatal.

Overall, a great, accessible, knowledgable book, which should find a prominent place in any serious game developer’s library.