Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I need a nudge in the right direction from someone more experienced in windows game development.

I want to write simple C# 2D windows game for fun (think something like old Sim City or Civilization). I used to write simple windows games before, but I was out of the loop from game development for a long time.

What would be good technology to start quickly these days? Quick google search, shows DirectX, Managed DirectX, XNA, but I do not know enough about those to make a choice.

To make this question more constructive, can someone explain what options are available, and what would be their strong and weak points?

share|improve this question

closed as off topic by Eric King, World Engineer, Karl Bielefeldt, gnat, Martijn Pieters Mar 2 '13 at 21:30

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

Thanks, I've seen the post before... but that's more about 3D development of commercial games. I did not know there is, so I'll give it a try. Thanks – Sebastian K Mar 2 '13 at 17:39
Just FYI, XNA is no longer being developed by MS:… – Brian Snow Mar 2 '13 at 18:09
thank you, that's exactly input I was hoping for – Sebastian K Mar 2 '13 at 19:27
I'd avoid lower level libraries. They tend to require quite a bit of work just to get basic things working. – CodesInChaos Mar 2 '13 at 20:40
up vote 2 down vote accepted

For rendering :

SDL is popular for 2D games. Freeciv (free game similar to civilisation) is actually using this library for rendering. SDL is not a C# lib but there is a sourceforge project on a C# wrapper (called SDL.NET).

I believe SFML is also well suited for your needs. It is dangerously simple and provide a binding for c# (SFML.Net).

If you have more time to dedicate to your project(s), using directly DirectX or OpenGL to render your sprites is a very valid option. It will be a little more complicated to setup but is very feasible even for super Indy game developers. Also, DirectX or OpenGL are 100% valid for 2D games even though they are generally more associated with 3D games.

For physics

If you need physics for your game you may be interested in box2dx (C# port of Box2D)

share|improve this answer
Thanks SDL looks promising... I will look into that – Sebastian K Mar 2 '13 at 17:46
"dangerously simple" How so? – Joe Z. Mar 2 '13 at 19:32

XNA may not be further developed, but it's still a viable option for a hobbyist. There's also an open source implementation of XNA available - MonoGame. Both are frameworks that handle lower-level details of graphics programming, sound, input and content management and allow you to concentrate on the actual game code. Unless you are overly modest in describing your past experience with game development, I believe it'll be a far better investment of your time than coding against DirectX or OpenGL.

Unity is another, possibly more popular option. In exchange for - in my eyes at least - steeper learning curve you get a complete game development environment more in line with actual industry-level tools than what XNA or MonoGame can give you.

share|improve this answer

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