I am a C# software developer. I was recently approached by a client to develop a multiplayer board game (max 4 players). I fiddled around with WCF, WPF and EF 4.1 to get something going but I keep running into small stumbling blocks. It certainly does appear that integrating all these technologies into one solution is problematic.

I do not have extensive experience in WPF/WCF but I find the concepts easy to grasp. It's just that I keep running into little problems which are huge stumbling blocks.

My thoughts were to first create a WCF service to manage the boards and rules. I would then turn to the UI (possibly Silverlight/WPF).

I am actually at the point where I think I should try a framework or even venture to PHP/Ruby/Python.

The requirements are simple:

  • Web based
  • Turn based
  • Board game
  • Database backend

As a C# developer (possibly a poor one), what would you suggest?

  • 3
    even venture to PHP/Ruby/Python Unless your problems are C# specific, that won't help. IMHO, language specific problems are rare, for mature languages. It'd be a lot easier to suggest approaches if we knew what exactly the issues are... – yannis Dec 1 '11 at 13:17
  • I would check out SignalR, a nice introduction that can be extented to a game is here : hanselman.com/blog/… – KeesDijk Dec 1 '11 at 13:27
  • Why not use HTML 5 along with jQuery? Look into the canvas and audio controls. Makes simple web-based games very easy. Perhaps post each move back to the server via ajax (use MVC 3 on the server?) for handling the game logic. – James McCormack Dec 3 '11 at 17:28
  • 1
    This might get a better answer over at the game dev site: gamedev.stackexchange.com – Tangurena Dec 30 '11 at 21:52

IMO, use whatever technologies you want, but remember to start small. Game development gets complicated quick. Think about something like checkers that has very few rules - you still need to be able to do a number of things before you can even play a game.

Can you draw a basic board on the screen? Ok, now color alternating squares red and black. Can you draw a piece on the board? How about all of the pieces? Approach the problem like this and strive to make small improvements, not huge jumps in functionality - you'll stay saner longer. :)

There's a number of blogs / articles on the web that deal with game development and C# game development in particular. I've always found the Coding4Fun blog to be very enlightening. That might function as a good starting point.

  • +1 for use whatever you want. Any framework will be up to the task, so go with what you know. – Bryan Oakley Dec 31 '11 at 1:20
  • The rules of checkers are rather subtle and not trivial to implement correctly. – kevin cline Dec 31 '11 at 5:54
  • @kevin Oh, I agree totally. I had to explain the rules of checkers as an interview exercise once (basically a technical communication exercise). Totally a "I got this" moment and then I got into it and realized that there's a lot more down there than at first glance. That's pretty true of any game, IMHO, and the more complex the "starting" set of rules, the more involved you're going to end up being. – Brandon Jan 3 '12 at 23:29

It's not C# but for a web game, I'd suggest you look into www.stencyl.com for UI, socket.io for communicating with server and node.js as a server. Stencyl is authoring tool for Flash now, but they have HTML5 platform in their roadmap as well, so when Flash declines more, you can switch your UI to native HTML5.


Actually, I would worry more about communication than UI. From UI point of view Silverlight is perfect, but from communication point of view...

  • If it's peer-to-peer, than you can have problems with NAT, firewall etc, Silverlight will require OutOfBrowser expanded security mode to create TCP sockets.
  • If it's through Server, than you need commonication technology that supports sending notification to clients (callbacks), and WCF + Silverlight is not very simple in such scenario.
  • For a simple board game, I would think that periodically hitting the server to refresh the board would be acceptable. I wouldn't bother trying to set up a callback mechanism. – TMN Dec 1 '11 at 14:00

Not the answer you're looking for? Browse other questions tagged or ask your own question.