Ihads.ru

Все про недвижимость
28 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Геймхак: разбираемся в XCOM 2: War of the Chosen

Геймхак: разбираемся в XCOM 2: War of the Chosen

прохождение war of the chosen руководство

Многие называют новое дополнение для XCOM 2 под названием War of the Chosen не иначе, как XCOM 3. Чего же здесь такого наворотили ребята из Firaxis?

Самых заметных нововведений пять: Избранные, Странники, союзные фракции, система взаимосвязей между солдатами и их утомляемость от частых вылетов на задания.

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

После запуска, игра «не пошла»

Для начала стоит попробовать запустить игру от администратора, зайдя в корневую папку. Обычно она находится в Program Files. Не лишним будет проверить целостность кэша в Steam. Если каких-то файлов не хватает, их можно загрузить в эту папку отдельно.

Иногда причина кроется в отсутствии DLL-файла. В этом случае воспользуйтесь программой DLL-Fixerи ее аналогами для совершения автоматической установки.

Внимание! Все скачанные из интернета файлы следует сканировать на вирусы!

Апдейт здорового человека

Дополнение не просто придаёт XCOM 2 насыщенности. Оно делает и без того непростую стратегию ещё сложнее, заодно повторяя знакомый поклонникам Firaxis трюк. Вроде бы оригинал и прекрасен сам по себе, а о проведённом за ним времени нисколько не жалеешь, но поди ж ты. Установив дополнение, возвращаться обратно ни за что не захочешь. Что и требовалось доказать: «ванильные» версии игр компании становятся шедеврами только после выхода крупных DLC. При этом будьте любезны оплатить и то, и другое.

War of the Chosen — едва ли не лучшее, что могло случиться с XCOM 2. Кроме уймы нового контента, здесь доработана оптимизация — война с пришельцами перестала местами смахивать на слайд-шоу. И пускай дополнение стоит как отдельная игра, его по достоинству оценят как ярые фанаты жанра, так и те, кто приобрёл его из любопытства. Единственный момент, до сих пор вызывающий отторжение — низкий шанс попадания при выстрелах в упор. Или промахи при вероятности поразить цель в 100%. Ну сколько можно, Firaxis? Это уже даже не смешно.

Проблемы с производительностью в игре XCOM 2

Привет! Меня зовут Александр, я руководитель программистов компьютерной графики в Gaijin в проектах CRSED и Enlisted. Иногда, в свободное время, я исследую как устроена графика в других играх и нахожу там что-то интересное.

Недавно я решил разобраться, почему XCOM 2 тормозит на моём ноутбуке. В ходе изучения рендера этой игры я нашёл ряд мест, которые можно было бы без проблем ускорить. Результаты моего небольшого исследования вылились в видео:

Ниже представлена расшифровка этого видео.

Вероятно, вы играли в игру XCOM 2 или хотя бы слышали о ней. Она вышла в 2016 году. Сделана на движке Unreal Engine 3.5. Если оценивать XCOM как игру в целом, мне она понравилась. Увлекательный геймплей, приятная картинка, интересная история.

Читайте так же:
Накрутка счетчика рейтинга сайта

Единственная проблема, с которой я столкнулся, — это низкий FPS, в особенности на кадрах с выстрелами крупным планом. На базе и в тактическом виде эта проблема менее заметна. Средний FPS у меня был в районе 25-30. И мне стало интересно, выжимает ли игра все доступные мощности из моей ноутбучной GTX 1050 или можно сделать лучше. Сейчас я покажу вам 6 оптимизаций, которые могли помочь разработчикам улучшить производительность данной игры.

Захват кадров

Для анализа графики я использовал RenderDoc версии 1.12. Он без проблем захватил несколько кадров, которые я потом просмотрел. Я взял один кадр из меню, кадр базы, кадр на тактической карте и кадр с выстрелом.

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

«Жирный» G-buffer

Первая оптимизация связана с уменьшением размера G-buffer’а. Самый долгий проход — это заполнение G-buffer’а (>16 мс). Это видно как на таймингах различных проходов, так и на общем таймлайне.

Всего в G-buffer входит 5 текстур в формате RGBA16F, то есть текстуры имеют 4 16-битных канала и содержат вещественные числа.

