What is a good architecture for implementing a real-time, multi-player Silverlight-based game that is intended to integrate and run from Facebook?
The idea is to build a Silverlight-based game that uses social network information from Facebook as part of its play environment.
Specifically,
- Where should the game rules be implemented, in the client or on some server?
- How should the game obtain credentials and session information from Facebook?
- What should or should not be cached in the game (social network data, interactions, session keys, etc)
- How should the game notify players about asynchronous world events – polling? out-of-band-push?, some other technique?
- How should the game be implemented to minimize the risk of hacking or malicious disruption?
- How should the game be architected to minimize latency and other network bandwidth constraints?
Saw this tip online today from a former Microsoft Silverlight Program Manager.
Executive Summary: Silverlight is new for everybody, expect to throw away a lot of code while we all figure out how best to do this stuff.
Based on your requirements, I’d say your game is quite ambitious and will push the boundaries of what has been done with Silverlight (did I mention I’m jealous you’re getting paid to do this? 🙂
Silverlight was first released less than three years ago and is just starting to come into its own. If you’re going to embark on a project like the one you’ve described, you’ll be at the forefront of the community learning curve. Bon Voyage!