Те времена, когда видеоигры умещались на дискетах, давно прошли: сегодня средний размер проекта категории AAA составляет уже как минимум 50 гигабайт, а некоторые тайтлы вплотную подобрались к отметке в 200 ГБ. С одной стороны, это вызвано стремительным развитием графических технологий, но в то же время немалую роль играет и банальная экономия на оптимизации. А ведь были времена, когда разработчики доблестно сражались буквально за каждый килобайт!
40 килобайт хватит всем
15 июля 1983 года на прилавках магазинов Японии появились миниатюрные красно-белые коробочки с надписью Family Computer на передней панели. Несмотря на громкое название, с настоящими ПК эти устройства не имели ничего общего: Famicom являлись не чем иным, как первыми полноценными игровыми консолями от компании Nintendo (если не считать Color TV Game 6, представлявшей собой клон Pong от Atari).
Оригинальная Nintendo Family Computer для японского рынка
Первый блин закономерно вышел комом: приставка не отличалась надежностью, став объектом критики из-за многочисленных аппаратных и программных сбоев. Однако, после исправления всех недочетов во второй ревизии, Famicom обрел статус самой популярной игровой консоли в Японии: к концу 1984 года было реализовано свыше 2,5 миллионов приставок, что по тем временам стало абсолютным рекордом. А уже в июне 1985 года в рамках Consumer Electronics Show (CES) Nintendo представила версию Famicom для Северной Америки: консоль сменила название на Nintendo Entertainment System, также претерпев серьезные визуальные изменения и получив модернизированную систему загрузки картриджа. Годом позже NES посетила и европейский рынок.
Так выглядела Nintendo Entertainment System. А какой вариант дизайна больше нравится вам?
В Америке NES снискала не меньшую популярность, чем в Японии: изначально выпускать приставки планировали лишь в штате Нью-Йорк, однако первая партия в 50 тысяч консолей была распродана так быстро, что уже через три месяца NES стали продавать по всей территории США. Хотя уже в конце 80-х у Nintendo появился сильный конкурент в лице Sega с ее 16-битной Genesis/Mega Drive, NES оставалась мировым лидером по объемам продаж и в 90-х. И даже после выхода Super Nintendo Entertainment System консоль NES продолжили выпускать ограниченными партиями вплоть до октября 2003 года, а ее официальная поддержка прекратилась лишь в 2007 году, что с учетом стремительного развития индустрии является абсолютным рекордом. Согласно официальным данным, за всю историю консоли было продано около 60 900 000 устройств и свыше 500 миллионов картриджей к ним.
В чем же секрет популярности NES? Вы можете сказать: «Ну разумеется, в отличных играх» — и будете абсолютно правы. Вот только ни один тайтл, каким бы интересным и увлекательным он ни был, не заставит среднестатистического родителя подарить ребенку приставку (не забываем, что успех консоли определяется именно массовым рынком, а не востребованностью среди энтузиастов), если сам аппарат будет стоить баснословных денег. Чтобы уложиться в 200 долларов (цена игровой приставки на старте), инженерам Nintendo пришлось пойти на множество ухищрений и компромиссов. Однако участь самих разработчиков игр оказалась куда менее завидной: попробуйте-ка создать интересную игру, пускай и двухмерную, дистрибутив которой будет занимать не более 40 килобайт! А между тем именно такой объем памяти имели стандартные картриджи, цены на которые также было необходимо удерживать в разумных рамках.
Картридж для Nintendo Entertainment System изнутри
Каждый из них имел лишь два чипа памяти: один — на 8 килобайт, второй — на 32. Добавление дополнительных микросхем неизбежно привело бы к удорожанию картриджа и появлению «игр не для всех»: более технически продвинутых (ведь когда счет идет на килобайты, даже незначительное расширение памяти позволило бы не просто улучшить графику, но и существенно разнообразить геймплей) и, соответственно, куда более дорогих проектов, чего в Nintendo не хотели.
Именно поэтому Super Mario Bros. в свое время произвела настоящий фурор и даже попала в Книгу рекордов Гиннесса как самая продаваемая видеоигра в истории: разработчики Nintendo прекрасно знали все аппаратные ограничения платформы и сумели выжать максимум из доступных 40 КБ, создав платформер с 32 разнообразными уровнями, множеством секретов и комплексным (по сравнению с большинством конкурентов) геймплеем.
Рекламный постер Super Mario Bros. образца 1985 года
А в 2018 году их подвиг решили повторить разработчики инди-студии Morphcat Games. Они поставили перед собой весьма необычную и амбициозную задачу, задумав создать ретроплатформер, который учитывал бы все аппаратные ограничения оригинальной NES. Забегая вперед, скажем, что эксперимент удался: 1 мая 2019 года Micro Mages действительно вышла в релиз, причем любой желающий имеет возможность приобрести проект не только в цифре, но и в виде самого настоящего картриджа для Nintendo Entertainment System.
Коллекционная версия игры Micro Mages, выпущенной для NES в 2019 году
Игрушка получила 26 уникальных уровней в 8 мирах, заполненных секретами и разнообразными противниками, множество геймплейных механик и поддержку мультиплеера на четырех человек. Чтобы уместить все это великолепие в рамках 40 КБ, разработчикам пришлось приложить немало усилий. Вот несколько приемов, которые они использовали.
Доступная память картриджа распределялась следующим образом: 32 килобайта было выделено под логику игры и хранение данных, а оставшиеся 8 КБ предназначались для хранения графики. Из них 4 килобайта было зарезервировано под спрайты, а еще 4 — для отрисовки статических объектов. Сюрпризы начались уже на этапе создания протагониста.
Архитектура приставки накладывала следующие ограничения: 1 спрайт имеет размеры 8 ? 8 пикселей и может использовать 3 оттенка. Сама же приставка может задействовать лишь четыре палитры одновременно и выводить в каждой строке изображения не более 8 спрайтов. Держим в голове, что в мультиплеере у нас будет четыре персонажа, которые должны друг от друга отличаться. И здесь возникают сразу две проблемы. Первая из них заключается в том, что при наличии в кадре противника раскрасить его не получится и антагонист останется черно-белым.
Впрочем, решается она довольно просто: одну и ту же палитру можно использовать повторно. Так как дизайн у противника и героев отличается, такой компромисс не будет бросаться в глаза.
Но поскольку приставка может отрисовывать в каждой строке изображения не более 8 спрайтов, то, если к игре подключатся сразу четыре человека, для противников попросту не останется места.
В прошлом с этим справлялись так: спрайты отрисовывались поочередно на большой скорости, в результате в каждой строке можно было разместить множество динамических объектов. В случае с CRT-телевизорами такой подход был оправдан, но если вы будете играть на жидкокристаллическом дисплее, используя эмулятор NES, мерцание будет слишком хорошо заметно. Чтобы этого не допустить, пришлось пожертвовать детализацией: теперь для отрисовки каждого персонажа и рядовых противников стал использоваться лишь 1 спрайт.
Такой подход позволил существенно сэкономить доступный объем памяти и добавить множество разнообразных анимаций протагонистов.
Но самые сильные монстры просто обязаны быть большими, страшными и хорошо анимированными. Если использовать современный подход, когда каждый метаспрайт (отрисовывает босса целиком) представляет собой один кадр анимации, места в памяти едва хватит даже для одного такого чудовища.
Однако, если внимательно проанализировать дизайн привидения, становится очевидным, что каждый кадр задействует одни и те же повторяющиеся элементы. Например, верхняя часть головы призрака имеет лишь 2 уникальных спрайта, а все остальные повторяются.
На первом кадре ее центральную часть можно и вовсе получить, отразив исходный спрайт относительно вертикальной оси. То же самое можно проделать и с периферическим сегментом головы, но уже на всех кадрах.
В итоге для отрисовки макушки можно обойтись 4 спрайтами вместо 16.
Аналогичным образом можно оптимизировать отрисовку глаз и рта.
Теперь босс занимает всего 21 спрайт и остается еще много места для других чудовищ и динамических объектов. Экономия на лицо, в прямом и переносном смысле.
Аналогичный подход использовался и при создании окружения. Комбинируя набор тайлов (плиток), поворачивая и отражая их вокруг горизонтальной и вертикальной осей, разработчики собирали уникальные метатайлы, а уже из них, в свою очередь, метаметатайлы, получая каменные блоки со сложной текстурой.
Теперь тайлсет стал значительно меньше, а на хранение данных для одной сцены (экрана) достаточно 60 байт. Совсем немного с первого взгляда, но из-за ограниченных возможностей NES даже этого было недостаточно. С учетом всего вышесказанного напрашивается логичное решение — отразить уровень относительно вертикальной оси и сэкономить 50% памяти. Но тогда пострадает геймдизайн.
Симметрия бросается в глаза, к тому же нижний зал оказывается замурован и игрок не сможет выбраться из такого подземелья. И здесь разработчики нашли оригинальный выход. Индекс каждого блока занимает 1 байт, а всего таких элементов у нас 96. В программировании отсчет начинается с нуля, поэтому индекс последнего блока будет равен 95, что в двоичной системе счисления равно 1011111. В этом числе всего 7 цифр (битов), но в байте их 8.
Один свободный бит можно использовать для того, чтобы сдвинуть тот или иной ряд по горизонтали относительно всех остальных.
В нашем примере, чтобы получить асимметричную сцену с заданной планировкой, достаточно сдвинуть лишь два ряда: первый и третий сверху.
Если же мы хотим создать новый уровень сложности для ценителей жанра, за основу можно взять исходные подземелья, поменяв цветовую гамму и добавив несколько новых ловушек. Такого разнообразия будет более чем достаточно, для того чтобы сделать повторное прохождение по-настоящему интересным, при этом мы не выйдем за пределы 40 килобайт для хранения ассетов и кода.
Именно такие остроумные приемы и помогали разработчикам создавать увлекательные видеоигры несколько десятилетий назад.
Оптимизация? Нет, не слышал
Время шло, мощности игровых консолей и персональных компьютеров росли, но, несмотря на это, разработчикам приходилось демонстрировать чудеса изобретательности. Вспомним Legacy of Kain: Soul Reaver. Здесь наш протагонист — не человек, а Похититель Душ: существо, способное свободно перемещаться между материальным и духовным мирами. Астрал, хотя и является отражением мира живых, заметно от него отличается (это важная часть геймплея, так как преграды в реальности можно преодолеть, в нужный момент переместившись в астрал, и наоборот) и населен уникальными монстрами.
Официальный арт Legacy of Kain: Soul Reaver
Для обеспечения плавного перехода между реальностью и астралом (а игровой мир при этом меняется буквально на глазах игрока) в памяти консоли должны были одновременно присутствовать две версии одной локации. Если бы игра была камерной или разделенной на несколько уровней, с этим не возникло бы никаких проблем, но две копии бесшовного мира PlayStation были не под силу: приставка несла на борту 2 МБ оперативной памяти и 1 МБ VRAM. Здесь разработчикам пришлось прибегнуть к механизму фоновой загрузки. Хотя игрок этого и не замечает, на самом деле никакого открытого мира в Soul Reaver нет: бескрайние просторы Ностгота собраны из множества обособленных локаций, подгрузка которых происходит прямо во время игры — например, в тот момент, когда Разиель следует по тайным коридорам или пробирается через пещеры в горах.
Когда Разиель зайдет в пещеру на заднем плане, текущая локация выгрузится из памяти консоли и начнет загружаться новая
В том или ином виде этот прием применялся в других играх (выходивших и до, и после) зачастую куда менее изящно: вспомним знаменитые двери в Resident Evil или лифты в первом Mass Effect. Иногда необходимость в оптимизации порождала оригинальные художественные приемы, как это было в случае с Silent Hill: туманный город-призрак стал именно таким, поскольку разработчикам было необходимо снизить дальность прорисовки на открытых пространствах.
В тумане Silent Hill прятались не только монстры, но и подгружаемые «на ходу» объекты
Но в любом случае речи о том, чтобы скрупулезно считать каждый бит, уже не шло. Сегодня же разработчики уделяют экономии аппаратных ресурсов еще меньше внимания, нежели раньше, причем чем дороже проект, тем хуже он зачастую оптимизирован.
Геймеры со стажем наверняка помнят, какое неизгладимое впечатление производил Crysis. Этот фантастический боевик неплохо выглядит даже по современным меркам.
Спустя 13 лет Crysis почти не устарел с технической точки зрения
А теперь признайтесь, только честно: были ли после Crysis игры, которые произвели на вас такой же вау-эффект? Не глубиной геймплея, не сюжетом, не отдельными фишками, вроде лицевой анимации в L.A. Noire или физики огня в Alone in the Dark, а именно превосходной картинкой? Почти наверняка нет. Конечно, если сравнивать детище Crytek с любым современным AAA-проектом, в глаза будут бросаться более четкие текстуры, более точное освещение, большее количество полигонов, большая дальность прорисовки. Но так ли уж нужны визуальные улучшения, если теперь, для того чтобы с комфортом поиграть в AAA-релиз при стабильном фреймрейте, не обойтись без топовой машины, мощность которой будет избыточна даже для многих профессиональных задач? На этот вопрос каждый ответит сам. Единственное, что можно утверждать с полной уверенностью, — это нужно крупным издателям игр.
Поговорка «Встречают по одежке» в полной мере применима и к видеоиграм: чем красивее графика, тем проще заинтересовать массового потребителя. Если же целевая аудитория не заметит качество эмуляции шерсти на хвосте собаки главного героя или генерируемый в реальном времени дымок от сигареты, отъедающие этак 70% вычислительных мощностей ПК, об этом всегда можно рассказать во время рекламной кампании: не просто же так на маркетинг уходит добрая половина бюджета AAA-игр. Красные и зеленые шильдики на заставочных экранах тоже появляются не просто так: коллаборация с производителем видеочипов требует внедрения новейших графических технологий, способных подвигнуть геймера на покупку очередного «Титана 100500».
Часто возникают весьма интересные ситуации. Возьмем Metro: Exodus, в которой используется рейтрейсинг. Чтобы игрой могли насладиться и обладатели видеокарт, не поддерживающих трассировку лучей, разработчикам, помимо новомодной технологии, пришлось задействовать и старую добрую растеризацию. Давайте посмотрим, что получилось в итоге.
Разница не так уж и очевидна: если присмотреться, то можно заметить, что при включенном RTX персонажи в центре кадра освещены хуже, нежели солдаты, стоящие ближе к окнам. Так оно и должно быть в жизни, а значит, рейтрейсинг реально работает. Вот только даже на RTX 2080 Ti (а это, на минуточку, топовая видеокарта) включение данной опции вызывает просадки FPS вплоть до 45 кадров в секунду при средних значениях в 72. Причем в большинстве других сцен разницы не видно вообще.
В 4A Games уже поспешили заявить, что откажутся от старых технологий и следующая игра франшизы будет использовать для расчета освещения исключительно трассировку лучей, ведь это существенно упростит разработку. Растеризация выводит объекты по очереди, один за другим, между ними не существует никакой связи, поэтому, чтобы освещение, отражения и тени выглядели естественными, художникам и дизайнерам приходится прилагать немало усилий. В случае с RTX все объекты сцены изначально связаны: луч света отражается от одного предмета, попадает на другой, перенимая его цвет и отражаясь вновь, и так далее. Это позволяет не просто сделать освещение более реалистичным, но и существенно упростить работу над каждой сценой.
Конечно, прогресс не стоит на месте, и вполне возможно, что к релизу следующей части разработчикам удастся добиться действительно фотореалистичного изображения и даже видеокарты среднего ценового сегмента смогут выдавать стабильный FPS с включенным RTX. Но пока, в свете минимальной разницы между «было» и «стало» и из-за необходимости в топовой карте, которая захлебывается от «волшебных лучей», вся эта ситуация выглядит примерно так: «Вы, уважаемые игроки, заплатите больше, чтобы мы работали меньше». Хотя Сильван Троттье, выступивший в роли продюсера Assassin's Creed 4: Black Flag, которая имела серьезнейшие технические проблемы на релизе, высказался на этот счет еще в 2013 году, заявив следующее:
«Из-за аппаратных ограничений игры для консолей требуют оптимизации. В случае же с ПК, если геймеру не хватает производительности, он может просто купить новую видеокарту».
А еще новую материнскую плату, процессор, оперативной памяти побольше и SSD пошустрее. Последние, кстати, будучи изначально уделом энтузиастов, уже давно обрели статус «маст-хэв», ведь и требования к производительности накопителей у компьютерных игр непомерно выросли. А вместе с ними возросли и требования к их объему.
Сколько вешать в гигабайтах?
За последние несколько лет размеры дистрибутивов игр выросли до неимоверных значений. Если раньше самые навороченные проекты с открытым миром и кучей контента весили от силы несколько десятков гигабайт, то сегодня даже линейный шутер может спокойно «скушать» 150–200 ГБ дискового пространства, и даже не поморщиться. На сегодняшний день топ-10 самых тяжелых игр выглядит следующим образом.
- Call Of Duty: Modern Warfare — 175 ГБ
- Final Fantasy XV — 148 ГБ
- Gears of War 4 — 136 ГБ
- Call of Duty: Black Ops 3 — 113 ГБ
- Red Dead Redemption 2 — 112 ГБ
- Middle-earth: Shadow of War — 105 ГБ
- Call of Duty: Infinite Warfare — 101 ГБ
- Quantum Break — 76,5 ГБ
- Grand Theft Auto V — 76 ГБ
- Gears 5 — 66 ГБ
Цифры очень показательны: сразу становится очевидным, кто учится на собственных ошибках и хоть иногда задумывается о геймерах, а кто — нет. Gears 5 стала самой масштабной и технологически совершенной игрой в серии, однако весит вдвое меньше по сравнению с четвертой частью и при этом демонстрирует отменную картинку. Оказывается, если поработать над оптимизацией, можно добиться впечатляющих результатов.
К Red Dead Redemption 2 вряд ли можно предъявлять какие-либо претензии. Огромный мир, превосходная графика и куча контента. С учетом фирменной проработки мелочей от Rockstar это закономерно требует немалого дискового пространства.
В то же время объем Call of Duty растет постоянно, хотя особых графических изысков в играх серии попросту нет, как и открытого мира. С какой стати в таком случае линейный шутер умудрился «располнеть» до 175 ГБ? Если учесть скорость, с которой выпускаются новые части, ответ становится очевидным: Activision попросту не оставляет разработчикам времени на оптимизацию.
Бакенбарды капитана Прайса с каждым годом обходятся геймерам все дороже
Эти цифры говорят о том, что потребность во вместительном накопителе становится более чем очевидной. Но что насчет производительности? Быть может, удастся обойтись обычным HDD? Увы, нет.
В таблице ниже приведены данные о потреблении оперативной памяти и VRAM наиболее прожорливыми играми, вышедшими за последние годы (измерения проводились на ультранастройках при разрешении 4K).
Игра |
Потребление RAM, ГБ |
Потребление VRAM, ГБ |
Assassin’s Creed: Odyssey |
7,5 |
7,1 |
Battlefield V |
12,8 |
7,7 |
Hitman 2 |
9,5 |
8,1 |
Shadow of the Tomb Raider |
8,9 |
8,8 |
Witcher 3 |
9,6 |
4,3 |
Metro: Exodus |
8,5 |
5,1 |
Far Cry 5 |
9,8 |
9,9 |
Star Wars Battlefront II |
10,5 |
8,3 |
Как все это связано со скоростью накопителя? Напрямую. Чтобы процессор и видеочип могли работать с файлами игры, их сперва необходимо загрузить в оперативную память и VRAM соответственно. Производительность топового игрового HDD составляет 227 МБ/с. Если на такой винчестер установить Battlefield V, который суммарно потребляет 20 гигабайт RAM и видеопамяти, на полную загрузку всех ресурсов потребуется 20000/227 = 88 секунд, то есть целых 1,5 минуты! Конечно, на практике все работает гораздо сложнее, однако даже такой грубый подсчет помогает получить представление о примерной скорости загрузки очередной карты, на которой должна развернуться виртуальная баталия.
Причем если в случае с «камерными» проектами все, на что влияет быстродействие накопителя, — это время ожидания загрузки локации, то когда речь заходит об играх с открытым миром, недостаточная скорость чтения данных негативно отражается на минимальном FPS. Ведь даже самый навороченный компьютер не способен держать в оперативной памяти и VRAM все необходимое для отрисовки 256 км2 карты Assassin’s Creed: Odyssey: подгрузки файлов будут происходить непосредственно во время игры. Причем до того, как все необходимые ресурсы окажутся в оперативной и видеопамяти, процессор или видеокарта не смогут подготавливать новые кадры, что чревато просадками фреймрейта в сложных сценах.
В свете всего вышеперечисленного наличие высокопроизводительного SSD в игровом ПК является уже не роскошью, а жизненной необходимостью, причем накопитель должен быть не просто быстрым, но и вместительным, ведь с течением времени аппетиты игр будут только расти. К счастью, сегодня даже высокоскоростные NVMe SSD стали вполне доступны.
Для примера рассмотрим твердотельный накопитель WD Blue SN550 емкостью 1 терабайт. На момент написания этой статьи его цена по данным «Яндекс.Маркета» варьируется от 10 500 до 11 000 рублей, что лишь немного дороже по сравнению с качественными SATA SSD того же объема.
И в отличие от ряда собратьев по среднебюджетному сегменту этот накопитель задействует четыре линии PCI Express 3.0 вместо двух, за счет чего оказывается на 60% быстрее, демонстрируя устойчивую скорость 2400 МБ/с в операциях последовательного чтения против максимальных 1500 МБ/с, если сравнивать с NVMe SSD, использующими урезанный PCIe ? 2. Скоростные характеристики WD Blue SN550 выглядят еще интереснее на фоне SATA-накопителей, обгоняя их по производительности более чем в 4 раза.
Модель |
WD Blue SN550 NVMe SSD |
Noname PCIe ? 2 NVMe SSD |
WD Blue 3D NAND SATA SSD |
Емкость |
1 ТБ |
960 ГБ |
1 ТБ |
Скорость последовательного чтения, МБ/с |
2400 |
1500 |
560 |
Скорость последовательной записи, МБ/с |
1950 |
1000 |
530 |
Максимальное количество операций произвольного чтения, 4KB QD32 (IOPS) |
410 000 |
120 000 |
95 000 |
Максимальное количество операций произвольной записи, 4KB QD32 (IOPS) |
405 000 |
100 000 |
84 000 |
Столь высокая разница обусловлена ограничениями интерфейса: в отличие от параллельного NVMe, последовательный SATA не дает в полной мере раскрыть скоростной потенциал флеш-памяти. Теоретически возможным потолком для SATA-накопителей является скорость передачи данных 768 МБ/с, хотя на деле максимум, чего удается достичь, — 560 МБ/с, тогда как даже одна линия PCI Express 3.0 обладает пропускной способностью 985 МБ/с. Наличие же четырех таких линий позволяет распараллеливать потоки данных между чипами и достигать невиданных ранее показателей (именно поэтому, кстати, старшая модель линейки SN550 оказывается самой быстрой).
Немаловажен и тот факт, что при производстве WD Blue SN550 используется флеш-память 3D NAND BiCS 4-го поколения. 96-слойные кристаллы помогли не просто увеличить объем твердотельных накопителей, но и повысить их надежность: флагманская модель способна похвастаться ресурсом в 600 ТБ перезаписи, в то время как у SATA SSD аналогичного объема таковой составляет 400 ТБ. В свете всего вышеперечисленного WD Blue SN550 можно назвать прекрасным решением для сборки современного игрового ПК. По соотношению цены, производительности и надежности этот накопитель опережает любых конкурентов.
Если же вы хотите собрать самую быструю машину, какую только можно, и не намерены жалеть денег, стоит обратить пристальное внимание на серию накопителей WD_BLACK SN750 NVMe SSD, ориентированных на хардкорных геймеров. Восьмиканальный контроллер собственного производства и ряд оптимизаций прошивки позволили нам вплотную приблизиться к верхней теоретической границе пропускной способности интерфейса: самый быстрый накопитель «черной» линейки емкостью 1 ТБ может похвастаться скоростью передачи данных до 3470 МБ/с в операциях последовательного чтения и до 3000 МБ/с при последовательной записи. Что же касается 2-терабайтного флагмана, то он получился чуть медленнее (3400 МБ/с при чтении и 2900 МБ/с при записи), что объясняется использованием более емких многослойных чипов по 512 ГБ каждый. Зато на такой накопитель уж точно без проблем влезет десяток самых тяжелых ААА-игр.
Однако SN750 интересны не только превосходными скоростными характеристиками, но и двумя важными особенностями. Во-первых, NVMe SSD получили достаточно массивный радиатор, который в сочетании с измененной топологией печатной платы обеспечивает эффективный теплоотвод как от чипов, так и от самого контроллера, что позволяет добиться стабильной производительности даже под высокой нагрузкой.
Во-вторых, фирменная сервисная утилита SSD Dashboard, предлагающая все необходимые инструменты для мониторинга и обслуживания твердотельных накопителей, обзавелась важным переключателем Gaming Mode.
При его активации полностью отключаются энергосберегающие функции группы APST (Autonomous Power State Transition), которые, по большому счету, не нужны стационарному ПК, что позволяет минимизировать время задержки при первичном обращении к данным. Все это делает WD_BLACK SN750 идеальным выбором для высокопроизводительных игровых ПК, заточенных под современные AAA-тайтлы, позволяя добиться мгновенной загрузки и стабильного фреймрейта даже в очень плохо оптимизированных играх.
ragequit
Смешалось все: графон, производительность, RTX и так далее.
А теперь минутку внимания. Игры весят так много ради того, чтобы сократить количество случайных обращений к файлам во время игры относительно текущей позиции считывания с HDD/SSD по секторам.
Наиболее показательный пример: Marvel Spider-Man, эксклюзив PS4. Директор студии (или кто-то из их топов, не помню), объяснил вес игры очень просто, далее вольный пересказ цитаты:
«Человек-паук весит так много, потому что нам постоянно приходилось дублировать одни и те же файлы для того, чтобы снизить нагрузку на накопитель и обеспечить бесшовный игровой опыт без внезапных пролагов и загрузок посреди игры. Многие текстуры и прочие графические файлы продублированы в игре по 7-8 раз».
Стремление сделать игровой опыт бесшовным — вот основная причина таких размеров современных игр. А не графон и все остальное прочее. Если убрать дублирование из топовых тайтлов, они вполне себе похудеют до привычных 20-25 гигов, вот только локации будут сильно ограничены, лоад-скринов станет на порядки больше, да и загрузки эти будут не сильно быстрыми.
И не пахнет тут никакой «хреновой оптимизацией» и «игроки заплатят». Это просто ограничения HDD, потому что большинство не может себе позволить терабайтный SSD для «игор», да и не нужен он, при такой цене за гиг на классических блинах.
aleksandros
Сильно сомнительно. Мы ведь имеем кучу примеров из тех же 90-х, когда игры игрались комфортно, без особых задержек на подзагрузки. Как-то выходили из положения же… По сравнениею с теми временами скорости ЖД выросли в 20-30 раз, нет никаких проблем считывать файлы столько, сколько нужно.
shiru8bit
Дублирование данных для ускорения доступа к ресурсам стало широко применяться как раз в 90-х, на первых же CD-приставках. Оно повсеместно используется на 3DO, PS1, и прочем подобном железе.
beeruser
3D акселерация на PC появилась только в середине-конце 90-х.
Тогда поступали просто — грузили всё в видеопамять и никакого стриминга.
Стриминг появился уже потом, в 00-х.
А вот на PS1 он уже вовсю использовался в 90-х.
Где-то в параллельной вселенной, где уже вышла PS6.
Newbilius
Кстати, насчёт видеопамяти не скажу, но тот же первый Doom (1993 год) подгружает не все данные подряд сразу. Если запустить игру напрямую с CD — видно, как фризится игра при первых подгрузках недостающих звуков (первый раз стреляешь из дробовика и т.п.)
drWhy
В CryEngine, например, есть команда для предварительной загрузки всего уровня, весьма действенная.
Forthright
Так в том то и дело же. Скорости выросли всего лишь в 20-30 раз, а объёмы в тысячи. Так что проблемы как раз таки есть, и существенные.
tlv
Смотря как сравнивать. Характерный объём тайтла для PS1 — 700MB, скорость (привода той самой PS one) — 300 КБ/с.
На сегодня это 140ГБ (200х), и пусть 100 МБ/с (300х). По-моему, вполне сравнимо.
Telmah
В PlayStation 5 обещают SSD вместо обычного жесткого дика как в 4 версии и сильное «похудание» игр именно из исчезновения необходимости дублировать данный для оптимизации загрузки с hdd
V1tol
Только вот тут есть парадокс — если убрать «продублированные файлы» и похудеть игры до 20-25 гигов, то внезапно оказывается, что даже на WD Green на 240 гигабайт за три тысячи можно спокойно разместить операционку, пяток игр и ещё место останется. А поскольку любой SSD обладает низкой задержкой при доступе к данным — то и нет проблемы «пролагов» от того, что файл лежит не в том месте накопителя.
mChief
Разработчикам нужно ориентироваться на минимальную конфигурацию, а консоли текущего поколения выпускаются только с хдд. Так что разработчикам приходится продолжать дублировать ресурсы, а обладатели быстрых ссд продолжают страдать)
В новом поколении консолей ссд будет стандартом, и та же Сони, рассказывая о ПС5, делает на этом акцент, заявляя что у разработчиков больше не будет в этом необходимости и все новые игры «похудеют».
hello_my_name_is_dany
GTA V на PS3 весит около 9 гигабайт (на пк я буквально недавно скачивал 92 гигабайта). Мне кажется, на вряд ли, тут дело в дублировании для оптимизации, ведь на PS3 256 мегабайт оперативной памяти и столько же видеопамяти, а на ПК требует в минималка 4 и 1 соответственно. На PS3 одноядерный процессор, а на ПК требует 4 ядра, но тут скорее всего дело в архитектуре процессора.
Всё это я к тому, что и оптимизировать умеют и относительно небольшие размеры делать.
creker
У пс3 1 PPE и 7 SPE. Это никак не одно ядро.
vorphalack
версии некоторых игр для пс3/360 с версиями для компа и текущих консолей могут общего иметь только название и некоторую внешнюю похожесть, будучи реально написанными чуть ли не с нуля — просто потому что это настолько хорошо окупается.
maaGames
То, тчо вы сказали, является правдой, но только для игр, загружаемых с CD-дисков. Там это имело смысл, особенно для низкоскоростных болванок. А вот для HDD дисков это уже менее существенно. Для SSD вообще не имеет значения. Более того, для современных ПК такое дублирование наносит больше вреда, чем пользы, потому что диски используют кэширование и дублирующиеся данные вполне могут находиться в кэше, давая мгновенный доступ. Дублируя данные разработчик по факту отказывается от кэширования данных на диске.
atd
даже больше: кроме диска эти данные кэширует ещё и ОС
maaGames
Да, я именно про кэш в ОС имел в виду. Кэш дисков маленький всё-таки, а вот ОС кэширует, пока свободная память есть
Eugeny1987
в Wolfenstein: Tides of War на xbox в каждый файл уровня запакованы все необходимые файлы и дублируются
maaGames
У многих игр, в которых ресурсы упакованы/зашифрованы, все необхоимые для уровня данные упакованы в один файл. С одной стороны, из-за возможного дублирования растёт объём файлов. С другой стороны, это упрощает разработку и сборку дистрибутива. Отдельная группа работает над отдельным уровнем и работает с теми ттекстурами-моделями, котоыре им нужны, может их свободно редактровать и т.д. и т.п. Если бы все тексуры хранились в одном мега-паке или в открытую в папке лежали, то можно было бы дубликаты убрать, но это может несколько затруднить разрботку и взаимодействие левел-дизайнеров.
Скорее всего, сейчас дублирование ресурсов происходит не в целях оптимизации загрузки, а в целях оптимизации времени разработки.
Не говоря о том, что в архивах игры есть куча неиспользуемых ресурсов, которые дата-майнеры выковыривают после релиза (типа пистолета в Дум Этёрнал).
drWhy
Интересно, что мешает при упаковке дубля вставлять ссылку на уже упакованный экземпляр, чтобы не пухлить архив?
creker
А кто знает, что они дубли? Если уровни делаются и пакуются разными командами, то каждая из них работает со своей копией. Дубли можно было бы определять на этапе финальной сборки, написав какой-то дедупликатор, который бы эти айдишники и вставлял. С другой стороны, я подозреваю, что системы стриминга современные очень бы плохо это восприняли. Жесткому диску тоже не понравится, когда его отправят собирать по всему диску кусочки секции уровня, которую надо подгрузить за считанные миллисекунды, чтобы игру не пришлось ставить на жесткую паузу и подгружать синхронно.
drWhy
Так разработчики же и знают, а если нет — действительно перед релизом прогнать через дедупликатор, оптимизировать однажды 200 ГБ, сжать с параноидальными настройками, чтобы у клиентов летало.
А жёсткому диску разве не нагрузка лишние десятки гигабайт лопатить? Или сейчас, с дублями в отдельных паках, всё оптимизировано? Да и отыграли своё они, по крайней мере при нынешней плотности записи. SSD действительно предпочтительны, а у них со случайным доступом всё хорошо.
creker
Жесткому диску плевать сколько у него места занято. Ему совсем не плевать на последовательность секторов, которые от него требуют. Seek time то огромный. И вот если этот дедупликатор данные раскидает по всему диску в целях экономии, то система стриминга будет просто вешать намертво игру, потому что диск не успевает отдать данные вовремя. Поэтому намного лучше в каждый пак каждого уровня засунуть все ресурсы, которые нужны на этом уровне. И отдельно можно сделать один пак с общими ресурсами для всех уровней куда, например, моделька ГГ пойдет, звуки многие и т.д. и т.п.
Разрабы спайдермена на пс4 действительно рассказывали, что дублируют данные так, чтобы система стриминга всегда линейно читала данные. А это игра с открытым миром, где все поделено на зоны. И в каждой зоне, по сути, будут какие-то дупликаты.
drWhy
И я о том же, играть с жёсткого диска некомфортно именно из-за больших задержек при произвольном доступе. SSD предпочтительны.
creker
В современных играх этот некомфорт виден только при медленных загрузках. Далее системы стриминга отлично справляются на скоростях HDD. SSD как раз полезны, чтобы эти загрузки сократить, и то разве что в сингле. В мультиплеер тебя все равно скорее всего заставят ждать всех остальных, у кого может быть WD Green какой-нить.
Alexey2005
Разработчики игр уже не видят разницы между Dev-версией и релизной сборкой? А может, они сейчас и бинарники debug-сборки в релиз пускают, вместе со всей отладочной информацией и влинкованными исходниками?
maaGames
А примерно так и есть. Раз уж они в дистрибутив игры помимо защищённых файлов кладут и исходные не защищённые…
ivan2020
А не могли бы вы привести пример на комментарий к статье 2017 года? %)
Создал аккаунт на Хабре именно чтобы это узнать. Но оказалось, что оставлять комментарии под старыми статьями мне нельзя.
maaGames
Такие вопросы надо задавать вот тут, аккаунт у вас уже есть: qna.habr.com
Пример? Ctrl+C, Ctrl+V… (отвлёкся)… Ещё раз Ctrl+V, редактируешь новое условие, забыв про предыдущее. Обнаруживаешь статическим анализатором или при тестировании.
VADemon
У PUBG в самой обычной релизной сборке лежат .pdb файлы рядом с .exe. Внутрь не заглядывал, но если это в самом деле дебажные символы, то это 10/10 сразу же — игра, которая ""«боролась»"" с читерами.
olegchir
Совершенно не факт, что способ кэширования файлов операционной системой — самый правильный, и подходит под конкретную задачу. Например, если ты качаешь торренты, то у торрент-качалки сильно больше понимания семантики происходящих операций, чем у операционной системы. (Какая там семантика у стриминга в играх — я хз, поэтому правильный пример подобрать не смогу)
sumanai
Именно поэтому например Windows позволяет при открытии дескриптора файла указать приоритет кеширования и его режим, например при указании последовательного однократного чтения в кеше будет только текущий кусок файла. Главное этим пользоваться.
maaGames
Я бы даже сказал, что кэш винды частенько ухудшает производительность. Особенн префетчер, который загружает в память все файл из открытой папки и её подпапок. Часто с таким сталкивют, что он накэширует 32 гигабайта ненужных файлов, из которых я только один файл открывать собираюсь (например, из папки с резервными копиями). А потом пытается свопиться или просто тратит время на удаление из памяти ненужных данных, чтобы начать кэшировать следующие ненужные…
Но, если говорить конкретно про игры. Напрмиер, ресурсы без дубликатов весят 10 гигабайт, а с дубликатами они весят 50 гигабайт (цифры от балды, могу ошибаться на порядки в любую сторону). В первом случае весь пак ресурсов может остаться в кэше ОС, а во втором случае у подавляющег большинства пользователей он уже в кэше не останется и для загрузки следующего уровня снвоа придётся читать с диска.