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*.


closed as not constructive by MichaelHouse, 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.

  • \$\begingroup\$ llvm is not a compiler, you mean clang I guess ;) \$\endgroup\$ – Maik Semder Dec 20 '12 at 17:54
  • \$\begingroup\$ @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 \$\endgroup\$ – NlightNFotis Dec 20 '12 at 17:56
  • \$\begingroup\$ A port of GCC is part of MinGW. \$\endgroup\$ – Asakeron Dec 20 '12 at 17:58
  • 2
    \$\begingroup\$ And thus the non-constructive-ness of the answer is revealed in the answers. This is just generating a list... \$\endgroup\$ – MichaelHouse Dec 20 '12 at 18:02
  • 1
    \$\begingroup\$ *of the question. Doh. \$\endgroup\$ – MichaelHouse Dec 20 '12 at 18:12

Update for November 2018

LLVM/Clang is the primary (or only) compiler for many gaming platforms these days. iOS, Android, PlayStation 4, MacOS/OSX, and Nintendo Switch all use Clang as their default native compiler.

XBox One is only supported by Microsoft's compiler, and their compiler is also still the most commonly used for Windows.

A handful of legacy or less mainstream platforms use other compilers, like 3DS' use of Green Hills' compiler.

GCC may sometimes see use on Linux (server) builds due to it being the default C++ compiler on most major Linux distributions.

Some studios may use specialized optimizing compilers like ICC for supported platforms, but most do not. This is partly because no mainstream client gaming platform besides PC uses Intel processors

Original circa 2012

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.

  • \$\begingroup\$ 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. \$\endgroup\$ – NlightNFotis Dec 20 '12 at 18:07
  • 1
    \$\begingroup\$ You mention Linux with a note that it "isn't much of a gaming platform" but Mac without, really? \$\endgroup\$ – API-Beast Dec 20 '12 at 18:09
  • \$\begingroup\$ @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. \$\endgroup\$ – Sean Middleditch Dec 20 '12 at 23:54
  • \$\begingroup\$ @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). \$\endgroup\$ – Sean Middleditch Dec 21 '12 at 0:01
  • 1
    \$\begingroup\$ @Nik-Lz: I'm sure some game companies use it, but not a significant number (that I know of). ICC doesn't support ARM (99% of mobile) and doesn't support the current-gen gaming console AMD APUs (nor the PPC consoles out when this answer was written). ICC is mostly relevant for scientific/server folks who are explicitly targeting Xeon systems. Note also that in the half-decade since this answer was originally written, pretty much every gaming platform moved to a Clang/LLVM-based compiler by default, aside from Windows and XBox. \$\endgroup\$ – Sean Middleditch Oct 28 '18 at 19:39

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)

  • 2
    \$\begingroup\$ I am sorry to break the news for you, but Visual Studio is not a compiler. It's an IDE. \$\endgroup\$ – NlightNFotis Dec 20 '12 at 17:54
  • 1
    \$\begingroup\$ 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. \$\endgroup\$ – NlightNFotis Dec 20 '12 at 17:59
  • 3
    \$\begingroup\$ you know what I am referring to \$\endgroup\$ – CobaltHex Dec 20 '12 at 18:04
  • 7
    \$\begingroup\$ 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++. \$\endgroup\$ – Roy T. Dec 20 '12 at 18:16
  • 2
    \$\begingroup\$ It's possible to write unmanaged code in Visual C++. \$\endgroup\$ – Asakeron Dec 20 '12 at 18:59

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.

  • 1
    \$\begingroup\$ I asked specifically for games, because games have very different needs than most of the other categories of software. \$\endgroup\$ – NlightNFotis Dec 20 '12 at 18:01
  • 3
    \$\begingroup\$ Yes, I can read. Why would you use a different compiler for Windows than the industry standard for Windows platforms? \$\endgroup\$ – AshenBee Dec 20 '12 at 18:03
  • \$\begingroup\$ I could think of a myriad of reasons. First and foremost is that the industry standard may suck at optimizations. \$\endgroup\$ – NlightNFotis Dec 20 '12 at 18:04
  • 5
    \$\begingroup\$ Sounds like you already know everything you need to know champ. \$\endgroup\$ – AshenBee Dec 20 '12 at 18:06
  • 1
    \$\begingroup\$ @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. \$\endgroup\$ – Roy T. Dec 20 '12 at 18:21

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