Hopefully this article won’t get too polemic. I made some decisions about the future of some of my projects and most important of the art of software developing I want to continue.
I’ve worked for since the start of 1999 with the Dev-Cpp IDE which uses the MinGW compiler. The reason for this is that I didn’t want to spend so much money on Visual Studio to get a C++ compiler. This was OK for me that time. Soon I noticed that it’s not so easy to get everything compiled with the MinGW compiler. This compiler accepts only strict ANSII C++ so it was quite difficult to use some libraries available on the www. To get things done with MinGW compiler you had to download either a MinGW version of libraries or create them yourself. This was also OK for since most libs I was using were available for MinGW too. Problems began when I decided to develop on DirectX. I installed the DirectX SDK and got even on the simplest example application a bunch full of errors. So I put my ass down to get it work with MinGW. It was an nearly endless task and I won’t go deeper into it. You can read the whole article here. When I got it finished I wanted to use some sound in my application. I decided to use the ogg vorbis format since I think it’s still the greatest alternative to mp3. Again nor libs for MinGW and again some nights working on a DevPak. Community contacted me on my game site G-Productions wanting me to get the audiere audio library working with MinGW, others wanted the NVidia CG Toolkit to use with MinGW. At one point it was fun creating all this DevPaks. You can learn so much about compiler differences when working on this.
Again it was great fun the whole time, and it was OK for me having to spend some extra time on creating DevPaks first, to use them. Another great thing on the MinGW compiler was that code execution times are great compared to the code Visual C++ 6.0 created. You can read more about execution times in my previous article here. Now things changed since the .NET framework and I made some tests with the Microsoft Visual C++ Express Edition. The only thing I can say is WOW. If we compare the code execution times Microsoft made a big step forward. I had the chance to also test the Microsoft Visual C++ 9.0 pro edition and I’m thrilled. As a game programmer one of the most important things is (or should be) the code execution times. MS VC++ 9.0 rocks.
At some point I’m also glad not having to create a DevPak any more to develop something. Things get more difficult with the latest DirectX releases and I’m not sure if a conversion to a DevPak would be possible with the final release of DirectX 10. MS changed so many things in there.
What about the XNA framework? Maybe managed code is the future… Maybe the use of the XNA framework makes game development a very easy task but I will still use C++. Writing your own loaders, your own functions using the DX classes allows you more flexibility and I’m one of those old-school programmers who likes to know what his code does ;). No doubt, using the XNA framework saves you a lot of time and headache but you should decide for yourself what’s the best for your game.
So what did you learn reading all this ideas and thoughts? I can highly recommend using the new Visual Studio. The performance on execution time is incredible. If you still use Dev-Cpp you most probably won’t be able to use DirectX 10 but don’t nail me on that, it’s only speculation. If you come to the point where you want to use DirectX 10 you most probably won’t have an alternative to MS VC++. Hey don’t come with the “Dev-Cpp is free” paroles. You can get MS VC++ 9.0 for free (the Express Edition) 😉