C#, which tools/technology to use?

Started by
12 comments, last by Alain Menard 11 years, 5 months ago
Im lost in which technology to use, first i say ill use this, then change my mind and say ill use this, but I just cant make up my mind AHH.

Once I finish my exams I want to get right into developing a game, I am going to format my computer and install VS 2012 on it. My primary language is C#. All I want to develop is a 2D tile based game, and Ive already created a prototype to follow by in XNA. Does this mean I should use Direct2D? Or just go with Direct3D? (i seriously have no idea on this one).

I am very familiar with the XNA framework. I would love to use this framework but Microsoft seems to have lost complete interest in it (link), I really don't want to use dead technology.

So what technology would other C# game programmers use at this point in time?

Some of the things I have thought of doing are:

  • Use SharpDX (together with the toolkit, current in beta, although does look very promising), this provides DirectX 11 functionality which is pretty cool, but no WinXP support then.
  • Use SharpDX without the toolkit (id have to learn how DirectX actually works underneath)
  • Just use XNA, but instead program under the MonoGame framework.

Thats all I can think of at the moment.

Opinions, thoughts?
All replies are appreciated, thanks.
Xanather.
Advertisement
I was in the same situation a few weeks ago and decided to go with SharpDX. I also quite like the new toolkit. It's slighty more low-level than XNA was (although there's little difference for SpriteBatch-centric use), but it doesn't restrict the amount of DX10/11 features you can use.

current project: Roa

Yeah, I am left in limbo, I am leaning towards SharpDX more and more.

How much DirectX knowledge is needed in order to use SharpDX without the toolkit? As I said, at this point in time all I really want to do is develop a 2D game so its probably one of the more basic things DirectX can do.
Hi! Give a try to my Irrlicht Engine wrapper - Irrlicht Lime, maybe you will find it useful and easy to use.
P.S.: http://sourceforge.net/projects/irrlichtlime/

How much DirectX knowledge is needed in order to use SharpDX without the toolkit? As I said, at this point in time all I really want to do is develop a 2D game so its probably one of the more basic things DirectX can do.


SharpDX is, at its core, a wrapper around DirectX. There are some nice helpers, but the code for a native DirectX application in C++ and the one using SharpDX will look very similar.

I can't say anything about Direct2D, never used it. But in D3D 10/11 you will have to do quite a bit of work (handling shaders, vertex/index buffers, etc) to get a single sprite on the screen. SharpDX with the toolkit is very close to XNA though.

current project: Roa

I was in the same position earlier this year. I went for SlimDX in the end, as I wanted to be ready for DX11.

And I'm making a 2d tile based game (ish... it's pacman) to start with.

I've had to dabble at a lower-level than I would with XNA with regard to graphics, but to be honest that's what I wanted.

I've not used SharpDX, and I'm not sure what this tool-kit is. Is it any good?
SharpDX toolkit looks really good, it uses DirectX11, read about it here. It is still in beta but is a XNA-like API. I think in the end it will slightly-lower level than XNA allowing for more DirectX 11 features.
Right now the consensus seems to be that XNA is finally dying, in its place we are left with Mono, on which Unity is built, and which is built upon SharpDX if I'm not mistaken, that would be the chain to follow depending on the level of abstraction you want to work with.
If you like low level take SharpDX, if you want some wrapping and multi platform support but don't want a high level abstraction use mono, and if you are fine with taking only gameplay logic within a highly abstracted framework, Unity is a very comfortable engine to use.
Game making is godlike

LinkedIn profile: http://ar.linkedin.com/pub/andres-ricardo-chamarra/2a/28a/272



Right now the consensus seems to be that XNA is finally dying, in its place we are left with Mono, on which Unity is built, and which is built upon SharpDX if I'm not mistaken, that would be the chain to follow depending on the level of abstraction you want to work with.
If you like low level take SharpDX, if you want some wrapping and multi platform support but don't want a high level abstraction use mono, and if you are fine with taking only gameplay logic within a highly abstracted framework, Unity is a very comfortable engine to use.

I think your referring to MonoGame (Open Source implementation of the Microsoft XNA 4 Framework). The Mono Project itself is basically a cross platform implementation of .Net which makes it possible to create cross plateform applications in C#/ASP.Net and many others and which Unity does use. MonoGame according to the site uses OpenTK for OpenGL rendering or SharpDX for DirectX rendering depending on which platform its running on. I've been considering using these projects myself but haven't done so yet. Anyways hope this informations helpful in clearing up any problems if nothing else OpenTK could be useful to you in the future if you decide to go with SharpDX and later want to mess with OpenGL and possible cross platform implementations.

PS: Posted mostly to try and clear up any miss misunderstandings.
For what it's worth, I've found the .NET wrappers of SDL and SFML (SDL.NET, SFML.NET) to be most excellent and very simple to use.

I have been building exactly what you mention - a 2D tile-based game. Have you considered these? They are both simple libraries, whilst offering you direct access to OpenGL if you want raw power. You probably aren't gonna need most of the features in these more powerful frameworks (ie. XNA), for a simple 2D game, however I can't speak for OpenTK/SharpDX as I haven't had much exposure to them.

This topic is closed to new replies.

Advertisement