Хватит кричать о x86 системах

Уважаемые. Расскажу вам кратенько почему отказались от x86 и почему не спросили вас.


UPDATE


  1. Есть люди, считающие, что в тексте ниже речь идет о видеопамяти и упорно считают, что я имел в виду именно видеопамять. Текст ниже не меняю на случай, если вы захотите проверить. И на всякий случай: речь идет только про ОЗУ.
  2. Есть люди, считающие, что движок игры по моему описанию читает и распаковывает архив с моделькой для каждого фрейма отрисовки. Эти люди почему-то считают так даже после того, как я упомянул, что считывание и распаковка не происходит для каждого кадра, а моделька грузится один раз в память. Я думаю, что вы поняли мою позицию.
  3. Есть люди, считающие, что мои слова об ограничении памяти x86 архитектур 4 гб распространяются на все возможные случаи. Поясню, что я не привожу никаких других случаев по причине того, что подавляющее большинство игроков понятия не имеют о том, что это ограничение есть и как оно снимается. А раз так, то нет смысла упоминать о меньшинстве. Конечно, вы можете установить серверную x86 винду и играть на ней с памятью без ограничений. Можете снять ограничение в домашней версии через бутлоадер или что-угодно еще. Можете написать свою ОС и собрать свое железо и играть на нем. Можете дизассемблировать код игры и переписать его на ваше усмотрение. Все это вы можете, дерзайте.
  1. Пруф того, что в ОЗУ хотс может занимать более 4 гб памяти: https :// hostingkartinok .com/show-image.php?id=11ccaca6b2241485b322aa2378e33702


В поддержке продуктов существуют границы. Нельзя поддерживать коммерческий продукт, которым является HOTS, на чистом энтузиазме. Потому когда выгода от поддержки падает меньше минимального ожидаемого - принимается решение о прекращении поддержки. Зачастую этот момент планируется заранее, как и было сделано с этой игрой.

Объективно говоря, игроков с x86 системой ничтожно мало на текущий момент по ряду причин, в основном сводящимся к тому, что этими игроками используется крайне устаревшее железо (не считаю тех, кто использует железо близкое к среднему, но не в курсе, что может поставить x64 операционку на него). Следовательно, раз игроков таких так мало, то и оставлять поддержку этой архитектуры не выгодно.

Теперь почему это не выгодно:

  1. Разработка игры под обе платформы требует либо расширить необходимые требования к железу, либо молча смиряться с лагами, фризами и т.д., делая вид, что их нет.
  2. коммерческая выгода отсутствует и занижает возможную выгоду от проекта без поддержки 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 верните”.

16 лайков

А кто кричал то?..

2 лайка

Например, в этой теме Верните 32-битную систему! на данный момент 157 сообщений, многие из которых довольно “негодующие”. Провокационный заголовок для моей темы призван заставить негодующих прочитать хоть что-то из темы и задуматься о праведности своего гнева. :slight_smile:

Лайков: 1

Так может стоило отписаться в ТОЙ теме?

Лайков: 1

Там бесполезно что то строчить

Не посчитал нужным. Когда ответ больше 20 строк, то это отдельная тема.

3 лайка

Ну да, а если я создам тему о очередном косяке Активижн ее тут же удалят как повтор.

Двойные стандарты.

Могут. Я приказываю! Достаю латекс, маску и кнут
:slight_smile:

Лайков: 1

В той теме 3 дня уже никто не писал. И это сейчас именно ты опять поднимаешь тему 32битных систем.

Лайков: 1

Огромное спасибо за тему!

Лайков: 1

ахахах бомбление у владельцев калькуляторов все еще не остыло.

3 лайка

А где, собственно, прогресс и в чём?) Что на х86, что на х64 гора багов, лаганные долгие прогрузки с фризами, отвратительные реконнекты по 15 минут и утечки памяти. Да даже демку нормально нельзя поглядеть, не проматывая весь матч, будто вернулся во времена магнитофонов и плёночных кассет. Ни для кого не секрет, что 32битная версия была чуть менее лагованной, поэтому большинство на ней и сидели, даже на Пека с 64. Или может быть прогресс геймплейный с добавлением мегаимб и последующей их кастрацией, когда волна хайпа стихает? Или прогресс в системе ранкеда с +170 -220 неизвестно за что? Или прогресс в подборе игроков, когда люди 10 уровня попадаются с людьми 3000го? “Прогресс” и “Лишь бы отвязаться” - это немного разные понятия.
P.S. Товарищ Ruido вообще что-нибудь пишет на форуме, кроме бесконечной воды для набивания счётчика постов?

3 лайка

