Sqwarea, open source game on Windows Azure
Beyond running a small software company, I am also responsible for the Sofware Engineering and Distributed Computing course at the ENS Paris. For the fourth year in a row, Microsoft offered gracious support for this course (include some Windows Azure resources).
Every year, a small dozen of 1st year Computer Science students take over a sofware project. Last year, my students produced Clouster, a scalable clustering algorithm on top of Windows Azure. It was already significant achievement considering the beta status of Windows Azure at the time (student upgraded twice from a SKD version to another during the time of the course).
This year, my students went (*) for an online massively multiplayer strategy game named Sqwarea (heavy contraction of square+war+area).
You are a King battling over a gigantic map to conquer the world. Train soldiers, conquer new territories, and resist the assault of other kingdoms. The world is flat, see for yourself.
Despite my teaching methods, students managed to do really great (especially considering that we are only at 2/3 of the project at this point of time), so let’s review a few salient facts about this project:
- Open source, see sqwarea.codeplex.com
- ASP.NET MVC, C#, jQuery, OpenId for the front-end.
- Lokad.Cloud for the persistence, and back-end execution framework.
- Windows Azure used as the hoster.
- Table Storage for the persistence (1 entity per map square).
- Queue Storage to spread the workload among VMs.
Then, in order to make sure, project wasn’t going to be easy, I included a game rule real hard to implement:
People and soldiers have to be constantly reminded who is the King; otherwise, they just do it their own way. If, after a conquest, a part of your kingdom is no more connected to your King through a path of controlled land squares, then the disconnected area is reverted as neutral.
Apparently, students managed to implement a good (and expectedly complicated) scheme to get it this connectivity rule working in a very scalable way.
(*) Actually, every year, I choose the project to be carried on by my students. Hence, if you think the project idea is lame, blame me.
Reader Comments (1)
I believe that your students are smart to have successfully made a project such as this. But, I believe, that it is really you who made this all possible. Imagine that you really tried to make things hard for your students and made this a complicated project for them. If they were able to do this successfully, it means that the teacher iss really great and made them understand the lesson completely. Duncan Samuel Web Based Scheduling Software.
June 2, 2010 | Duncan Samuel