Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I'm a desktop developer (I mainly do WPF for a living) but I want to make games as a hobby.
So a few months ago, I started reading blogs, gamedevSE, you name it.

I understand in the C++ DirectX world, you have engines such as Unity3D with designers and whatnot, but as much as I'm ok to spend months understanding game development, I'd prefer to stay with my comfy C#.

So I thought I'd develop my first games in /C#/DirectX through SharpDX

But then, I can't use game engines anymore, since they're made for C++DirectX and not SharpDX. (ok, I could do P/Invokes but that defeats the purpose of SharpDX).

I do know about XNA, and I also do know I can't publish to the marketplace with it (and quite frankly, I don't really want to learn an API that is in jeopardy).

So how do you conceal writing games in C# and using existing game engines instead of reinventing the wheel? wait for ports?

So I've found out the following:

  1. After doing the first tutorials of MOgre and digging around, it seems MOgre gives you the worse of both worlds: .

    • You can't port it with Mono because it directly references a C++/CLI dll (Ogre) and C++/CLI isn't supported by Mono.
    • And since it's not C++ itself, you can't make a pure build.

    Which, as far as I understand, means I'd be stuck on windows (and not even WinRT/Metro compatible), without capability of porting anything to mobiles or other OS (Mac/Linux).

    Even though it looks really nice to develop with MOgre, I'd like to learn something a little more open to future broadening.

  2. On the other hand, MonoGame seems to be a rewrite of XNA with SharpDX which sounds very promising:

    • Mono allows me to easily port my games to other platforms, mobiles included.
    • SharpDX allows me to access the latest DirectX versions
    • XNA would be my first choice if only MS showed some hope for the future

    It really looks like MonoGame is nothing else than XNA on SharpDX.

  3. Axiom looks good too but I lack info on the subject (and pages with poor design don't give me a good feeling about an API...)
  4. XNA with SunBurn looks good:

    • It should be portable to Mono (can anyone with experience give us feedback on that?), thus multi-platform.
    • It's then marketplace-able since Mono itself is.

Did I miss something or are 2) and 4) my best options (aside from the fact Mono doesn't support any XAML)?

share|improve this question

migrated from stackoverflow.com Jul 23 '12 at 12:44

This question came from our site for professional and enthusiast programmers.

    
No one in the answers has mentioned SlimDX...Same problems (I think) as with SharpDX, but I figure it should get a mention. –  Sprunth Jul 23 '12 at 23:43
    
@Sprunth you mean SlimDX, like SharpDX, doesn't have a full fledged game engine ready? –  Baboon Jul 24 '12 at 8:38
    
Yeah, nothing significant. You would probably have to do P/Invoke as well, unfortunately. By the way, there are some higher level engines you may consider, such as Irrlicht, which has a great C# wrapper. The C++ examples can be very easily translated to C#. –  Sprunth Jul 24 '12 at 17:17
    
You are misinformed re Unity: Unity is based on Mono, not on C++. It is a good approach for C# programming. Another good cross-platform C# option is Xamarin. It can be used with MonoGame. –  ToolmakerSteve Apr 26 at 5:00

5 Answers 5

up vote 10 down vote accepted

If WinRT publishing is a concern, the only managed DirectX wrapper that is supporting it is SharpDX.

If you are looking for a higher level API, you could try to use MonoGame available from develop3d branch that is using SharpDX as a backend to support WinRT. MonoGame is not a game engine, but It provides at least some infrastructure to build games.

Concerning opensource game engines running on WinRT (from your question, It seems a requirement), there are not so much available right now in pure C++ (Ogre3d?) and probably none in C#.

share|improve this answer
2  
+1 for info about WinRT/Monogame :) –  Dr. ABT Jul 20 '12 at 8:46
    
Please see my updated question. –  Baboon Jul 22 '12 at 19:19

You can use a managed wrapper or framework to access the GPU directly. These as you've identified include

Alternatively you can use a .NET game engine (these do exist!). For instance:

Of these the one I've heard the best things about is Mogre (Managed Ogre)

share|improve this answer
    
Ah yes I had heard about those, but I want to target the latest and greatest DirectX stuff, don't those build over XNA instead? And what about integration into a WPF environment? –  Baboon Jul 19 '12 at 13:03
    
SlimDX is basically a .NET wrapper for DirectX. Its not a game engine however. As far as latest and greatest goes in managed game engines, well, there's not a lot, because there's not a lot of demand for it! MOgre can integrate with WPF but you'll find it fairly outdated or difficult to get started. –  Dr. ABT Jul 19 '12 at 13:37
    
Can games made with MOgre be integrated in the marketplace? –  Baboon Jul 20 '12 at 8:28
    
Please see my updated question. –  Baboon Jul 22 '12 at 19:32
    
I think your best bet is to go with MonoGame, or write in C++. That's the state of play with C# game development - almost all game dev is done in C++ –  Dr. ABT Jul 23 '12 at 9:11

Unity is C#/JavaScript based. They also support Boo. But the point I wanted to make is that Unity is C#, not C++. In fact, you can actually set VS as your preferred IDE when you write the scripts.

Additionally, Unity3d's CLR implementation is Mono-based, which I believe is something you were looking for.

share|improve this answer

your other option is ANX (if that project is still active)

http://anxframework.codeplex.com/

share|improve this answer
    
It is, Windows 8 is working right now and there are commits nearly every day –  floAr Oct 7 '12 at 15:16

There are rumors that SunBurn is going to have a native, cross-platform option that is separate from XNA:

Is SunBurn Going Native?

SunBurn Past, Present, and Future

share|improve this answer
    
Yes I heard the rumors, I think I'll give SunBurn a shot next weekend. –  Baboon Jul 23 '12 at 22:41

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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