I'm in the process of writing a game in C, and I am wondering what compiler I am going to use a little ways in the future when I am building a release build for sale. My Linux version is compiled with GCC, but I have a choice to make with Windows. My current test-bed compiler is MinGW. I do not use Visual Studio, and my game does not leverage Direct3D at all. It uses OpenGL and OpenAL and DirectInput (DirectInput only on the Windows version, obviously). Here are my questions:

Almost all of my programming has been on Linux and BSD, so I'm new to the Windows crowd.

1.) Is it better performance-wise to use MSVC on Windows as opposed to MinGW?
2.) Is MSVC managed or native?
3.) I know that in C# you have that fancy build menu where you can add some properties (author, date, title, icon) etc. to your program. Does MSVC have that in a nice fancy build menu?
4.) Is the Express Edition compiler a step down from the others?
5.) As an IDE, not a compiler, do you recommend (for Windows) Visual Studio or Code::Blocks? I currently use Code::Blocks for both Windows and Linux development, as the project files can be used on Linux.

Edited by MrJoshL, 30 March 2013 - 12:46 PM.

C dominates the world of linear procedural computing, which won't advance. The future lies in MASSIVE parallelism.

1) It varies, in general MinGW tends to be quite a few versions behind the linux version of gcc and the express edition of MSVC doesn't give you all the advanced optimization options, the exact performance you get depend heavily on your own code and the target architecture so just try both compilers to see which one works best.The pro versions of MSVC usually outperform MinGW though.

2) Microsofts compiler produces native code for C and C++. (Allthough it can do managed code for C++/CLI atleast aswell)

3) Dunno.

4) Yes, some advanced optimization features (Profile guided optimization for example are not available in the express edition (or atleast weren't in the older versions, Havn't done much Windows Development in the past few years so this may have changed)

5) I'd recommend QTCreator, but Visual Studio is a solid option as well if you develop on Windows (The inability of the express edition to use plugins can be a bit of a pain)I've never been a huge fan of Code::Blocks but i'm sure it works.

At the end of the day the choice of IDE is all about personal preferences, download a few and try them out to see which ones you like best.

Edited by SimonForsman, 30 March 2013 - 01:17 PM.

I don't suffer from insanity, I'm enjoying every minute of it.The voices in my head may not be real, but they have some good ideas!

5) I'd recommend QTCreator, but Visual Studio is a solid option as well if you develop on Windows (The inability of the express edition to use plugins can be a bit of a pain)
I've never been a huge fan of Code::Blocks but i'm sure it works.

You'd prefer QTCreator to VS/Code::Blocks, even though he doesn't use any of that QT stuff? I always thought the IDE was designed to work well with design-your-own-gui-in-the-other-tab and would be useless if you want to write something else.

5) I'd recommend QTCreator, but Visual Studio is a solid option as well if you develop on Windows (The inability of the express edition to use plugins can be a bit of a pain)I've never been a huge fan of Code::Blocks but i'm sure it works.

You'd prefer QTCreator to VS/Code::Blocks, even though he doesn't use any of that QT stuff? I always thought the IDE was designed to work well with design-your-own-gui-in-the-other-tab and would be useless if you want to write something else.

it works just fine even without QT, and the Vim mode puts it roughly 50 miles above anything else(including VS) imo.

I don't suffer from insanity, I'm enjoying every minute of it.The voices in my head may not be real, but they have some good ideas!

You'd prefer QTCreator to VS/Code::Blocks, even though he doesn't use any of that QT stuff? I always thought the IDE was designed to work well with design-your-own-gui-in-the-other-tab and would be useless if you want to write something else.

I prefer QtCreator over Code::Blocks, even when not using the Qt API. (I haven't tried Visual Studio)
Yes, it has built-in support for Qt and has a drag-and-drop GUI wizard, but it's perfectly usable without Qt, and is an excellent C++ IDE (and is cross-platform).

It has built-in support for Mercurial, SVN, Git, Bazaar, CVS, and other source control systems, if you want it, and support for CMake (though it uses its own QMake system by default, which I found easy to learn and sufficient for my needs), its intellisense is excellent too. It is very stable and rarely crashes (which are usually because MinGW crashes). Its syntax highlighting support for C++11 is mostly good, and improving, but it has a few problems with pre-compiled headers and debugging (which are both really MinGW/GCC's fault).