1. Вступление
Во времена, когда среднестатистический компьютер представлял собой однокристальную одно-двуяхдерную конфигурацию производительность WoW Wotlk была нормой с консольными, а порой и ниже, 30 фпс в массовых сценах. На текущий момент, когда технологический прогресс в одноядерной и многоядерной произвожтельности шагнул значительно вперёд и у многих пользователей помимо современного железа появились еще и мониторы с высокой частотой развёртки, данная проблема становится более остро и всё чаще пользователи недоумевают "а почему моё актуальное, производительное, железо ничем не отличается для игры от того, на котором играл 15-16 лет назад?"
Ответом на этот вопрос служат 2 фактора:
- Сам код игры, написанный под актуальное на момент выхода железа (могли ли Вы тогда знать про райзены и интелы по 6-18 ядер и столько же потоков? Разработчики тоже.)
- Вторым моментом является используемое API игры, а именно DirectX 9. (Неожиданный вопрос - под какое железо написано API данной версии?)
Собственно из вышеперечисленного, что бы иметь больше фпс и ниже фреймтайм делаем 2 простых вывода:
- Нужно вмешаться в игровой код и переписать его под актуальное железо
- Нужно "прикрутить" современный API к старой игре
Как Вы уже поняли из названия темы - будем использовать костыли и заставим работать World Of Warcraft: The Wrath of The Lich King версии 3.3.5а на новом API через библиотеку dxvk.
2. Технические требования
- Игровой клиент версии 3.3.5а (предварительно должно работать и на предыдущих версиях игры)
- Графический видеоускоритель AMD либо NVIDIA, прддерживающий Vulkan API
- Наличие архиватора, блокнота\WordPad и немного времени
3. Необходимые файлы
- dxvk (Github)
- dxvk-asenc (Github) - рекомендую к установке именно эту версию.
- Файл конфигурации
4. Установка
- Скачиваем файл асинхронной версии (пункт 3.2, файл dxvk-async-2.0.tar.gz)
- Открываем скачанный файл и извлекаем содержимое папки х32 в корневой каталог Игры т.е. помещаем их рядом с фалом запуска игрового клиента (wow.exe)
- Скачиваем файл конфигурации по ссылке из пункта 3.3 и помещаем его в корневой каталог игры, где уже находятся извлечённые ранее библиотеки
5. Настройка
Открыв файл "dxvk.conf" вы увидите следующее:
Скрытый текст
Screenshot_1.png[свернуть]
Что нужно в нём сделать? - Поменять следующие параметры:
- d3d9.presentInterval = 0 Вертикальная синхронизация (0 - выкл, 1 - вкл)
- d3d9.maxAvailableMemory = 4096 (Обьём Вашей оперативной памяти в МБ, Например если у Вас 16Гб , вы должны указать 16384; формула - 16*1024, где 16 это обьём Вашей оперативной памяти)
- dxvk.numCompilerThreads = 4 (количество ядер и потоков суммарно, либо 0 для авто настройки)
- dxvk.numAsyncThreads = 4 (количество ядер и потоков суммарно, либо 0 для авто настройки)
- d3d9.samplerAnisotropy = 4 (Параметр сглаживания, возможные значение: 2 4 8 16. Чем выше значение тем лучше сглаживание, тем меньше "лесенок")
- d3d9.supportVCache = True (Значение False только для видеокарт Radeon)
6. Проверка
После установки в правом верхнем углу у Вас появится счётчик FPS, сигнализирующий о том, что игра запустилась на vulkan api с использованием библиотек dxvk.
wow.png
В дальнейшем, что бы этот счётчик не мазолил глаза - удалите параметр "dxvk.hud = fps" либо поставьте перед ним символ # из файла "dxvk.conf".
7. Как вернуть обратно?
Что бы вернуть всё как было "до" - не обязательно удалять весь клиень и качасть заново, достаточно удалить из папки игры следующие файлы:
- dxvk.conf
- d3d10core.dll
- d3d11.dll
- dxgi.dll
- d3d9.dll
8. Послесловие
Даная махинация поможет вам играть более комфортно, особенно в условиях замесов, когда просадка фпс напрямую влияет на отзывчивость на старом апи. Тут подобное практически незаметно.
Но это не поможет вам:
- нагрузить ваше железо на 100% (помним, что в игровой код мы не лезли и радикально ничего не меняли)
- стать главным нагибаторо сервера
Как и у всех костылей есть свои минусы, говорю о тех, с которыми стоклнулся лично, а именно:
- корявая миниатюра на панели задач
- изредка пролетают текстуры как не от мира сего (кто отдалял камеру в шторграде на максимум тот поймёт)
- при разворачивании игры с панели задач в полный экран (не окно), игра одной секундом пытается отрисовать миниатюру, а потом возвращается к реалиям
Лично для себя выделяю больше плюсов чем минусов, а потому пишу гайд и созраняю в закладки для личного пользования сейчас и в будущем.
А у вас заработало? Буду рад почитать ваши отзывы в теме!