Для разрешения 1080 требуется около 80 Мбайт видеопамяти для всего этого, что не так уж и много для современных видеокарт, но проблема в том, что все эти текстуры нужно заполнить. Запись в текстуру намного дороже чем чтение, поэтому много используемых текстур — это норма, а много рендертаргетов — уже не очень хорошо.

Итак, G-buffer содержит следующие текстуры:

Цвета эмиссивных (т.е. светящихся) материалов (причём альфа-канал этой текстуры пустой).

Альбедо или просто цвет без учета освещения (альфа-канал содержит Ambient Occlusion).

Нормали (в альфа-канале хранится номер одного из 4 материалов)

Параметры материалов (цвет металла + roughness).

Дополнительные нормали для анизотропных материалов (транслюсентность в альфа-канале — это параметр, показывающий насколько поверхность пропускает свет сквозь себя)

У текстуры эмиссива можно было бы удалить четвертый канал. И тем самым вместо 16 Мб потребуется 12 Мб.

Текстуру альбедо вполне можно было бы хранить как 4 8-битных канала с нормализованными вещественными числами (то есть числами от 0 до 1). Это уменьшило бы эту текстуру в 2 раза. До 8 Мб.

Нормали хранятся в сыром виде. Можно упаковывать их при записи, тем самым снижая количество данных, и распаковывать при чтении [Подробнее можно прочитать тут]. Это, конечно, требует больше времени на выполнение кода, но существенно снижает количество требуемых данных.

Читайте так же:
Phpbb куда вставить счетчик

Материал принимает всего 4 различных значения, значит, отлично пакуется в 2 бита. Предположим, что эти два бита мы положили к параметрам материалов. Тогда для нормалей остаются 2 канала по 16 бит каждый. Всего 8 Мб для моего разрешения экрана.

Параметры материалов оставим без изменения, за исключением кодирования номера материала в эту же текстуру.

Последняя текстура — параметры для транслюсентных материалов. Первые 3 компоненты — это единичные векторы, значит, их тоже можно закодировать в 2 вещественных числа. Остаётся 3 канала. Причём транслюсентные материалы не эмиссивные. По крайней мере, в захваченных кадрах я такого не видел. Значит, можно объединить эту текстуру с текстурой эмиссива, и на неё мы теперь тратим 0 Мб.

Итого, нам нужно 12 Мб для эмиссива и транслюсентности, 8 Мб для диффуза, 8 Мб для нормалей и 16 для параметров материалов. Всего 44 Мб. Почти в два раза меньше памяти. Думаю, это сильно бы ускорило проход для заполнения G-buffer.

Отсутствие объектов в предварительном проходе

Другая оптимизация, которая могла бы уменьшить количество записываемых данных в G-buffer, — это более агрессивное использование предварительного прохода (prepass). Prepass — это предварительная отрисовка сцены в буфер глубины. Выполняется она с целью уменьшить количество перезаписей пикселей G-buffer’а за счёт отбрасывания пикселей, не прошедших тест глубины. Текущий предварительный проход оптимизирует отрисовку, но можно добиться и лучших результатов.

При записи G-buffer’а некоторые пиксели перерисовываются до 24 раз.

Судя по вызовам драйвера, между prepass’ом и G-buffer пассом нет никаких копирований текстуры глубины или чтений этой текстуры на CPU. Значит, теоретически, всю геометрию, которая рисуется в G-buffer, можно было нарисовать в prepass’е. Таким образом, можно было бы сделать ещё быстрее. И учитывая, что это самый долгий проход во всём кадре, оптимизация не была бы лишней.

Не используется инстанцирование

Оставим пиксельные оптимизации и обратимся к геометрии. Как вы могли заметить (обратите внимание на вызовы DrawIndexed на предыдущем скриншоте), объекты рисуются строго по одному. Это связано с тем, что для отрисовки используется вызов DrawIndexed вместо DrawIndexedInstanced, который позволяет рисовать несколько одинаковых объектов за раз.

А одинаковых объектов тут много. Не вдаваясь в подробности выполнения отдельных вызовов отрисовки и того, в каком порядке и как видеокарта их выполняет, хочу отметить, что при использовании инстанцирования потребовалось бы намного меньше вызовов функций DirectX, а значит меньше команд отправлялось бы на видеокарту. Уже это могло бы дать прирост FPS.

