Чи використовується GNU GCC для ігор AAA?


11

GNU GCC - дуже поширений компілятор, але, схоже, майже ніхто не використовує його для великих проектів, таких як ігри AAA. Для мене це працює чудово, з ним ніколи не було проблем. Але мені цікаво, чому всі ігри AAA, здається, використовують комерційні компілятори, такі як Intel Studio? Чому це важливо? GNU GCC також оптимізує код для всіх систем, а не лише для Intel, так чому вони турбуються з такими речами, як Intel Studio?


GCC був дуже поширеним компілятором, перш ніж LLVM / Clang з'явився навколо, або вимовив це клангом: "gcc? Ви мали на увазі кланг?" ;)
Майк Семдер

Що робить Кланг? Це компілятор? Якщо так, то краще? O_o
LiquidFeline

Clang - це ac / c ++ інтерфейс для платформи компілятора під назвою llvm. Так, краще в багатьох відношеннях. Для початку він показує точну помилку в макросі, а не лише рядок, де макрос викликався. Це робить дурний сенс інтелі виглядати ще дурнішим, оскільки це дозволяє легко отримати доступ до дерева AST, не потрібно додаткового аналізатора. Часткове складання коду, список довгий, подивіться на нього, воно того варте :)
Maik Semder

Відповіді:


9

Компілятор Intel - це лише інший компілятор. GCC ++ та VC ++ створюють код якості виробництва, як і ICC Intel. Основна відмінність полягає в 4 ключових сферах:

  • а) Підтримувані функції (в основному відрізняються від функцій C ++ 11)
  • б) Виконаний розмір
  • в) Час виконання
  • г) Час компіляції

Коли ви намагаєтеся вичавити останні останні шматочки з (в основному) процесорів Intel, студії AAA готові заплатити за це і трохи весни за ICC. Дивіться тут чудову анекдотичну історію. Зверніть увагу і на його розділ про недоліки, коли ICC звинувачується в тому, що він працює менше ніж на справжніх процесорах набору інструкцій Intel (наприклад, на AMD).


10

Багато платформ без ПК, включаючи деякі консолі та портативні пристрої, використовують модифікований GCC як основний / єдиний компілятор.

На ПК більшість ігрових розробників просто використовують компілятор Visual Studio. Вибір компілятора, як правило, мало впливає на швидкість виконання програми в порівнянні з дизайном і графікою двигуна, вони все одно платили за Visual Studio так чи інакше завдяки його набору функцій як IDE, GCC порівняно складніше встановити і розпочати роботу. і це не робить багато для покращення часу і продуктивності ітерації. Просто немає достатньо вагомих причин використовувати GCC порівняно з альтернативами, у які вже вкладаються всі.


Починати з GCC трохи не складніше, але MinGW вимагає доставки з DLL, якщо ваша програма багатопотокова - GCC використовує інший механізм виключення, ніж SEH, що робить DLL необхідним для Windows.
Дітріх Епп

1
Для прикладу, Sony перенесла основний компілятор PS3 зі свого внутрішнього компілятора в GCC, оскільки це було визнано кращим. І на PS3 немає випусків назв AAA.
Каганар

Недоліком є ​​те, що ці GCC-орієнтовані на платформу зазвичай сильно застаріли, як правило, до GPLv3 і, отже, до C ++ 11, а також не вистачає багатьох останніх робіт з діагностики та роботи. : / Ця відмова від нових постачальників нових програм GCC може стати ще однією причиною, коли багато розробників ігор просто уникають GCC, якщо можуть; вони можуть мати несправедливе уявлення про його стан із врахуванням досвіду роботи з інструментами постачальників. Подивіться на часті порівняння Clang на платформах Apple, де Clang 3.1 або більше порівнюється з GCC 4.2. (Я фанат Кланг, але порівняння, як правило, несправедливі.)
Шон Міддлічч

4

Так, його можна використовувати для ігор AA.

Причина майже у всіх іграх AAA (якщо не всі) використовують комерційні компілятори - це те, що комерційні продукти зазвичай мають підтримку, і ви можете поскаржитися або отримати допомогу 24/7 або просто якнайшвидше, коли вирішуєте будь-яку проблему, яка може виникнути, і в AAA промисловість, час означає гроші. Великі команди та компанії, особливо останні, не хочуть покладатися на громаду, коли великі гроші під загрозою. Краще вкласти кошти в підтримку за контрактом.

З іншого боку, двигуни покладаються на SDK. Якщо SDK не підтримує компілятор, це означає, що ви самостійно, і робити це не вигідно.

Нарешті, оптимізація. Якщо ви знаєте, що багато гравців використовують Intel, чорт ви хочете доставити вашу гру з ними люб'язно.


1
fyi наша компанія, яка має мільярд оборотів щороку, має можливість touccport gcc та інших інструментів gnu dev на преміум рівні.
lzap
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.