Уважаемые. Расскажу вам кратенько почему отказались от x86 и почему не спросили вас.
UPDATE
- Есть люди, считающие, что в тексте ниже речь идет о видеопамяти и упорно считают, что я имел в виду именно видеопамять. Текст ниже не меняю на случай, если вы захотите проверить. И на всякий случай: речь идет только про ОЗУ.
- Есть люди, считающие, что движок игры по моему описанию читает и распаковывает архив с моделькой для каждого фрейма отрисовки. Эти люди почему-то считают так даже после того, как я упомянул, что считывание и распаковка не происходит для каждого кадра, а моделька грузится один раз в память. Я думаю, что вы поняли мою позицию.
- Есть люди, считающие, что мои слова об ограничении памяти x86 архитектур 4 гб распространяются на все возможные случаи. Поясню, что я не привожу никаких других случаев по причине того, что подавляющее большинство игроков понятия не имеют о том, что это ограничение есть и как оно снимается. А раз так, то нет смысла упоминать о меньшинстве. Конечно, вы можете установить серверную x86 винду и играть на ней с памятью без ограничений. Можете снять ограничение в домашней версии через бутлоадер или что-угодно еще. Можете написать свою ОС и собрать свое железо и играть на нем. Можете дизассемблировать код игры и переписать его на ваше усмотрение. Все это вы можете, дерзайте.
- Пруф того, что в ОЗУ хотс может занимать более 4 гб памяти: https :// hostingkartinok .com/show-image.php?id=11ccaca6b2241485b322aa2378e33702
В поддержке продуктов существуют границы. Нельзя поддерживать коммерческий продукт, которым является HOTS, на чистом энтузиазме. Потому когда выгода от поддержки падает меньше минимального ожидаемого - принимается решение о прекращении поддержки. Зачастую этот момент планируется заранее, как и было сделано с этой игрой.
Объективно говоря, игроков с x86 системой ничтожно мало на текущий момент по ряду причин, в основном сводящимся к тому, что этими игроками используется крайне устаревшее железо (не считаю тех, кто использует железо близкое к среднему, но не в курсе, что может поставить x64 операционку на него). Следовательно, раз игроков таких так мало, то и оставлять поддержку этой архитектуры не выгодно.
Теперь почему это не выгодно:
- Разработка игры под обе платформы требует либо расширить необходимые требования к железу, либо молча смиряться с лагами, фризами и т.д., делая вид, что их нет.
- коммерческая выгода отсутствует и занижает возможную выгоду от проекта без поддержки x86.
Почитав форум, я думаю, что всем интересен только пункт 1. Как поддержка кода старой архитектуры может тормозить игру? Очень просто. Покажу на псевдокоде. Допустим, есть функция “Отрисовать_Валлу”. Реализована она следующим образом:
Отрисовать_Валлу
{
Если система x86: Отрисовать_Валлу_x86
Если система x64: Отрисовать_Валлу_x64
}
Я думаю, что вы поняли, что в зависимости от разрядности системы срабатывает либо реализация для одной системы, либо реализация для другой системы. Теперь давайте упростим для наглядности то, как работает машинный код и скажем, например, что функция “ЕСЛИ” при выполнении ее процессором работает 0.01 секунду (много, но наглядно для примера). Теперь давайте посчитаем.
Многие из нас хотят, чтобы игра работала с FPS не менее 60 в секунду. Таким образом, из секунды времени будет потрачено 60 * 0.01=0.6 только на отрисовку Валлы. Теперь давайте посчитаем для 10 игроков: 10*0.6=6 секунд требуется для отрисовки всех игроков (забудем об отрисовках всего остального и распределении задач на видюху, я объясняю не это).
Итак, мы получили 6 секунд на команду, которая вообще не зависит от архитектуры и что вообще говоря сильно больше нашего лимита по времени! Что же делать? Правильно, оптимизировать! Но если код для каждой архитектуры написан оптимально, то что тогда оптимизировать? Правильно, нужно узнать насколько вообще необходимо тащить две архитектуры! И тут разработчик видит, что вообще говоря не выгодно тащить одну из них и решает отказаться от нее. Что получается с производительностью? Все просто, мы больше не требуем эти 6 секунд для работы, а значит, производительность выросла! Чудеса.
Теперь с другой стороны. В чем разница x86 и x64 с точки зрения архитектуры процессора? Основная разница в: наборы процессорных команд разные, x64 поддерживает бльше оперативки. К чему ведут разные наборы команд? Допустим, Вася со своей x86 винды скидывает на вашу x64 .exe. Вы его запускаете и скорее всего он работает. Почему? Потому что обратная совместимость. Это значит, что для этого x86 .exe винда создает “симуляцию” среды x86 и файл запускается с адресным пространством x86, в котором будут работать x86 инструкции процессора, которые доступны из-за обратной совместимости. Но у вас на x64 винде почти наверняка больше 4GB оперативки, почему же этот .exe не может схесть больше памяти? Все просто, процессорные инструкции x86 НЕ МОГУТ использовать более 4GB памяти, так как размер адреса в x86 архитектуре как раз 32 бит. Что это получается, что HOTS не может на x86 системе использовать более 4 GB памяти? Да, не может. А x86 HOTS на x64 винде? Тоже не может, так как запущен “в симуляции” обратной поддержки самой виндой. А x64 HOTS? Уже может.
Зачем игре больше памяти со временем? Развитие, добавление героев, скинов, новые методы движка и механики, сетевой код - все это требует использование все бОльших количеств памяти. Ранее, когда была только x86 версия, не были доступны ряд разрешений экрана, графики, были проблемы с производительностью, да и героев с механиками было мало, а теперь игра исчерпала свой лимит комфортной игры на средних с 4GB оперативки. Другими словами - игра развивается и для этого нужны ресурсы. А развития просите вы сами. Только когда оно начинается, начинается крик о том, что “вы вообще-то не там развиваете и нам виднее, что вам нужно делать, вон лучше x86 верните”.