Почему в играх нет 64-битных исполняемых файлов? [закрыто]

10

До сих пор я видел, что многие игры все еще скомпилированы в 32-битной архитектуре, хотя почти 50% нынешних пользователей Windows работают на 64-битных ОС? Почему это?

Если причина в том, чтобы увеличить аудиторию (поскольку 32-разрядное приложение может работать на 64), почему бы не сделать две его версии, поскольку речь идет о перекомпиляции, а запуск 64-разрядных приложений может повысить производительность благодаря большему количеству доступные регистры процессора и другие функции.

Урай
источник
World of Warcraft только начал поставлять 64-битный исполняемый файл, и я считаю, что игры Source (по крайней мере, Valves) имеют 64-битные версии. Так что похоже, что люди прыгают на подножку.
Кайл

Ответы:

13

Этот блог MSDN о том, почему нет 64-битной версии Visual Studio, посвящен многим проблемам, которые также влияют на игры. Суть в том, что переход на 64-битную систему может во многих случаях снизить производительность из-за влияния на кэш процессора (больше данных с 64-битной архитектурой, но кэш-память того же размера).

Может помочь дополнительная адресуемая память, но в любом случае немногие потребительские машины имеют более 4 гигабайт памяти. Добавьте к этому боль в распространении двух двоичных файлов для Windows, и легко решить, что время для 64-битных игр не подходит (пока).

kevin42
источник
5
Я думаю, что ваш второй параграф был правдой 2 года назад, но не сегодня.
Барт ван Хейкелом
5

На моей предыдущей работе мы перенесли весь наш движок (MMO) на 64-битную версию и в итоге запустили 64-битный клиент в нескольких местах как часть конвейера разработки для предварительной обработки данных. Но мы никогда бы не отправили 64-битный клиент конечным пользователям.

Во-первых, улучшение производительности очень незначительное, и большинство игр для ПК в любом случае ограничиваются графическим процессором.

Во-вторых, очень немногие конечные пользователи имеют достаточно оперативной памяти, чтобы воспользоваться преимуществами 64-битного исполняемого файла, и любой движок, даже смутно разработанный для консолей (который запоминается максимум при 512 Мб), не будет оптимизирован для большой доступной памяти.

Наконец, наличие 2 исполняемых файлов в вашем конвейере распространения - гигантская боль в заднице. Вы не можете отправить только 64-битный исполняемый файл, потому что тогда 30% вашей аудитории не смогут его запустить. Таким образом, вы должны отправить как 64-битный, так и 32-битный исполняемый файл, а также какую-то оболочку, которая запускает правильную версию. Если вы онлайн-игра, это означает, что вам потребуется дополнительный мегабайтный файл для исправления каждый раз, когда изменяется любой код, и дополнительная сложность в обеспечении того, что нужная версия попадет к нужному игроку. Это просто не стоит усилий для незначительных выгод.

Бен Зейглер
источник
2

Если бы это было просто вопросом перекомпиляции, у нас была бы 64-битная версия всех игр.

К сожалению, это не так просто, особенно с игровыми движками со старой кодовой базой.

В этом случае перенос на 64-битную систему потребует больших усилий. Проще говоря, преимуществ пока недостаточно, чтобы это стоило.

NocturnDragon
источник