Level of Details

И последняя оптимизация связанная с рисованием сцены — это система level of details. Нет смысла рисовать детализированную геометрию, если она вдалеке и занимает пару десятков пикселей.

Читайте так же:
Счетчик турбинный миг 100

Во-первых, субпиксельные треугольники замедляют рендер. Подробнее можете прочитать в данной статье. Во-вторых, в этом нет практического смысла. Например, из почти тысячи треугольников этого объекта мы увидим разве что пару десятков.

Использование менее детальной геометрии могло бы заметно уменьшить количество рисуемых треугольников. Естественно, это ускорило бы рендер.

Полноэкранный SSAO (Screen Space Ambient Occlusion)

Второй по длительности проход после заполнения G-buffer’а — это подготовка текстуры SSAO. Она занимает от 8 до 10 мс. И проблема этого прохода в том, что он полноэкранный.

Как я рассказывал на стриме по GTAO, подобные эффекты лучше делать в половинном разрешении экрана. У профессионалов из Activision Blizzard получилось уместить отрисовку AO в половину миллисекунды. Они замеряли на PlayStation 4, а я на ноутбуке и сравнивать время таким образом не до конца корректно. Тем не менее отмечу, что у моей видеокарты в 2.5 раза меньше GFLOPS, а вычисление AO в игре медленнее в 20 раз чем в статье от Blizzard. В общем, думаю можно сделать вывод, что полноэкранный проход для AO может быть значительно ускорен.

Depth of Field

И последнее очевидное узкое место — это depth of field. В XCOM реализован очень интересный подход к этому эффекту. Рисуются 3 миллиона треугольников. Каждый из них соответствует пикселю текстуры в половинном разрешении экрана.

В зависимости от глубины, соответствующей пикселю, выбирается позиция треугольника. И треугольник рисуется в левую или правую часть итоговой текстуры. Таким образом, исходная картинка делится на две на основании глубины.

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

Чтобы ускорить данный алгоритм, можно использовать компьют шейдер. Тогда для каждого текселя шейдер будет выполнен один раз.

Don’t sneak into a crossfire

Concealment is a powerful new stealth ability for your squad in XCOM 2, but it can be a double edged sword. You’ll often be tempted to sneak past patrols entirely, avoiding them while accomplishing your objective. In your head, this seems like a natural thing to do when given a stealth mechanic.

Don’t do this. Or if you do, be very aware that those enemies will come back to bite you. By sneaking past patrols, you make it likely that they’ll catch up with you later, rolling up behind you at a critical moment. Imagine being stuck in a hard fight in XCOM, then imagine another patrol of angry aliens showing up directly behind you. It’s not a good thing.

Читайте так же:
Счетчики для учета рабочего времени

There are times when sneaking past enemies can be very clever—on missions where you need to grab an objective and then extract, or you need to beat a tough time limit before worrying about difficult firefights. However, in most missions where killing all enemies is an objective anyway, it’s often faster and safer to kill every alien you meet ASAP, using stealth to set up powerful ambushes rather than attempting to Solid Snake the operation.

Попробуйте эти исправления:

Есть 5 исправлений, которые помогли многим геймерам решить проблему сбоев. Необязательно пробовать их все; просто продвигайтесь вниз по списку, пока не найдете тот, который вам подходит.

  1. Отключите антивирусное программное обеспечение
  2. Проверьте кеш игры
  3. Измените расположение файлов для сохранения
  4. Отключить Steam Overlay
  5. Обновите ваш драйвер

Исправление 1. Отключите антивирусное программное обеспечение.

Некоторое антивирусное программное обеспечение (например, Bitdefender) может блокировать некоторые функции в Minecraft, поэтому вы можете столкнуться с проблемой «Невозможно подключиться к миру». Если на вашем компьютере установлено антивирусное программное обеспечение, вы можете временно отключить его и проверить, решена ли проблема.

ВАЖНЫЙ : Будьте особенно осторожны с тем, какие сайты вы посещаете, какие электронные письма открываете и какие файлы загружаете, когда ваш антивирус отключен.