Я сюда 3 месяца не заходил. 3 дня по сравнению с этим - не так много. :slight_smile:

ShulerIsDead, Вы же сейчас спрашиваете за прогресс логики игры, логики системы ранкеда и т.д., я же описал об архитектурных решениях. Изменения ранкеда не требует больше ресурсов, так как это лишь изменение системы подсчета, причем на их серверах.

Ну а касательно багов - в большой компании разработческие баги решаются по принципу значимости. Если ваши баги не разрешены, значит они не влияют на игру так сильно, по мнению разработчиков, либо им об этом не рапортируется с необходимой частотой. :slight_smile:

3 лайка

Ах, вся Ваша писанина про архитектурные решения рассчитана на то, что половина игроков, которые незнакомы с данными терминологиями зайдут в тему, увидят “Ух ты, что-то умное написали горой текста, я ничего не понимаю в IT сфере, но наверняка этот человек знаток и дело говорит, соглашусь-ка я с ним”. Хотя лично я (как владелец Пека с 64битами, на котором игра идёт нормально!), вижу этот пост как “Вы все нищеброды и нытики, выпросите у мамки новый кампуктер, РАЗРАБОТЧИК ВСЕГДА ПРАВ”. Если Вы считаете, что для игры, движок которой с 2011 или какого там года не научили выгружать кеш без перезаходов (а эта проблема ещё времён СК2) нормально, когда карта с крипами и 10 модельками зажирает тонны ОЗУ, то… может быть дело не в х86 архитектуре? Да, не спорю, сейчас игра наконец не зависает намертво после 5 игр на 8Гб оперативки, как при патче с Фениксом, но это далеко не прогресс. Это простые фиксы собственных косяков. На релизе эта игра, кстати говоря, работала нормально даже на самых старых вёдрах и ноутах. Плохие реконнекты и утечки памяти, конечно же, незначимы, согласен. То-то на них жалуются в каждой второй теме с 15 года. Поэтому не надо мне здесь с умным видом знатока зубы заговаривать, я понимаю про что читаю и о чём говорю. Системой ранкеда и подобными “логическими” вещами, судя по всему, никто заниматься вообще не планирует, на стримах в МЛ половина залётных игроков так и будет руинить катки с уровнями аккаунта в 3 раза ниже моего, при то что меня игра пихает насильно в Серебро к Мясникам 0 10 и Тайкусам, впервые зашедшим в игру. Зайдите в меню наград для героев, когда увидите там вместо золотой рамки с таунтом 15 уровня 2 белых квадрата, тогда и убедитесь в прогрессировании ХоТСа семимильными шагами, в котором яро всех тут пытаетесь убедить)

5 лайков

Уважаемый. Я разработчик, который тесно связан с разработкой на тех языках, на котором написана игра (и еще на парочке) и благодаря тому, что я понимаю принципы разработки и работы архитектуры я смог написать пост “Для чайников”, чтобы на пальцах рассказать почему такое решение было принято. Вы же наклеили мне ярлык мажора. Удачи вам в вашем подходе к общению с людьми на вашем жизненном пути, она вам понадобится.

Теперь перечисленные вами претензии с точки зрения проблем архитектуры.

Это проблема не касается архитектурных проблем. Если это беспокоит вас и еще N людей, то это не значит, что это должно стать первостепенной проблемой разработчика и он должен ее пофиксить в первую очередь. Предлагаю вам мысленный эксперимент. Вы - разработчик. У вас несколько тысяч проблем. Ряд проблем из них - с самого начала. Как вы думаете, на каком месте будет отмеченная вами проблема и по какому принципу они ранжируются? После этого ответьте на вопрос: эта проблема проявляется на турнирах, у большинства других игроков? После этого: если эта проблема не проявляется у большинства, то какой смысл решать ее в первую очередь, если ублажив большинство разработчик по определению получит больше прибыли? Чувствуете приоритеты?

Я знаю какая она была на релизе. Даже на бета тесте. Конечно, игра была другая. Ну раз с релиза игра стала тормозить, то значит код менялся, верно? Допустим, что-то добавили и изменили движок для исключения ряда багов (ну не для добавления их, конечно же :wink: ) и движок стал жрать условно на 1% больше ресурсов с каждым патчем. Через сколько времени после фиксов всех первостепенных в очереди багов с тем же количеством патчей, что было, игра должна отрастить новые требования к железу по вашему мнению? :slight_smile:

Ну я, честно говоря, сомневаюсь, что понимаете, так как по делу никаких контр-аргументов я не увидел. Приведите контр-аргументы с точки зрения архитектуры и разработки под нее, раз вы понимаете, мы спокойно обсудим. Зубы тут никто никому не заговаривает. Если вы разработчик, то это было бы проще для меня для обсуждения, так как мне не придется приводить никаких ликбезов и объяснений, если нет - мне не лень на пальцах объяснить некоторые вещи.

