The Game: Downhill Biking Simulator
You’re high in the mountains, surrounded by centenarian cedars. Ahead of you is a winding dirt trial and your faithful companion, a border collie named Sam. You take a deep breath, kick off, and descend as fast as you can atop your Trek mountain bike. Concentrating, you zig and zag through trees towards the foot of the mountain.
On Monday I received my Oculus Rift.
The Oculus is a headset with two screens built in. When playing a game it projects a separate
image for each eye. On top of that it has sensors to detect which way you’re facing, so when
you look around the game world using the Oculus you literally turn your head. Having spent
some time playing with it and trying out various demos I thought I would share my impressions.
Last time we looked at how you could persist your game data using Azure Mobile Services.
Because Azure Mobile Services is a NoSQL data store I recommended that you denormalize
your data in order to reduce the number of requests needed to fetch things on the
client. All well and good, but this decision has a consequence. Namely, how do you
keep the duplicated data up to date?
Previously I recommended using Azure Mobile Services
to store your game’s data in the cloud. Azure Mobile Services is a collection of tools
from Microsoft which attempt to solve common problems developers face when building
apps. Chief among them is the ability to persist data cheaply in the cloud. In this
post I’ll detail how Scramble Legends uses Azure
Mobile Services to store its data, what problems I ran into, and how you can work around
them for your game.
Last time I showed you how to move images
across the screen using the Canvas control.
Just this technique allows you to create a lot of the elements in a game. That
said you may want more dynamic, animated artwork in your game. In that case using
spritesheets to animate your in-game elements is a good choice. By default Windows
8 and XAML do not provide any support for spritesheets, but with a little ingenuity
it’s possible to create the desired effect.