Те времена, когда видеоигры умещались на дискетах, давно прошли: сегодня средний размер проекта категории 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).
Как все это связано со скоростью накопителя? Напрямую. Чтобы процессор и видеочип могли работать с файлами игры, их сперва необходимо загрузить в оперативную память и 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 раза.
Столь высокая разница обусловлена ограничениями интерфейса: в отличие от параллельного 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-тайтлы, позволяя добиться мгновенной загрузки и стабильного фреймрейта даже в очень плохо оптимизированных играх.
Комментариев нет:
Отправить комментарий