5 лайков

Уууууу в какое русло пошла тема)) Приятно познакомиться. А я простой человек из глубинки, такой же как Вы и большинство сидящих игроков на данном форуме. Надеюсь, что Вы по совместительству не разработчик одного Российского шедевра Lada Racing Club, которые в игру засовывали пустые гигабайтные файлы, дабы распластать её на несколько дисков и перед релизом выпустили кусок кода, вместо игры показанной в трейлерах, при установке которой вшивался с антипиратской защитой драйвер, убивающий современные ОСи. К чему я это? Разработчики бывают разные, не нужно бахвальствоваться этим, для меня подобного рода аргумент звучит не более убедительно, чем “ЯЖЕМАТЬ”, “Добейся сначала сам”, “Создай сначала свою игру, которая будет круче” и пр. Ладно, я дерзковато ответил, не спорю, но это не отменяет написанного бреда, по типу того что новые скины и герои требуют безусловного отказа от старых архитектур, вместо пары гигабайт места на ЖД. Вы случаем не из отдела маркетологии? Они также оправдывают различные претензии и недовольства игроков в сторону продукта отмазками и заумными вещами. Или выпускают игры под DX12, созданную на отвали, дабы пересадить фанатов Форзы и ещё кого-нибудь попутно на плиточную Десятку, точно также расписывая, какой DX12 внёс технологический прогресс и как предыдущие ОСи от Майков бы такие технологии не потянули. Знаете, скажу по секрету одну страшную тайну: я не разработчик. А если бы был им, то в первую очередь действовал в интересах игроков, а не сидел и пытался взять их на понт на форумах. Так можно добиться гораздо большего успеха и плюс ко всему доверия потребителей. Я же не предлагаю вам поговорить о футболе, о кулинарии или о автомобилях. Пишу я с точки зрения простого игрока, не казуала. В интересах игроков играть с комфортом. 32битная версия на момент существования никому не мешала и ею многие пользовались по разным причинам. Её просто взяли и удалили, чтобы не заморачиваться лишний раз при выпуске патчей. Ничего после удаления в игре в плане производительности или оптимизации не поменялось, просто осталась 64битка. Никто игроков не слушает. В игре и так онлайн маленький, оставшиеся уйдут, кто будет играть? Отдел разработки? Я выйду из темы и через 5 минут (установлю кому-нибудь Виндовс ХП Зверь за 1000 рублей, яжепогромистнарайоне) забуду этот холивар, а проблемы игры остаются и онлайн падает, как бы здесь ни пропагандировали развитие…

4 лайка

Можно и короче объяснить, х86 не поддерживает больше 3гб ddr.

Лайков: 1

…а игра есть оперативу, как слон. И поэтому х86 версию решили удалить, чтобы не решать данную проблему. Вот коротко и ясно. Не нужно быть гением разработки, чтобы догадаться об этом.
P.S. Блин, вот нафига я заставляю человека гору текста лишний раз писать, лучше бы я промолчал и прошёл мимо, лишний раз уже убеждаюсь. Какие бы умные вещи он не писал и как бы не грузил аргументами из своего дела, которым занимается много лет, причина отказа от 32 бит лежит на поверхности и я её написал. Она слишком очевидна.

4 лайка

