Почему игры всё ещё так долго загружаются

Идет загрузка статьи, не выключайте браузер…

Данный материал является переводом текста Why Games Still Have Bad Loading Times

Румынский Князь, P4P

С каждым годом графика в играх становится все лучше, только за последние несколько месяцев в свет вышли такие графические шедевры, как Horizon: Zero Dawn, Breath of the Wild и Injustice 2. Но графика улучшается, а время загрузки в лучшем случае остается прежним. Иногда все настолько плохо, что проблема с долгой загрузкой решается только выпуском нового патча уже после релиза игры. Смогут ли мощный компьютер или новейшая игровая приставка решить проблему?

Программисты, с которыми я общался по этой теме, считают, что современное оборудование, отвечающее за хранение и загрузку информации, не развивается достаточно быстро, чтобы успеть за современными играми, в которых количество деталей в окружении растет с геометрической прогрессией. По словам Уильяма Армстронга, программиста, работавшего над BioShock 2 и Firewatch, современные процессоры на две головы опережают новейшие жесткие диски, которым не хватает скорости. Конструкция и возможности жестких дисков ограничены законами физики, поскольку процесс записи и чтения данных – это взаимодействие электронов и физических объектов. «Все эти процессы протекают медленнее, чем в электронных схемах. И нет ничего быстрее света».

Современные жесткие диски гораздо быстрее, чем их «предки», которые служили нам десятилетия назад, да и записать на них теперь можно гораздо больший объем информации. Но баланса между объемом памяти и скоростью записи нет. Роберт Дитрих, работавший в качестве программиста над играми Elite Beat Agents и Lips предложил рассмотреть проблему на примере размера текстур, которые отвечают за детализацию игровых объектов и окружения. Если разработчик делает среднестатистическую текстуру размером от 1024×1024 до 2048×2048, объем данных увеличится в четыре раза. Соответственно, текстурам размером 4096×4096 потребуется в 16 раз больше места.

Но, отмечает Роберт, если вы «проапгрейдитесь» с 5400 RMP (оборотов в минуту) дисков (пару лет назад такое значение RMP было стандартным для жестких дисков) до 7200 RMP, это даст лишь 33% прироста к скорости. «Переход на SSD-диски, конечно, даст высокую скорость чтения (и повысит общую стоимость оборудования), но проблема растущего объема игровых данных никуда не денется», – говорит Роберт.

По мнению Армстронга, дело не только в текстурах. «Игры становятся все масштабнее, и все те штуки, которые делают видеоигру видеоигрой, занимают все больше места на диске: поведение AI, динамика физических объектов, просчет каждого байта информации, сохранение и загрузка… И так до бесконечности. И чем больше данных – тем, естественно, больше требуется места на жестком диске».

Так что, учитывая существенный дисбаланс между объемом памяти и скоростью записи, это поистине чудо, что в современных играх мы все еще можем пройти дальше экрана загрузки. А все потому что разработчики создают технические методы уменьшения времени ожидания, ну, или, по крайней мере стараются как-то скрасить эти безрадостные минуты. Если верить Дитриху, загрузка игры не начинается в ту секунду, когда на нашем экране появляется «Загрузка…», на самом деле, это лишь окончание процесса, который начался задолго до того, как игрок со всего размаха впечатался в эту непреодолимую, раздражающую стену, которую разработчики стараются всеми возможными и невозможными способами избежать или сделать менее раздражающей.

Некоторые игры, например, начинают загрузку с самого запуска, «развлекая» нас при этом логотипами компаний, которые нельзя пропустить. Большинство игр загружают основную часть мира до того, как вы входите в игру, поэтому эти заставки такие медленные. Другие подгружают окружение непосредственно во время игры, третьи комбинируют эти два способа. Некоторые разработчики используют прием процедурной генерации мира: когда небольшое количество информации используется для создания чего-то большого и объемного в режиме реального времени, например, отрисовка высокодетализированных текстур. Кирпичная стена – это не файл .BMP, а математическая модель.

Но даже использование подобных уловок не помогает полностью избежать проблем. Например, один из самых надежных способов уменьшить время загрузки – записать определенные данные игры (только жизненно важные) в отдельный пакет, который затем можно будет загрузить. Разработчики прибегают к этому методу в тех случаях, когда они знают, в каком месте игрок будет в конкретный момент и примерно могут определить, что он будет делать дальше. Откровенно говоря, такими «точками» являются начало игры или уровней.

