I would like to have an advice regarding my problem.
We are creating a multi-player internet chess game having these features:
- Game will support a very huge amount of concurrent users
- We will be saving each game move physically on disk (e.g. using SQL Server Database)
- We will utilize the same SQL Server for Sessions too
- Multiple Game Servers will be utilized for load balancing / scalability
- All the Game Servers will be connected to each other
- All the Game Servers will also be connection to that SQL Server
- Since this is a chess game therefore only 2 users can play game but
- Unlimited number of users can view this game in real-time as audience (broadcasting)
- Audience / Game Users will have an option to send and receive chat messages, privately or publicly.
- We will maintain our own User List in Database. Therefore we will be requiring a custom authentication system.
The client will be a desktop windows forms / wpf application. We are also thinking for an online browser based version too but we have put it for future, currently we are focusing on desktop version.
Now my questions are?
- Which technology we should use, Sockets or WCF?
- What is the preferred way of serialization, XML or Binary or Custom Binary?
Any other advice/suggestion/direction is also welcome.
Thanks