Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I was kinda wondering what compilers are used in game development, since the game development industry always tries to squeeze every inch of performance out their software, using, among other, (sometimes very aggresive) compiler optimizations and the big boys in compiler technology (llvm, gcc), that excel in such kind optimizations are out of the game in the *Windows operating System*.

share|improve this question
    
llvm is not a compiler, you mean clang I guess ;) –  Maik Semder Dec 20 '12 at 17:54
    
@MaikSemder LLVM is a compiler, or maybe a (great) percentage of what would be considered a compiler. It's the backend generator. Clang is the frontend for C, C++, Obj-C –  NlightNFotis Dec 20 '12 at 17:56
    
A port of GCC is part of MinGW. –  Asakeron Dec 20 '12 at 17:58
2  
And thus the non-constructive-ness of the answer is revealed in the answers. This is just generating a list... –  Byte56 Dec 20 '12 at 18:02
1  
*of the question. Doh. –  Byte56 Dec 20 '12 at 18:12
show 3 more comments

closed as not constructive by Byte56, Maik Semder, John McDonald, Jari Komppa, michael.bartnett Dec 20 '12 at 18:13

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

3 Answers

up vote 4 down vote accepted

There's a few misconceptions in your question. First, games don't really new any kind of special super-optimizing compiler. We've long since hit the point where the hardware is beefy enough, common compilers optimize well enough, and games are complex enough that micro-optimizing instructions has little value outside of a few specialized loops. Also, while I love LLVM, it is hardly a "big boy" in the compiler space, and it generally has the worst optimizations of all the major compilers (for now), and hence it is not really used outside of Apple's newer dev environments.

Microsoft Visual C++ is the primary compiler for Windows and XBox. A few places use Intel's ICC for Windows, but that's rare.

Modified ancient crusty versions of GCC provided by the hardware vendor are used for all the non-Microsoft consoles.

Apple's ancient modified GCC is used for iOS, and OSX. It is being phased for the LLVM-based Clang. A more modern version of GCC is used for Android.

Linux isn't much of a gaming platform, but the few commercial games out there for it are compiled with a fairly recent GCC usually.

share|improve this answer
    
Finally a great answer to my question. However I don't agree with your statement that llvm is not a big boy. While I am not by any means a llvm fanboy, you have to admit that apple and FreeBSD making it a default compiler for their systems, debian being enthusiastic about it, and the sole fact that gcc are changing their implementation language to C++ (LLVM's implementation language) should say something about LLVM. At the very least, it's applying some pressure on GCC. –  NlightNFotis Dec 20 '12 at 18:07
    
You mention Linux with a note that it "isn't much of a gaming platform" but Mac without, really? –  Mr. Beast Dec 20 '12 at 18:09
    
@NlightNFotis: LLVM is great. It's still not a major compiler in use by anyone but a handful of early adopters (and fringe OSes that have eschewed GCC since the move to GPLv3 and have otherwise been stuck on ancient GPLv2 releases), and is not yet a leader in the industry, especially for people who care about optimization quality. That's all I meant. –  Sean Middleditch Dec 20 '12 at 23:54
    
@Mr.Beast: Linux has a small fraction as many commercial games as OSX. OSX isn't exactly hot, but at least you can buy new AAA games for it today (look at the Steam Linux vs Steam OSX catalogs, for example). –  Sean Middleditch Dec 21 '12 at 0:01
    
@SeanMiddleditch Steam for Linux is still in Beta, of course there aren't that many games on it yet. It's true that Linux hasn't received much love from AAA developers yet (which is likely to change with the support of Steam, though). However, for Indie games there is not so much difference in the level of support for Mac and Linux, as the statistics on Desura show: desura.com/games/browse 900 games for Windows, 290 games for Mac and 230 games for Linux. –  Mr. Beast Dec 21 '12 at 0:34
add comment

On windows, most people use visual studio and its build tools. Xbox 360 uses it as well. On just about everything else, some version of GCC is typically used. (PS3 & Nintendo consoles use a customized version of GCC)

share|improve this answer
2  
I am sorry to break the news for you, but Visual Studio is not a compiler. It's an IDE. –  NlightNFotis Dec 20 '12 at 17:54
1  
Dude, MSBuild is a build tool for managed applications, that is applications running on .Net framework. At least the games that I am speaking of (modern AAA titles) don't run on a managed environment for a lot of reasons. –  NlightNFotis Dec 20 '12 at 17:59
3  
you know what I am referring to –  CobaltHex Dec 20 '12 at 18:04
5  
I think it's extremely clear that CobaltHex means Visual Studio as a suite, including the compiler. Strange of you to respond with 'have to break the news for you' when someone gives fair answer to your question even if it would've been wrong. You're also wrong about MSBuild, which is not a tool just for managed applications, it's the build system like make is for c/c++. –  Roy T. Dec 20 '12 at 18:16
2  
It's possible to write unmanaged code in Visual C++. –  Asakeron Dec 20 '12 at 18:59
show 5 more comments

The compiler that comes with Visual Studio / C++.

I don't program for a game development company, just a boring business software developer. Our target platform is Microsoft, and we use Visual Studio 2010 for C++ and C# .Net.

share|improve this answer
    
I asked specifically for games, because games have very different needs than most of the other categories of software. –  NlightNFotis Dec 20 '12 at 18:01
2  
Yes, I can read. Why would you use a different compiler for Windows than the industry standard for Windows platforms? –  AshenBee Dec 20 '12 at 18:03
    
I could think of a myriad of reasons. First and foremost is that the industry standard may suck at optimizations. –  NlightNFotis Dec 20 '12 at 18:04
4  
Sounds like you already know everything you need to know champ. –  AshenBee Dec 20 '12 at 18:06
1  
@NlightNFotis what exactly do you think is different in a game from an optimizing-compiler p.o.v? I can tell you that I know first hand that some recent Ubisoft titles are compiled using VS2008's C++ compiler. –  Roy T. Dec 20 '12 at 18:21
show 1 more comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.