Разработчики попытались объяснить главную проблему Cyberpunk 2077
Доходчивое пояснение для игроков, плохо разбирающихся в тонкостях разработки крупных и детализированных миров
Многие игроки не знакомы с тонкостями разработки больших, комплексных и открытых миров, а потому часто обвиняют разработчиков в некомпетентности и произрастании рук не из правильных мест. Однако на практике разработка игр — это сложный процесс, где важен не только опыт студии, но и возможности «железа», с которым ей приходится работать. Cyberpunk 2077 — яркий пример того, как амбиции CD Projekt уперлись в технологические ограничения систем уходящего поколения.
Глава CD Projekt Марчин Ивинский уже говорил, что «потоковая передача» стала главной проблемой для его команды, но не все тогда поняли, что он имеет в виду. С пояснением подоспел игровой разработчик Ярослав Кравцов, успевший поработать над Skyforge, Allods Online и Armored Warfare.
«Суть открытых миров в том, что они здоровенные и перемещение по ним без экранов загрузки. При этом нельзя весь игровой мир загрузить один раз в память - не влезет и время загрузки будет невозможно долгим. Поэтому используется технология стриминга (streaming)».
«Это когда загрузка игры идет постоянно. Игрок движется по миру и вокруг него постоянно загружаются новые объекты впереди и выгружаются объекты позади. Таким образом, имея ограничения по памяти, можно шататься по огромному детализированному миру».
«Есть только нюанс. У стриминга есть предельная скорость, с которой может происходить подгрузка так, чтобы игрок её не замечал (т.е. без фризов). Если игрок слишком быстро перемещается по миру, то стриминг может не успевать справляться с подгрузкой».
«В первую очередь, скорость стриминга зависит от харда. Консоли нового поколения как раз топят за то, что у них супер-быстрый стриминг. Новый Ratchet&Clank как раз демонстрирует как ловко может подгружать на лету целые миры».
«Опытные игроки знают, что надо ставить игры на SSD-диск или на плашку NVMe. Но это дороже, чем купить обычный HDD (жесткий диск) сразу на пару терабайт. Ведь игры сейчас большие, места всем много надо. И как итог - игры долго загружаются, а затем не справляются со стримингом».
«Вот и Cyberpunk 2077 на некоторых системах не справлялся со своевременной подгрузкой текстур, анимаций, объектов игровой логики и прочим. При этом, наверняка, система стриминга пипец какая сложная, чтобы определять что в каком приоритете грузить».
«Например, NPC, которые стоят как декорация-массовка и не участвуют в геймплее, имеют приоритет ниже и поэтому их чаще можно застать в Т-позе (не прогрузилась анимация). Это мое предположение, как там под капотом я не знаю».
Словам коллеги вторит и работающий в Blizzard Максим Самойленко.
«В иммерсив симах почти каждый предмет можно подобрать, положить в инвентарь, швырнуть, сжечь, и желательно, чтобы предметы отбрасывали динамические тени, влияющие на геймплей. Пойди попробуй «запеки» освещение или сделай эти предметы неинтерактивными – симуляция станет дубовой.
В иммерсив симе вы можете выложить предмет на пол, уйти на другой конец игры, вернуться, и предмет все ещё будет лежать там, где вы его оставили. Игра запоминает статус буквально каждой системы, каждого объекта. В обычных играх все это быстро выгружается из памяти».
«В этом суть иммерсив симов – это игры, в которых мир взаимодействует внутри своих элементов без участия игрока и очень далеко от него; в отличие от большинства других игр, где мир за спиной или за углом застывает или выгружается из памяти. Это кошмар с точки зрения оптимизации».