GNU GCC - очень распространенный компилятор, но кажется, что почти никто не использует его для больших проектов, таких как игры AAA. Для меня это работает просто отлично, никогда не было проблем с этим. Но мне интересно, почему во всех играх AAA используются коммерческие компиляторы, такие как Intel Studio? Почему это имеет значение? GNU GCC также оптимизирует код для всех систем, а не только для Intel, так почему они беспокоятся о таких вещах, как Intel Studio?
c++
game-industry
c
mingw
LiquidFeline
источник
источник
Ответы:
Компилятор Intel - это просто другой компилятор. GCC ++ и VC ++ создают код качества производства, так же как и ICC Intel. Основное отличие заключается в 4 ключевых областях:
Когда вы пытаетесь выжать все до последней части производительности (в основном) процессоров Intel, студии AAA готовы заплатить за это, а весной - за ICC. Смотрите здесь для большой анекдотической истории. Обратите также внимание на его раздел «Недостатки», где ICC обвиняется в том, что он работает хуже, чем на неподлинных ЦП набора команд Intel (например, AMD).
источник
Многие не-ПК платформы, включая некоторые консоли и портативные устройства, используют модифицированный GCC в качестве основного / единственного компилятора.
На ПК большинство разработчиков игр используют компилятор Visual Studio. Выбор компилятора, как правило, мало влияет на скорость выполнения по сравнению с дизайном движка и графикой, они все равно платили за Visual Studio из-за его набора функций в качестве IDE, GCC сравнительно сложнее в установке и начале работы. и это не очень помогает улучшить время итерации и производительность. Нет просто веской причины использовать GCC по сравнению с альтернативами, в которые все уже инвестировали.
источник
Да, это может быть использовано для игр АА.
Причина, по которой почти во всех играх ААА (если не во всех) используются коммерческие компиляторы, заключается в том, что коммерческие продукты обычно имеют поддержку, и вы можете жаловаться или получать помощь 24/7 или просто КАК МОЖНО СКОРЕЕ при решении любой проблемы, которая может у вас возникнуть, и в ААА индустрия, время означает деньги. Большие команды и компании, особенно последние, не хотят полагаться на сообщество, когда на карту поставлены большие деньги. Лучше вкладывать в поддержку по контракту.
С другой стороны, двигатели опираются на SDK. Если SDK не поддерживает компилятор, это означает, что вы работаете самостоятельно, и обходное решение не выгодно.
Наконец, оптимизация. Если вы знаете, что многие игроки используют Intel, то, черт возьми, вы хотите, чтобы ваша игра была любезна для них.
источник