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?