I've done a lot of C# programming and the architecture we use of late is a MVC => PresentationService => Domain Service And/OR DataService => Repository with a UnitOfWork and a messaging bus. In web applications this gives a pretty clean and flexible design that's extensible but is also stateless.

I've been working on a 2D starter project in XNA and I find these layers are still useful until I get to the interface and start trying to deal with knowing the states of everything, keeping the sprites and bounding rectangles and detecting clicks and drags.

What patterns should I be looking at that maybe I just wasn't exposed to doing enterprise architecture but are clearly needed in a game.

Which concepts might I need to let go of when doing a game because they are not applicable.


1 Answer 1


I'm not a big fan of these on-site link posting answers, but in this case I feel there are several questions that address this.

You may also want to browse some other questions in the design-patterns tag on this site.

With respect to porting skills and patterns learned while developing business apps on the Microsoft Stack to game development, I think you're in a big boat with a lot of other developers. My guess is that you are very new to game development, so my advise would be to skip any and all patterns and best practices to get your first game working.

Some additional thoughts

  1. Keep the scope of your first game small
  2. Get something on the screen as fast as possible
  3. Make that thing on the screen react to user input
  4. Start implementing the rules of your game
  5. Finish testing, and ship your game
  6. Refactor the best bits of code into a common library
    1. Implement patterns you think fit, based on your experience with shipping your first game
  7. Start your next game and continue working on your library
  • \$\begingroup\$ Great stuff here thanks. Some of those other links are also full of links and I found a couple great high level articles which will help me try some new approaches. I appreciate the get stuff working as a first start and I completely agree its an important first step. However I'm a fan of an extensible design because I want to be primarily extending my game by adding new classes and minimizing the need to modify existing classes. \$\endgroup\$ Commented Jul 24, 2012 at 21:33
  • \$\begingroup\$ @HonorableChow I understand where you are coming from; but I've read about too many games that were never finished due to getting bogged down in design and re-engineering. I have a few in that category myself. \$\endgroup\$
    – Nate
    Commented Jul 25, 2012 at 14:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .