Going from XNA --> C++?
I have been programming games for a few years in XNA now and before that I created database applications in C# and Oracle and you name it.
I do however have almost no experience with C++. I'm constantly running into garbage problems with XNA due the poor handling of garbage in the XNA framework and the fact that you can't release xbox games for free and some other annoyances.
However, going from XNA --> C++ is a big step it seems. There are no generics List<T> for example. Is there an idiot-proof guide to convert from C# to C++? Including what IDE to use and such unless VS c++ happens to be the best choice as I can get the profesionnal edition I think.
I'm only a 2D programmer as I never had the chance to really get into those really complicated 3D alghorithms.
No there isn't.
Here are some things you should consider, though:
I'm not aware of any guides, but on the other hand, I've never tried doing what you're doing, so I haven't had a need to look for them. :)
That being said, if you want generics in C++, look for the Standard Template Library, which comes with all the major C++ distributions and provides generic container classes like lists and queues and all sorts of other things.
There's nothing wrong with visual studio as an IDE.
Also, if you want to aim to make your game cross-platform, I'd consider using free libraries like SDL and/or OpenGL to handle your graphics and sound, rather than relying on DirectX. If you must use DirectX, write some wrapper functions so you can swap it out later.
Furthermore, if you want a library that's a bit more intuitive than the STL (but also a somewhat bigger), consider looking into Qt Core, which is Qt without all of the GUI stuff on it. It provides a bunch of nice template classes and some other stuff (like XML parsing, etc) that are immensely useful.
Feel free to ask any questions. I don't know XNA, but I do know C++ and I can probably help. :)
Bart
Thanks for the replies :). Seems like going from c# --> c++ is a lot harder than I thought. But mastering C# took me years so mastering c++ will probably take pretty long too.
Ah yes good tip on the OpenGL.
I think one other important thing to bear in mind is that OpenGL is a lower-level API (and so a steeper learning curve) than XNA.
Dave
Napoleon, I was into Java before I got into C++. Since C# is basically Microsoft's clone of Java, I do feel your frustrations. :P
So what I did was, looked into open source 2D game engines that already exists -- obviously, there are lots of them. One way to choose which, is to have a check list:
After choosing one, try to make sure it's compilable with the toolchain you have setup. This way, you can tinker with the source code as it pleases you -- makes learning even more fun; studying the source code could take a while.
Optionally, you have to have the repo edition of the engine's source code -- get it from projects SVN/CVS/BZR/Git/etc -- so any change you made which suddenly broke the code can still be reverted.
got game?
learning c++ is never a bad thing. Just make sure you understand each concept before you move on. Eventually you will run out of concepts and basically know it. c++ offers 25 different ways to slice a piece of bread. dont stress out and let people make you think you have to know all 25 ways to be productive. it will come in time.