What to choose C++/DX or C#/XNA

Started by
16 comments, last by Demx 11 years, 2 months ago
Hello,

To give some info on what i would like to do i could start out with following:
- I want a language and a API which i could continue with for quite some time, not like XNA which i heard has a dark future.
- I would like to create an RPG game similar to Diablo 2, but ofc not as huge. I would also like to create games like Plant vs Zombies, Mario etc
- I will use ALOT of time to become as good as I can get, so therefor i realy want to program in a language which i can keep on for a LONG time. And ive seen most of people on GameDev uses C++, so for me it looks like its pretty good.

Some questions.
- How hard is C++(11) compared to C#? It should also been said that im done with my computer science degree so I have been programming in both C++ and C#. Ive heard C++ 11 is alot easier than previous versions?

In XNA we can add audio, is that possible in DX?

Would it take alot more time to create games in DX compared to XNA?
And is it possible to port DX game to Android?


Best Regards

Thomas

//Thomas Wiborg

Advertisement

Android (and iOS as well) doesn't support DirectX but OpenGL ES.

If you want to focus on creating a game you should use an existing engine such as Unity (you can program your game using C# too). If you want to learn more than "just" creating a game (that is already a big enough task imho) you can start using c++ and directx and create your own engine but that will take a lot more time.

I agree, if you want to go from scratch, start with c++ and directx/d3d11

Crealysm game & engine development: http://www.crealysm.com

Looking for a passionate, disciplined and structured producer? PM me

I've used C++ from 2005 to 2011, then moved mainly to XNA. C# for me is a big timesaver and makes you more productive.

XNA is far easier to get working on a game, without dealing with much of the lower-level work of initializing devices, managing vertex buffers, etc. Each iteration of XNA seems to have pared down the complexity of writing code needed to do a given task, it seems to have gotten less verbose with each new version. Now I know that it does appear to become a dead end technology, but it is perfectly capable of producing very competent games such as the ones you described. If you don't want to learn all the underpinnings of the DX API, go with XNA.


Some frameworks allow easier porting for many kinds of XNA games to other platforms, like MonoGame.

There is also a library that some of the XNA devs have been working on to make transition from XNA to DX11/C++ easier, called DirectX TK.

New game in progress: Project SeedWorld

My development blog: Electronic Meteor

C# for me is a big timesaver and makes you more productive
XNA is far easier to get working on a game, without dealing with much of the lower-level work of initializing devices, managing vertex buffers, etc.

Just because you use C++ doesn't mean that you do have to do lower level work. There are loads of C++ libraries and engines out there that are higher level than XNA.

Pick the language you prefer and pick the library you feel most comfortable with. Perhaps only use DirectX or OpenGL (With either C# or C++) if you want to go into the technical stuff.
http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.
Just to throw another option out, you can check out SharpDX, which is a .NET wrapper for DirectX (including audio IIRC). It is a thin wrapper around DX, so it is low-level, but you can use it from C# if you do not wish to move to C++. I believe it now also includes a port of the DirectX TK, offering some XNA-like higher level functionality.

C# for me is a big timesaver and makes you more productiveXNA is far easier to get working on a game, without dealing with much of the lower-level work of initializing devices, managing vertex buffers, etc.

Just because you use C++ doesn't mean that you do have to do lower level work. There are loads of C++ libraries and engines out there that are higher level than XNA.Pick the language you prefer and pick the library you feel most comfortable with. Perhaps only use DirectX or OpenGL (With either C# or C++) if you want to go into the technical stuff.

What library is higher level than XNA?

//Thomas Wiborg

Allegro is about the same level as XNA (Made by the same guy infact before he went to work at MS).

Any higher level and you are starting to get into complete game engines anyway.

DarkGDK (C++ version)
Irrlicht
AngelEngine (http://code.google.com/p/angel-engine) is mostly 2D.
http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.
Is learning dx11 c++ alot harder to learn than xna c#?
Cause i see most people here use c++
And are there some benefits without memory managment with c++ and dx that give me an advantage instead of using xna. And as i said. I want to make games as diablo 2 smaller scale and plant vs zombies.

//Thomas Wiborg

Is learning dx11 c++ alot harder to learn than xna c#?

Learning DX is harder than XNA because it is much lower level.

I prefer C++ but there are many on these forums that prefer C#. Commercial software generally favours C++ but the indie games industry is a large mix of different languages.

Both C++ and C# have solutions to memory management if coded correctly so that shouldn't really be a deciding factor.
http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.

This topic is closed to new replies.

Advertisement