GNU GCC est-il utilisé pour les jeux AAA?


11

GNU GCC est un compilateur très courant, mais il semble que presque personne ne l'utilise pour des projets plus importants comme les jeux AAA. Pour moi, ça marche très bien, je n'ai jamais eu de problème avec ça. Mais je me demande pourquoi tous les jeux AAA semblent utiliser des compilateurs commerciaux tels que Intel Studio? Pourquoi est-ce important? GNU GCC optimise également le code pour tous les systèmes plutôt que pour Intel, alors pourquoi s'embêter avec des choses comme Intel Studio?


GCC était un compilateur très courant avant l'arrivée de LLVM / Clang, ou en le disant avec clang: "gcc? Voulez-vous dire clang?" ;)
Maik Semder

Que fait clang? Est-ce un compilateur? Si oui, est-ce mieux? O_o
LiquidFeline

Clang est l'interface frontale ac / c ++ pour une plate-forme de compilateur appelée llvm. Oui, c'est mieux à bien des égards. Pour commencer, il montre l'erreur exacte dans une macro, pas seulement la ligne où la macro a été appelée. Cela rend le sens intelli stupide encore plus stupide, car il facilite l'accès à l'arbre AST, pas besoin d'un analyseur supplémentaire. Compilation partielle de code, la liste est longue, jetez-y un coup d'œil, ça vaut le coup :)
Maik Semder

Réponses:


9

Le compilateur d'Intel est juste un compilateur différent. GCC ++ et VC ++ produisent un code de qualité de production, tout comme l'ICC d'Intel. La principale différence réside dans 4 domaines clés:

Lorsque vous essayez de tirer le maximum de performances des processeurs Intel (principalement), les studios AAA sont prêts à payer pour cela et un peu de printemps pour ICC. Voir ici pour une grande histoire anecdotique. Faites également attention à sa section sur les inconvénients, où ICC est accusé de ne pas fonctionner correctement sur des processeurs Intel non authentiques (par exemple AMD).


10

De nombreuses plates-formes non PC, y compris certaines consoles et ordinateurs de poche, utilisent un GCC modifié comme compilateur principal / uniquement.

Sur le PC, la plupart des maisons de développement de jeux utilisent simplement le compilateur de Visual Studio. Le choix du compilateur a généralement peu d'impact sur la vitesse d'exécution par rapport à la conception du moteur et aux graphiques, ils ont tous payé pour Visual Studio de toute façon en raison de son ensemble de fonctionnalités en tant qu'IDE, GCC est relativement plus difficile à installer et à démarrer. et cela ne fait pas grand-chose pour améliorer le temps d'itération et la productivité. Il n'y a tout simplement pas de raison suffisante pour utiliser GCC par rapport aux alternatives dans lesquelles tout le monde est déjà investi.


Ce n'est pas seulement que GCC est un peu plus difficile à démarrer, mais MinGW nécessite la livraison avec une DLL si votre application est multithread - GCC utilise un mécanisme d'exception différent de SEH, ce qui rend la DLL nécessaire sous Windows.
Dietrich Epp

1
Pour donner un exemple, Sony a déplacé son compilateur primaire PS3 de son compilateur interne vers GCC car il a été jugé meilleur. Et les titres AAA ne manquent pas sur PS3.
Kaganar

L'inconvénient est que ces GCC spécifiques à la plate-forme sont généralement très obsolètes, généralement pré-GPLv3 et donc pré-C ++ 11 et manquent également de nombreux diagnostics et travaux de performances récents. : / Ce rejet de GCC plus récent par de nombreux fournisseurs pourrait être une autre raison pour laquelle de nombreux développeurs de jeux évitent simplement GCC s'ils le peuvent; ils pourraient avoir une vue injuste de son état compte tenu de l'expérience avec les chaînes d'outils des fournisseurs. Regardez les comparaisons fréquentes de Clang sur les plates-formes Apple où Clang 3.1 est comparé à GCC 4.2. (Je suis un fan de Clang, mais les comparaisons sont généralement injustes.)
Sean Middleditch

4

Oui, il peut être utilisé pour les jeux AA.

La raison pour laquelle presque tous les jeux AAA (sinon tous) utilisent des compilateurs commerciaux est le fait que les produits commerciaux ont généralement un support et vous pouvez vous plaindre ou obtenir de l'aide 24/7 ou tout simplement dès que possible pour résoudre tout problème que vous pourriez avoir et dans l'AAA l'industrie, le temps signifie de l'argent. Les grandes équipes et les entreprises, en particulier ces dernières, ne veulent pas compter sur la communauté lorsque de gros fonds sont en jeu. Il vaut mieux investir dans le support par contrat.

D'un autre côté, les moteurs reposent sur des SDK. Si le SDK ne prend pas en charge un compilateur, cela signifie que vous êtes seul et que la solution de contournement n'est pas rentable.

Enfin, l'optimisation. Si vous savez que beaucoup de joueurs utilisent Intel, diable vous voulez leur offrir gracieusement votre jeu.


1
fyi notre entreprise avec un milliard de rotations chaque année est capable de toucher gcc et d'autres outils de développement GNU au niveau premium.
lzap
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.