Но не всегда легко можно предугадать действия игрока, особенно в стремительно набирающих популярность играх с открытым миром. «Чем непредсказуемее поведение игрока, тем меньше шансов понять, какие данные ему понадобятся в следующий раз. Из-за этого вы видите экраны загрузки при быстром переходе из локации в локацию в играх с открытым миром и спокойно путешествуете без подгрузочных экранов, если решили добираться своим ходом», – говорит Дитрих.

Нередко разработчики сами не до конца знакомы со своей игрой и не могут изящно решить проблему с подгрузками вплоть до срока релиза. Геймдев – это бесконечная суета и дедлайны. Приходится искать компромиссы. Новые данные могут увеличить время загрузки или спровоцировать появление багов. Многое также зависит от движка игры: на одном движке лучше использовать один метод, на другом – другой. Многие движки были созданы до того, как разработчики вообще разработали замысел игры. Иногда разработчикам приходится действовать наугад, и не всегда они попадают «в яблочко».

Чтобы избежать серьезных ошибок, разработчики предпочитают не особо демонстрировать игру до «нарезки» на составляющие, в том числе, на загрузочные экраны. Беда в том, что как правило это происходит в самый последний момент. Разработчикам остается лишь сообщить об имеющихся проблемах до сертификации, а затем выпустить игру. И, честно говоря, загрузочные экраны – наименьшая из проблем.

«На финишной прямой вы просто собираете все проблемы в кучу и классифицируете их по степени важности, исходя из возможных затрат и ожидаемой выгоды от их исправления», – разводит руками ЛеБрентон, дизайнер игр BioShock и Spacebase DF-9. «Во главе списка всегда ставится стабильность – чтобы игра не вылетала, были доступны все игровые элементы, и, конечно, чтобы ее можно было пройти».

«Готов поспорить, что важнее для игроков. В игру с проблемами не технического характера играть можно. В игру, которая не запускается или вылетает – нет, это, скажем так, подделка», – говорит ЛеБрентон.

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

«Когда мы отдаем игру на растерзание, мы словно приоткрываем окно, и нас заваливают отчетами о слишком долгих загрузках», – говорит гейм-директор Рэнд Миллер о своей игре Obduction, выпущенной в 2016 году. По его словам, эти проблемы возникли из-за недостаточного ресурса жестких дисков, но в некоторых ситуациях были виноваты разработчики, которые упустили этот момент на стадии проверок. «В самом начале игры мы оставили слишком большой кусок для загрузки. Нам пришлось разделить его на зоны и работали с каждым куском отдельно», – добавил Миллер.

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

«Мы обнаружили, что вместе с игровым миром также прогружаются игровые ролики, что значительно увеличило время загрузки, но, чтобы справиться с проблемой, нам потребовалось также исправить один из способов взаимодействия персонажа с внутриигровым миром», – поделился Миллер. Дизайнеры обнаружили, что могут уменьшить размер некоторых текстур, но работать с каждой в отдельности – задача не из легких, здесь требуется ювелирная работа.

Я также взял интервью у разработчиков стелса в открытом мире Ghost of a Tale и фэнтези-RPG The Dwarves, которые также были вынуждены исправлять проблему долгой загрузки уже после релиза, они разделяют мнение своих коллег. Чтобы уменьшить время загрузки, разработчики должны изучить свою игру вдоль и поперек. И даже тогда требуется время и хирургическая точность, чтобы решить проблему. В частности, команда разработчиков The Dwarves проверяет длительность загрузки во время всего процесса создания игры.

Креативный директор The Dwarves, к которой все же выпустили несколько патчей, исправляющих слишком долгую загрузку, уже после релиза игры, рассказал, что теперь студия старается находить подобные ошибки на стадии разработки. «Если вы занимаетесь созданием улучшенных пакетов данных, оптимизируете требования к памяти и стараетесь уменьшить объем данных во время разработки игры, вы встали на трудный путь. Для наших будущих проектов мы представили новую организацию рабочего процесса, которая побуждает разработчиков работать над загрузкой c самого начала», – говорит Ян Тейзен.

Но разработчики могут сделать не так уж много до релиза. До тех пор, пока существует зависимость между скоростью загрузки данных и скоростью вращения жесткого диска, разработчики по-прежнему будут (если вообще будут) вносить исправления после релиза. По словам Уильяма Армстронга: «Время загрузки увеличивается, если есть баги в онлайн-режиме или в квестах. Или если вы проходите игру нестандартным образом или слишком быстро. Подобные вещи обнаруживаются только после того, как игра будет полностью закончена. А игры часто доделывают в самую последнюю минуту».

Опубликовал | 29/05/2017|Categories: Игры|Tags: |0 комментариев