What to choose C++/DX or C#/XNA
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
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'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.
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.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.
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.
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.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.
What library is higher level than XNA?
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.
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.
Learning DX is harder than XNA because it is much lower level.Is learning dx11 c++ alot harder to learn than xna c#?
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.