GNU GCC is a very common compiler, but it seems like almost no one uses it for bigger projects like AAA games. To me, it's works just fine, never had a problem with it. But I wonder why all AAA games seem to use commercial compilers such as Intel Studio? Why does it matter? GNU GCC also optimizes the code for all systems rather then just Intel, so why do they bother with things such as Intel Studio?
Intel's compiler is just a different compiler. GCC++ and VC++ produce production quality code, just as well as Intel's ICC does. The main difference lies in 4 key areas:
- a) Features supported (mostly differing on C++11 features)
- b) Executable size
- c) Runtime
- d) Compile time
When you're trying to squeeze every last bit of performance out of (mostly) Intel CPU's, AAA studios are willing to pay for that and some spring for ICC. See here for a great anecdotal story. Pay attention to his drawbacks section as well, where ICC is accused of running less-than-well on non-genuine Intel instruction set CPU's (e.g. AMD's).
Many non-PC platforms, including some consoles and handhelds, use a modified GCC as their primary/only compiler.
On the PC, most game dev houses just use Visual Studio's compiler. The choice of compiler typically has little impact on runtime speed compared to engine design and graphics, they all paid for Visual Studio anyway due to its feature set as an IDE, GCC is comparatively harder to install and get started with. and it doesn't do much to improve iteration time and productivity. There's just not a compelling enough of a reason to use GCC compared to the alternatives that everyone is already invested in.
Yes, it can be used for AA games.
The reason almost every AAA games out there (if not all) use commercial compilers is the fact that commercial products usually have support and you can complain or get help 24/7 or just ASAP when dealing with any problem you might have and in the AAA industry, times means money. Big teams and companies, specially the latter, don't want to rely on the community when big money is at stake. It's better to invest in support by contract.
On the other hand, the engines rely on SDKs. If the SDK don't support a compiler, it means that you are on your own and it's not profitable to do the workaround.
Finally, optimization. If you know that a lot of players use Intel, the heck you want to deliver your game graciously for them.