Implementing Touch and Sensors for Windows* 8 Desktop Games: Confetti Interactive’s experiences developing "Blackfoot Blade"

I recently wrote a case study that discusses how Touch and Sensor capabilities were implemented in a new game called Blackfoot Blade.  This game gives the gamer a battle against the ultimate enemy with the most advanced helicopter ever developed along with shockingly realistic landscapes and action-packed levels. 


Abstract

Blackfoot Blade from Confetti Interactive* is a 3rd person helicopter game that takes advantage of the touch and sensor capabilities of Ultrabook™ PCs running Microsoft Windows 8. Initial development came together quickly, but the team encountered some issues that would need to be optimized around the way they chose to implement both touch and sensors.

Tilting the Ultrabook to make the helicopter turn, strafe, advance, and retreat go with the expectation of immediate responsiveness. Firing missiles or machine guns with touch widgets on the screen is only fun if the response is immediate and consistent.

The implementation for touch and sensors is new for many PC game vendors and filtering out the proper API’s and best practices took some experimentation to get it right. This case study shares some interesting findings for what worked and didn’t work. Specifically we look at initial choice of WM_GESTURE vs. the WM_TOUCH API and why WM_TOUCH was deemed the superior choice for this project and why we used Polling calls instead of Asynchronous calls for our sensor implementation.


**Note that if you download the beta to try it out, I found that it is not designed for "tablet/slate" mode.  That is, if you have a "detatchable" or a Windows 8* Tablet then the sensors will be in the display and not in the base as they would be in an Ultrabook(tm) "Convertible."  Because of this the Helicopter will want to continually travel backwards if you are holding your tablet in front of you in a more vertical position while trying to play the game.


View Gael Hofemeier's profile on LinkedIn

For more complete information about compiler optimizations, see our Optimization Notice.