Designing the Game

Choosing the Tech

Deciding which technologies to use was really the first step of this project. I knew I wanted the project to be built on open source and free (libre) technologies, so it was fortuitous that Microsoft had recently open sourced most of the .Net Framework and ASP.Net (although the Mono project has already been around for a while). It was fortunate, primarily, because I was already comfortable with C#, and the language has excellent tools (LINQ) for organizing collections of data, like players, robots, and board elements.

Even better, the open sourcing of ASP.Net meant it had been ported to Linux and could run on a Raspberry Pi, an ideal, inexpensive platform for hosting the game server. While any computer could host the game server, having a dedicated server on a Raspberry Pi meant it would be portable and could easily broadcast its own Wi-Fi network for the robots and players. Running ASP.Net on a Linux system seemed a little odd at first, and certainly the bugs of beta software had their annoyances, but overall it seemed like the best option to me.

Deciding to go with Arduino and, later, the Arduino compatible Teensy platform was much easier. Arduino is currently the most popular hobbyist hardware platform in the world with lots of excellent community support, so it was the obvious choice.