Ну смотрите. Тут вы показали только то, что не представляете как работает движок игры. Давайте поясню, а вы далее будете отталкиваться от этого, а не отталкиваться от заблуждений.
Вся игра хранится на диске. Игра разбита на движок и отрисовочные ресурсы. Чтобы отрисовать одну модельку, надо иметь в памяти движок, библиотеки взаимодействия с системой на уровне пользователя и уровне системы, метаресурсы модельки. Что такое метаресурсы модельки? Это данные, полученные путем преобразования данных, прочитанных с диска. Почему такая цепочка? Потому что на диске данные сжаты, их надо прочитать и разжать и, более того, разместить в памяти оптимальным образом, чтобы читать из памяти было эффективно, а это значит, что может быть применен метод перерасхода памяти для достижения повышенной скорости чтения, например, с использованием паддингов.
Теперь давайте считать. В папке игры x86 есть сжатые модельки. Я подозреваю, что это файлы в папке data, размером от 1 гб. Таких файлов 22, в сумме где-то около 21 гб.
Имеем: 21 гб сжатых моделек на диске. Что должна сделать игра? Прочитать и разжать, выбрать нужную модельку и отрисовать. Допустим, разжатая метамоделька в памяти весит 150 мб (оооочень демократично). Имеем 10 моделек героев - 1500 мб. Имеем модельки крипов. Допустим еще 500 мб к этому - 2000 мб в сумме. Имеем модельку карты и тут возникает сложность. Дело в том, что оптимально на экране отрисовывать то, что видит игрок, но это не эффективно на слабых компьютерах, так как при передвижении экрана возникают ситуации, когда надо отрисовать намного больше, чем может бюджетный ПК. Тут приходится прийти к решению хранения в памяти гораздо больше всего, чем видит игрок. Вернемся к карте и разрешению экрана. Битмап размера 1920 * 1080 весит в среднем: 1920 * 1080 * 32 бит = 8 мб. Но это только экран. Давайте прикинем так, что нужно хранить 9 экранов вокруг для возможности безфризового передвижения экрана - это 72 мб только графической информации в виде картинок, что эквивалентно 4320 мб при 60 фпс (если храним 60 кадров). Допустим, мы в кэше держим 10 - тогда это 720 мб.
В итоге отрисовка карты с 10 модельками без движения, эффектов и претензий на скорость у нас заняла где-то 2720 мб. А теперь давайте учтем, что Абатур копировать может модельки и на карте может появиться больше 10 моделек. А давайте учтем, что для корректного движения нужна система прогнозирования действий, а давайте учтем, что эффекты занимают в разы больше, чем модельки, а давайте учтем, что движок тоже не весит 0. Будем дальше считать? :slight_smile: Предлагаю вам это сделать, это полезно для понимания, а после - сказать, что получилось.

Ну во-первых, я не разработчик игр, но разработка игры мало чем отличается от разработки того, с чем я работаю. Во-вторых, попробуйте все-таки расставить приоритеты в вопросе выше про тысячи проблем. Просто сделайте это в ответе ниже. Без этого диалог не пойдет. “Интересы игроков” - это общие слова. Давайте я упрощу вам задачу.
У нас есть 1000000 игроков (допустим). Из них 15% - на архитектуре x86 (символизируем меньшинство), т.е. 150000. Теперь вспомним, что 7% игроков донатят. Но те, у кого железо слабее, донатят реже и меньше по общей статистике, потому допустим, что группа x64 донатит 2 доллара в месяц, а группа x86 1 доллар. Получаем:

  1. выручка x86 игроков: 1000000 * 0.15 * 1 * 0.07 = 150000 * 0.07 = 10500 долларов в месяц.
  2. выручка x64 игроков: 1000000 * 0.85 * 2 * 0.07 = 2 * 850000 * 0.07= 1700000 * 0.07 = 119000 долларов в месяц.

Теперь вы - глава отдела разработки. Перед вами все баги и статистика их проявления + степень влияния на гейплей, репутацию и т.д.;15% всех этих багов связаны с теми людьми, с которых выручка покроет лишь аренду части серверов. На какой приоритет конкретно вы поставите решение проблем тех 15% людей с x86 архитектурой?
И следующий вопрос. Перед вами стоит факт: x86 более не будет поддерживаться официальным представителем Microsoft. Следовательно, разрабатывать игру без разработки новых системных методов невозможно, а реализовывать новые методы на старых x86 функциях дорогостоящее занятие, которое приведет к уменьшению производительности, при этом вы еще видите, что если сократить количество платформ, то общая производительность игры увеличится. Как вы будете решать проблему?

Вы пишете с точки зрения игрока с x86 платформы. Вы же говорите, что многие игроки ей пользуются, но слово “многие” - совершенно не значит, что эти игроки в приоритете. Приоритет складывается от выручки, выручка от x64 платформы, от x86 ее практически нет в силу того, что вы, видимо, не в курсе того, что официальная поддержка винды x86 заканчивалась/закончилась, а по политике компании близы поддерживают только официальные версии в связи с тем, что за проблемы неофициальных версий просто некому ответить. Даты окончания поддержек можно поискать тут https :// support.microsoft .com/ru-ru/lifecycle/search/1163 . В связи с этим я и показал выше, что x86 игроков много меньше, чем x64 и говорить о том, что таких игроков много - некорректно.

Я предлагаю вам по пунктам ответить на мои вопросы, без этого обсуждать нечего.

NightKnight, если бы данный аргумент был очевиден, то не было бы в той теме 157 сообщений :wink:

4 лайка

Всё что Вы здесь выше наумничали, тем не менее, почему-то не спасло игроков от подлаганных прогрузок, фризов в замесах, ужасных реконнектов, допотопной системы реплеев, двух белых квадратов в меню и Мясника 0 10. Этот факт заставляет задуматься.

6 лайков