Каждое игровое устройство — консоль или конкретная конфигурация компьютера предоставляет так называемый «бюджет»: максимальное количество каждого конкретного типа контента, с которым он может работать, сохраняя при этом разрешение и частоту для комфортной игры. В этот бюджет входят память для двухмерных текстур (например, стены), память для сложных трёхмерных текстур, для звука, анимации и так далее.
Часто при создании игры разработчики не сильно переживают по поводу бюджета — они создают игру на основе тех ресурсов, которые доступны на их вычислительных машинах. Проблема в том, что их компьютеры намного мощнее компьютера или консоли среднестатистического геймера. Поэтому после создания игры разработчики смотрят насколько превысили лимит и начинают её оптимизировать.
Как оптимизируют игры?
Фото: nerdbot.com
Всё начинается с графической оптимизации игры. К примеру, в финальной версии некоторые текстуры видны только с большого расстояния. Их размер — 512×512 пикселей, хотя занимают они только 100×100 пикселей экрана. Разработчики уменьшают их до нужного количества, что помогает увеличить производительность без потери качества игры.
Также выполняется оптимизация полигонов (совокупность вершин, граней и рёбер, определяющих форму многогранного объекта): некоторые трёхмерные полигоны можно сделать двухмерными, не испортив их внешний вид. Чем меньше на карте 3D-полигонов, тем игра становится менее требовательной для «железа» компьютера или консоли.
Обрезаются многие ресурсозатратные функции: например, тени, которые видны на расстоянии больше сотни метров или детали крупного здания вдалеке.
Но оптимизация игры — это не только работа с графикой. Плохо оптимизированной игрой может быть и та, у которой проблемы с сетевым кодом — когда в онлайн-играх большой промежуток между отправкой запроса и получением ответа. Вы стреляете точно в противника, но не попадаете: противник уже ушел из-под прицела, но игра еще не успела об этом сообщить.
Так же важна работа с кодом игры: чем он проще, тем легче компьютеру и консоли его обработать.
Хитрости разработчиков
Для того, чтобы оптимизировать игру или сделать её более привлекательной у разработчиков есть целый арсенал хитростей.
Чем больше в игре разных моделей, тем сложнее прогружать текстуры и рендерить их. Поэтому разработчики копируют текстуры — это один из самых простых способов оптимизации. Лес или крупный город часто состоят из пяти-десяти повторяющихся моделей. К примеру, в первой части Call of Duty использовалось всего пара видов зданий, но расставлены они были настолько удачно, что никто не обращал на это внимания.
Разработчики шутера Rage не стали заморачиваться с большим количеством моделей и использовали мегатекстуру. Мегатекстура — огромное полотно, которое полностью покрывает ландшафт или объект. Его условный размер 150000×150000 пикселей. Чтобы оперативная память компьютера смогла обработать такой объём данных, картинка автоматически теряла детализацию на большом расстоянии от игрока.
В крупных играх с открытым миром игроделы заставляют объекты появляться перед вами и исчезать, пока вы их не видите. К примеру, города, машин и людей в GTA V вне поля зрения игрока не существует.
Фото: appdevelopmentcompanies.co
Избавиться от загрузочного экрана не так просто: пока бежит полоса загрузки обновляются игровые ресурсы в оперативной памяти компьютера или консоли. Но современные разработчики придумывают разные способы замаскировать его.
Чтобы обновить ресурсы и не заставлять игрока смотреть на долгий Loading…, вводят «загрузочные коридоры». Часто новая глава игры начинается с долгой загрузки: в это время полностью обновляются локации и текстуры. Затем внутри главы происходят подгрузки частей уровня — их скрывают сюжетными роликами (как в Uncharted) или общением между персонажами и головоломками (как в The Last of Us).
В последнем God of War нет ни одного загрузочного экрана. Кратос (главный герой) проходит по долгому открытому коридору, разговаривая со своим спутником.
Некоторые хитрости оптимизации стали важной частью игры и её лора. Для полного отображения открытого мира Silent Hill требовались ресурсы, которых не было у Playstation. Чтобы оптимизировать игру под консоль, разработчики ввели тот самый туман. Он полностью покрывал город и добавлял гнетущей атмосферы. Но главное: он скрывал части локации, которые не прогружались. Впоследствии туман стал главным атрибутом серии — даже когда в нём уже не было необходимости.