I spend a lot of time on the road and often need to stay online. Back in the Windows Mobile days, it was pretty easy to turn a WM6.x device into a personal Wifi hotspot; unfortunately this isn’t so easy on Windows Phone 7. In fact, most of us now carry Verizon air cards/USB modems for alternative access. While this has worked great, I often would prefer a hotspot: I might need to have other devices like a Zune player get online, or might need to share an internet connection.... [More]
You’ve heard about cloud computing and already know it’s the greatest thing since sliced bread – and maybe you’ve already attended a Microsoft Azure Boot Camp or other event introducing you to the cloud and detailing the various parts of the Windows Azure platform. Well we’ll do that too… in the first half hour! The rest of the time we’ll have a bit of fun with Azure by taking a look at some cool demos and poking under the hood. We’ll then t... [More]
During a presentation the other day to the Charlotte ALT.NET group, I made a joke that Rock, Paper, Azure is doing something completely ridiculous: we invite people to write code and we’ll run it arbitrarily. (Well, not really arbitrarily, but it does present a unique security challenge.) We’ve naturally had a few interesting submissions, so I’m posting some of them here for interest sake. First up: Thread.Sleep(...);
We see this one fairly often. In a game where you h... [More]
In part 1, I detailed some of the specifics in getting the Rock, Paper, Azure (RPA) up and running in Windows Azure. In this post, I’ll start detailing some of the other considerations in the project – in many ways, this was a very real migration scenario of a reasonably complex application. (This post doesn’t contain any helpful info in playing the game, but those interested in scalability or migration, read on!) The first issue we had with the application was scalability. Every time pla... [More]
In a few weeks, my colleagues Glen and Joe will be in Charlotte (and a few other locations around that time) holding their successful Windows Phone garage events. The latest event is coming to Charlotte on May 24th! Here’s the breakdown: 9 – 10 am Introduction to Windows Phone Development No experience with Windows Phone 7 development? No problem. During this optional session at the start of the day we will cover the fundamentals of Windows Phone Silverlight and XNA Development. We'll explore... [More]
In a previous post about locking in Rock, Paper, Azure, I said this somewhat offhand:
In this case, there’s no reason to use such code in a bot. The only time you’d need to is if your bot has a static method/object reference, but that’s a bad idea in a bot because it will lead to unpredictable results. Your bot should have only instance members.
I should’ve called that out more, and in this case, we have a player who lost because of it. It’s especially tough because thin... [More]
You spoke, we listened. Rock, Paper, Azure is going well, but one thing we’ve heard from many people is that they would like a history of their games. The main reason for this is the “attack and retreat” approach some people have taken – that is, they submit a bot with their main game playing skill, quickly observe/download the results, then resubmit a weak bot. Because the MyBot page shows only the current results, odds are the other players won’t see the interim r... [More]
Over the past few weeks, we (the dev team of Rock, Paper, Azure) have gotten to be best friends with our internal legal department. It’s been an educational experience, and this is where things stand with Rock, Paper, Azure. When one player wins a round, he or she is ineligible to win a future round. If you don’t win, you are eligible to keep playing in subsequent weeks to try to win. We’ve received a number of very good questions and concerns, so, I’ll try to summarize them here. 1. Wha... [More]
For security and performance reasons, we often review what bots are doing and review any rejected bots to see how things are going. When a bot is rejected, it is typically easy to spot the exact reason when looking at the code, but sometimes it’s not so apparent. By far, the biggest case that I see is using the Lock keyword. For example: 1: lock (someobject)
3: //synchronized code
On the surface, it’s not appa... [More]
In Friday’s webcast, I showed a quick ‘n dirty utility for testing a RockPaperAzure bot outside of the game server and even the Bot Lab. When we ran some of these tournaments in person, it was very difficult to get a good feel for your bot before deploying it, and that’s why we introduced the idea of a Bot Lab. But even with the Bot Lab, if you’re working out a complex algorithm, it can be handy to have a simple test hardness.
By pulling in the DLLs from the Bot Lab, it’s ... [More]