Last week, I flew around Australia helping out with the Bizspark dev camps. I answered questions that the attendees had on development on Windows Azure as well as Windows 8 and Windows Phone. I also got up front and did a mini presentation on development tips.

At the event we discussed ways that Windows Azure can help you quickly bootstrap your startup by providing a cheap way to deploy your web app to test the idea, and then scale it up once it starts to get popular. We also touched on how to build Windows 8 and Windows Phone apps that can be supported with Windows Azure Mobile services.

Below are some photos from the event The Sydney Event:

And the Melbourne event.

I really enjoy participating with the developer camps & app fests. It is a great way to get a bunch of passionate people into a room and swap stories. It is always interesting to see what personal projects people have been working on and need help with.

Another recent announcement was Microsoft stating their upcoming Xbox One gaming console will be support “by the cloud”. From an interview: “We touched on it briefly in our press conference, and I think it’s a really important point and a key differentiator for Xbox One. Essentially, no longer are we constrained to the processing power of Xbox One in terms of hardware; we’re able to do a lot of processing that was traditionally done on the box, in the cloud. “It’s also been stated that the Xbox One is ten times more powerful than the Xbox 360, so we’re effectively 40 times greater than the Xbox 360 in terms of processing capabilities [using the cloud]. If you look to the cloud as something that is no doubt going to evolve and grow over time, it really spells out that there’s no limit to where the processing power of Xbox One can go.” Source http://stevivor.com/2013/05/microsoft-xbox-australia-on-some-of-todays-lingering-xbox-one-questions/

Offloading processing power

For those who haven’t kept up to date on the announcements, the cloud support for the Xbox One has the potential to open up a lot more back end processing to support games than has been previously possible. Traditionally console games have been wholly self contained on the console.

Cloud support enables scenarios where you need processing done, but it isn’t latency sensitive. When you turn the console off, the game world stops until you turn it back on again. Having a cloud backend that can easily support “persistence” in your console game can make it more rich. For example while your console is off, the people in your castle can continue to go about their day to day activities so that when you come back, you can see what progress has been made in your world.

Other examples of latency tolerable calculations have been lighting effects in large areas and large physics simulations. Traditionally physics effects have been restricted to what can be processed in real time. But larger more complex simulations can be enabled now. In a first person shooter, a player could fire numerous rockets at large building. Each impact weakening the structure. Once the building has taken enough damage it can trigger the cloud to process a complex crumbling animation that takes each of the impact points into consideration. Waiting a few seconds for the results to come back is fine, as the building was slowly weakening to the point of collapse.

Game hosting

With quick match games like the original Halo, traditionally it would come down to one of the consoles acting as the game host with the other players connect to that one console. This ties up compute power on the console, as that one player needs to process game server information as well as render the scene for the local player. Using cloud hosting enables developers to offload the processing off the console to free up even more processor cycles to making the game look GOOD.

One great quote is how they can scale their servers based on the demand. Removing the usual “launch day” woes of over provisioning to handle the initial wave of players.

How is this different from other dedicated servers?With the Xbox Live Cloud, we don’t have to worry about estimating how many servers we’ll need on launch day. We don’t have to find ISPs all over the globe and rent servers from each one. We don’t have to maintain the servers or copy new builds to every server. That lets us focus on things that make our game more fun. And best yet, Microsoft has data centres all over the world, so everyone playing our game should have a consistent, low latency connection to their local data centre.Most importantly to us, Microsoft priced it so that it’s far more affordable than other hosting options – their goal here is to get more awesome games, not to nickel-and-dime developers. So because of this, dedicated servers are much more of a realistic option for developers who don’t want to make compromises on their player experience, and it opens up a lot more things that we can do in an online game. Source http://www.respawn.com/news/lets-talk-about-the-xbox-live-cloud/

Bringing the two together

The reason I tied these two announcements together (Xbox One cloud & Microsoft opening data centres in Australia) is because it will help Australian consumers a lot. While some tasks offloaded to the cloud can be handled in a high latency situation (economy simulations), there are other lots where lower latency is always better (hosting multiplayer games).

In low latency situations Australia always gets the short end of the stick due to our physical distance from both the USA and Europe. The announcements of Microsoft releasing Windows Azure datacentres which could potentially host Xbox One servers is an encouraging situation.

If my crystal ball is correct on this one, then local cloud compute happening in Australia will be a great boon to all Australian gamers.

A concern when architecting for the cloud is dealing with elasticity. The pricing of Windows Azure on compute / VM roles had an affect on how you dealt with scaling for demand. Previously if you spun up an instance for 20 minutes to temporarily deal with additional load, you would be charged for a full hour. This lead to a 1 hour granularity when evaluating when you should scale. Your best bet was to evaluate on the hour if you need to spin more up, and then 10 mins before the hour was up, evaluate if this is a good time to take them down again.

Microsoft announced updated pricing, where they will now be charging per minute.