Have done XNA/C#, what's next?

Started by
7 comments, last by dilyan_rusev 11 years, 1 month ago

I spent a good deal of time developing a game concept with XNA/C#; however, since I have lost the all the files (made a mistake using Dropbox on many computers!) and with the recent anouncement that XNA is not longer supported by microsoft... I was just wondering what you think I should try next?

I have had a few glances at JAVA with LWJGL and the syntax seemed very close to C# (if not identical) but with everyone saying C++ is 'harder', maybe it would be a good experience to try that?

Thanks for your time, I'm sure you get these kinds of questions all of the time :P

Advertisement

There's not really a reason to stop using XNA if you like it. They may stop updating it, but it still works. Otherwise, MonoGame is an open source, multi-platform alternative based on XNA so it should be easier for you to pick up.

There's not really a reason to stop using XNA if you like it. They may stop updating it, but it still works. Otherwise, MonoGame is an open source, multi-platform alternative based on XNA so it should be easier for you to pick up.

I agree with this. If you're concerned about continued support (or want to develop multiplatform games), switch to MonoGame. I don't see much of a reason to use Java; the languages are extremely similar and C# has better libraries, so you'd be breaking even at best, or downgrading at worst. If you're looking for a challenge and/or are a masochist, you could always take the opportunity to try C++ and DirectX.

What do you want to try next?

If you want to take the opportunity to learn something new then pick something and go about it.

If you just want to get a game made go with what you already know -- just because they're dropping support for XNA doesn't mean you can't use it for a game now.

If you're really concerned about XNA being dropped, switch to MonoGame as suggested above.

It's all really about what you want to do, and that's something we can't decide for you. smile.png

- Jason Astle-Adams

I've been a C/C++ programmer for a while and am now switching to C# for my current needs. To be honest, learn the C++ for the knowledge, but stick with C# for development. The industry seems to really be pushing these more managed languages, along with all other niches of software development. Good luck to you.

I have known about Monogame for a while and it did look interested, however the majority of my coding knowledge has been gained through using XNA it seemed very overwhelming to use since there is not proper documentation for beginners like there is for XNA.

Also, the last time I queried that line thought they suggested to build your game within XNA/Visual Studio and just port it over (HOW you did that wasn't obvious); is that not a good thing to do anymore?

From what I've read, coding with MonoGame should feel 95% familiar for any experienced user of XNA. Not yet sure how complete its 3D functionality is, though.

Or try SlimDX or SharpDX if you want to explore the API features of DirectX 11, with the relative comfort of the C# language.

New game in progress: Project SeedWorld

My development blog: Electronic Meteor

In your situation you can probably:

1. Continue with XNA/MonoGame.

2. Use SharpDX and learn DirectX.

3. Use OpenTK and learn OpenGL

or learn C++ do whatever you want, if you want results quickly though Id say stick with XNA/MonoGame.

Also, the last time I queried that line thought they suggested to build your game within XNA/Visual Studio and just port it over (HOW you did that wasn't obvious); is that not a good thing to do anymore?

I think its safe to just start projects off with using MonoGame initially. A stable 3D supported version has released (which uses OpenGL on the desktop though). You can use the in-development DirectX windows desktop platform though by downloading the repo on monogame's github.

I'd recomment the XNA/MonoGame route.

If you decide to use SharpDX, you'll get quickly introduced to the horror or HRESULT-s (yeah, I know there is a perfectly sound technical reason for their existence). SharpDX is a nice binding, but it does work on top of COM. And when something goes wrong in the underlying API, you get an exception that gives you an HRESULT. If you're lucky, you'll get an error message. If you aren't, you'll just get a hex code that you have to look up no Google to check what it means. Also, much unlike regular .NET exceptions, HRESULT-s just tell you that *something* went wrong, but you don't get proper stack trace - everything dies at the COM boundary. And since COM is native, you can't just as easily decompile it with Reflector and see how stuff's implemented and why your things are not working - you are solely left at the mercy of Google and the official documentation.

The positive thing about SharpDX is that you do get far superior text rendering via DirectWrite, and so far as 2D is concerned, you can draw primitives, gradients and strokes.

This topic is closed to new replies.

Advertisement