Если это решит вашу проблему, вам может потребоваться заменить антивирусное программное обеспечение или обратиться за советом к поставщику программного обеспечения.

Исправление 2: проверьте кеш игры

Если ваша игра вылетает при запуске XCOM 2, возможно, установка XCOM 2 повреждена. Затем вы можете использовать это исправление для повторной загрузки файлов и устранения сбоев.

  1. Запустите Steam.
  2. в БИБЛИОТЕКА щелкните правой кнопкой мыши XCOM 2.
  3. Под ЛОКАЛЬНЫЕ ФАЙЛЫ вкладку, щелкните Проверьте целостность кэша .
  4. После процесса перезапустите игру и проверьте, появится вылет или нет.

Исправление 3. Измените расположение файлов сохранения.

Если Fix 2 не может решить вашу проблему, возможно, виноват сохраненный файл. При удалении файла сохранения с измененным содержимым может произойти сбой. Вы можете перенести файлы сохранения в другое место для безопасного хранения.

Файлы сохранения должны находиться по адресу: «C: Users ВАШЕ ИМЯ ПОЛЬЗОВАТЕЛЯ Documents my games XCOM2 XComGame SaveData». Скопируйте файлы и переместите в другое место, а затем удалите исходную папку SaveData.

Исправление 4: отключить наложение Steam

Оверлей Steam — это часть пользовательского интерфейса Steam, которая может позволить пользователям получить доступ к списку друзей, веб-браузеру и приобретению DLC в игре. Эта функция очень полезна, но иногда она может стать причиной сбоя игры. Вы можете отключить его и проверить, может ли он решить сбои.

  1. Запустите Steam.
  2. Щелкните правой кнопкой мыши XCOM 2 и выберите Свойства .
  3. в ГЕНЕРАЛЬНЫЙ вкладку, снимите флажок ‘ Включите оверлей Steam во время игры ‘.
  4. Перезапустите игру и проверьте, появится вылет или нет.
Читайте так же:
Счетчик расхода пара метран

Исправление 5: Обновите драйвер

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

Есть два способа обновить драйверы: вручную и автоматически .

Обновите драйверы вручную — Вы можете обновить драйверы вручную, перейдя на сайт производителя и выполнив поиск последней версии драйвера для каждого устройства на вашем ПК. Обязательно выберите драйвер совместимый с вашей моделью ПК и ваша версия Windows .

Или же

Обновите драйверы автоматически — Если у вас нет времени, терпения или навыков работы с компьютером для обновления драйверов вручную, вы можете сделать это автоматически с помощью Водитель Easy .

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

Вы можете обновлять драйверы автоматически с помощью БЕСПЛАТНОЙ или Pro версия Driver Easy. Но с Pro версия это займет всего 2 клика (и вы получите полную поддержку и 30-дневную гарантию возврата денег):

ЗАМЕТКА: Driver Easy справится со всем . Все драйверы в Driver Easy прийти прямо из производитель . Они все сертифицировано безопасно и надежно .

  1. Скачать и установите Driver Easy.
  2. Запустите Driver Easy и нажмите Сканировать сейчас . Затем Driver Easy просканирует ваш компьютер и обнаружит проблемы с драйверами.
  3. Щелкните значок Обновить рядом с драйвером, чтобы автоматически загрузить и установить правильную версию этого драйвера (вы можете сделать это с помощью бесплатной версии). Или нажмите Обновить все для автоматической загрузки и установки правильной версии все драйверы, которые отсутствуют или устарели в вашей системе (для этого требуется Pro версия — вам будет предложено выполнить обновление, когда вы нажмете «Обновить все»).
  4. Перезапустите игру и проверьте, появится вылет или нет.

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

Трейнер +8

F1 — активировать трейнер
F2 — отключить античит
F3 — супер жизни
F4 — супер мобильность
F5 — супер точность
F6 — супер воля
F7 — супер броня
F8 — супер хак
F9 — супер аккумулятор
F10 — сброс ресурсов

  1. Распакуйте все файлы из архива в каталог с игрой.
  2. Запустите трейнер.
  3. Запустите игру, не закрывая трейнер. Функции трейнера активируются клавишами, перечисленными выше.

XCOM 2 (2015) Трейнер +23

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector