O GNU GCC é usado para jogos AAA?

11

O GNU GCC é um compilador muito comum, mas parece que quase ninguém o usa para projetos maiores, como jogos AAA. Para mim, funciona muito bem, nunca tive um problema com isso. Mas eu me pergunto por que todos os jogos AAA parecem usar compiladores comerciais como o Intel Studio? Por que isso Importa? O GNU GCC também otimiza o código para todos os sistemas, e não apenas para a Intel; então, por que eles se preocupam com coisas como o Intel Studio?

LiquidFeline
fonte
O GCC era um compilador muito comum antes do LLVM / Clang aparecer, ou dizendo com clang: "gcc? Você quis dizer clang?" ;)
Maik Semder
O que o clang faz? É um compilador? Se sim, é melhor? O_o
LiquidFeline
Clang é front-end do ac / c ++ para uma plataforma de compilador chamada llvm. Sim, é melhor de várias maneiras. Para iniciantes, mostra o erro exato em uma macro, não apenas na linha em que a macro foi chamada. Isso faz com que o sentido estúpido da inteligência pareça ainda mais estúpido, pois facilita o acesso à árvore AST, sem a necessidade de um analisador extra. Compilação do código parcial, a lista é longa, dê uma olhada nisso, vale a pena :)
Maik Semder

Respostas:

9

O compilador da Intel é apenas um compilador diferente. GCC ++ e VC ++ produzem código de qualidade de produção, da mesma forma que o ICC da Intel. A principal diferença está em 4 áreas principais:

  • a) Recursos suportados (diferindo principalmente dos recursos do C ++ 11)
  • b) Tamanho do executável
  • c) Tempo de execução
  • d) Tempo de compilação

Quando você está tentando extrair todo último desempenho dos (principalmente) CPUs Intel, os estúdios AAA estão dispostos a pagar por isso e um pouco de primavera pela ICC. Veja aqui uma ótima história anedótica. Preste atenção também na seção de desvantagens, em que a ICC é acusada de executar menos do que bem em CPUs não originais do conjunto de instruções da Intel (por exemplo, da AMD).

bobobobo
fonte
10

Muitas plataformas que não são de PCs, incluindo alguns consoles e dispositivos portáteis, usam um GCC modificado como seu compilador principal / único.

No PC, a maioria das casas de desenvolvimento de jogos apenas usa o compilador do Visual Studio. A escolha do compilador geralmente tem pouco impacto na velocidade do tempo de execução em comparação com o design e os gráficos do mecanismo, todos eles pagaram pelo Visual Studio de qualquer maneira, devido ao seu conjunto de recursos como um IDE, o GCC é comparativamente mais difícil de instalar e começar. e isso não faz muito para melhorar o tempo e a produtividade da iteração. Não há uma razão suficientemente convincente para usar o GCC em comparação com as alternativas em que todos já investiram.

Sean Middleditch
fonte
O GCC não é apenas um pouco mais difícil de começar, mas o MinGW exige o envio de uma DLL se seu aplicativo for multithread - o GCC usa um mecanismo de exceção diferente do SEH, o que torna a DLL necessária no Windows.
Dietrich Epp
1
Para dar um exemplo, a Sony transferiu o compilador principal do PS3 do compilador interno para o GCC, porque foi considerado melhor. E não faltam títulos AAA lançados no PS3.
Kaganar
A desvantagem é que esses GCCs específicos da plataforma geralmente estão desatualizados, geralmente pré-GPLv3 e, portanto, pré-C ++ 11 e também perdem muitos trabalhos recentes de diagnóstico e desempenho. : / Essa rejeição do GCC mais recente por muitos fornecedores pode ser outra razão pela qual muitos desenvolvedores de jogos evitam o GCC, se puderem; eles podem ter uma visão injusta de seu estado, dada a experiência com cadeias de ferramentas de fornecedores. Veja as comparações frequentes do Clang nas plataformas da Apple, onde o Clang 3.1 é comparado com o GCC 4.2. (Eu sou um fã Clang, mas as comparações são geralmente injusto.)
Sean Middleditch
4

Sim, pode ser usado para jogos AA.

A razão pela qual quase todos os jogos AAA por aí (se não todos) usam compiladores comerciais é o fato de que os produtos comerciais geralmente têm suporte e você pode reclamar ou obter ajuda 24/7 ou apenas o mais rápido possível ao lidar com qualquer problema que possa ter e no AAA indústria, tempos significa dinheiro. Grandes equipes e empresas, especialmente as últimas, não querem contar com a comunidade quando há muito dinheiro em jogo. É melhor investir em suporte por contrato.

Por outro lado, os mecanismos contam com SDKs. Se o SDK não oferecer suporte a um compilador, isso significa que você está sozinho e não é lucrativo fazer a solução alternativa.

Finalmente, otimização. Se você sabe que muitos jogadores usam a Intel, você quer oferecer seu jogo graciosamente por eles.

reefaktor
fonte
1
Para nossa empresa, com um bilhão de retornos por ano, é possível exportar ferramentas gcc e outras ferramentas gnu dev em nível premium.
lzap