I took a step back through my Game catalogue for this round of the Azure Developer Contest and decided to bring back to life the one project that always seemed to get away.
As in every developers life there’s always that one project you have been on and off again several times in your coding life, one such game of mine is Racing Sticks. It’s a simple game where you race a virtual stick with players round the world to see just who the stick champion is.
Confused, intrigued, bewildered? Read on.
The origins of Racing Sticks stems from The House at Pooh Corner, a Winnie-the-Pooh book by A. A. Milne. The premise is simple, stand on a bridge over a river with your stick in hand together with a group of friends / competitors. Drop your stick in to the stream at the same time as everyone else and then run to the other side of the bridge to see who’s stick appears first and is declared the winner (granted so long as you threw it in upstream else you would be waiting a VERY long time)
The game is actually still played today with the 2013 World Pooh Sticks Championships being held recently on the 24th March in Oxfordshire, England.
There is even a web version that you can still play today @ http://poohsticks.crowsfoot.net
Enter Racing Sticks, the pooh sticks successor
I've built a new client and backend for my Pooh Sticks successor (for obvious trademark reasons I cannot call it Pooh Sticks) which I have named Racing Sticks (might still change it if I come up with a better name, suggestions on a postcard please).
It’s comprised of a playful client where each player can:
- Select / Craft the stick of their choice
- Give it a cool and crafty name (Speedy StickMaster is already taken!)
- Customise their stick with crazy add-ons
- Join in any of the running competitions
- Go wild if you wish and have several sticks in many races.
Now, obviously there isn’t any running water or streams on our devices, what we have is the internet, a wild and tempestuous current that is the information superhighway. Races take place in this world passing from server to server, router to router and even passing a few other devices (some may get lost, that’s just how the game is played!) until it lands back at the race starting point and the winner is announced.
To keep up the fun element, players can win badges, storm the leaderboards and challenge friends and family to race. Some races take minutes, some could take days or weeks (especially if certain internet fiends start poking at servers).
Ideally there will be some procedural commentary along the way to keep the fun going.
High Level Overview
The main core components of the Racing Stick system hosting Azure and connected to Web / Mobile clients would be as follows:
- Competition Site – (Azure Website) main website for viewing information about races / competitors
- Racing News Blog – (An Azure Virtual machine from the catalogue) A virtual machine running Wordpress or other integrated blog system to both present race news and allow competitors to brag / discuss the challenges
- Competitors – (Azure Mobile Web services) Connected devices for players communicating through an authenticated Azure Mobile web service
- Race Tracker – (Azure Service bus) a backed service / service bus to run races, build procedural challenges and output commentary as races run
- Entrant / Race info – (Azure SQL) backing up the whole solution there will be an Azure SQL db to manage all the information required to run and maintain the system
More components may be required as development goes on, only time and development work will tell.
Other ideas I had to make use of other Azure offerings were:
- MNPS - Using the Push Notification system extensions for azure to update mobile devices
- Reviewing Jon Papa's Single Page Application course on PluralSight now FREE (thanks Microsoft) to help flush out the website portion (Challenge 2)
- Have a look at Xamarin's "Xamarin Studio 2.0" to flush out the clients in Challenge 5
Points of Interest
One Idea this app / game has had in the past as a wacky alternative to most similar productions in the past was my keen interest to base this on real world items.
The Sticks would be real sticks and I spent a great deal of time collecting photos of ragged and strange looking sticks that in all likelihood would never be raced and promoted them within the game, so many adventure and park walks with the family where I would disappear for a while because I was photographing some interesting woodwork.
Each stick would also feature a crazy backstory as to why you should pick it as “your stick”
In the past 10 years this is probably the 3rd attempt at making this game, hopefully this time it will make the cut.
Azure proves just how easy it is to make a backend service and so long as I don’t go wild with the clients, it could be a lot of fun.