So, now my friends of the front-end team are starting to build walls, I think it's time for the server team to wake up from its eons long sleep, deep in the walls of the fabulous R'lyeh city.So let's start by some general considerations.
As mentionned in the
wiki, one of the most required features is the ability to save scores server-side, and to comapre score between players in a (expected social) way (like, say, using
geoip to get scores of players nearby).
To implement these features, our team has decided to rely upon, some buzzwords (which, in fact, can be considered as some serious players in their games) :
- Google app engine for the infrastructure, hosting, admin, ... Indeed, we know that JavaEE free hosting providers are not that many. And we also know we will use Java for server-side. Obviously, there are more "modern" and "dynamic" languages. However, after having used them on other attempts, we know their dynamism come at the cost of maintainability (yep, this is a troll).
- So we'll use Java on server
- And, since we want to communicate with a client, we rely upon a REST architecture, implemented using restlet.
So, here are our bricks. Now come the hard part : how will we link them together ? Let REST it ...
In first multiplayer steps, user will have its score saved for each game it plays, so we will have to have a PUT with player name, game name, and score.
Obviously, a second call should be able to send last scores, and scores around player (say the 100 before and the 100 after).
Finally, since we rely upon Google architecture, and since we want to be good google-tizens, we may implement a request limiter, maybe based upon some restlet features ... But this will be the subject of an upcoming post.