oblivion: оптимизация памяти & производительность





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

Если вы хотите попробовать этот гайд и у вас уже есть сгенерированный\протвиканый Oblivion.ini и сейвы (.ess файлы), пожалуйста сделайте бекап.



  1. Oblivion.ini

Я ничего не буду писать касательно настроек Oblivion.ini поскольку все твики которые были мной опробованы не влияют на производительность, имеют плохие побочные эффекты или не имеют эффект вовсе. Поскольку я могу говорить лишь о том, как всё это работает на более-менее современном ПК, эффективность многих изменений я просто не могу проверить на более старых ПК, где некоторые настройки .ini возможно были полезны.

Так что в случае современных ПК я не рекомендую .ini трогать вообще.

Совет: сгенерируйте заново Oblivion.ini на самых высоких (которые вам позволяет ваша конфигурация) настройках графики. Отключите верт. синхронизацию. Не используйте программы типа BethINI или GBRs Tweaker. Не трогайте Oblivion.ini, если нет нужды.

--------------------------------

  1. Скачайте OBSE: http://obse.silverlock.org/download/obse_0021.zip

Распакуйте архив. Скопируйте содержимое "obse_0021" в папку "Oblivion" (где лежит Oblivion.exe). Если у вас Steam версия игры, то по пути Steam\steamapps\common\Oblivion.


  1. Скачайте 4Gb Ram Patcher: https://www.nexusmods.com/oblivion/mods/45576?

В папке "Oblivion Ram Opimization" вы найдёте 4gb patch.exe. Это простенькая программа, которая должна позволить Oblivion использовать до 4Gb ОЗУ, как любому другому 32-битному приложению. Она автоматически создаёт .BACKUP файл, так что вы можете восстановить оригинальный .exe путём переименования .BACKUP файлов обратно в .exe. Убедитесь что напротив "Расширение имён файлов" стоит галочка в Проводнике.


Запустите программу и найдите Oblivion\Oblivion.exe файл:


Нажмите "Открыть".







Нажмите "Another File" и повторите то же самое с файлом Oblivion\obse_loader.exe. Готово.​


  1. Alternative - CFF Explorer: http://www.ntcore.com/exsuite.php

Можете сделать вручную то же самое, что делает 4Gb Ram Patcher:









Скачайте Oblivion Stutter Remover версии 4-1-37 и "ComponentDLLs" из секции "Optional files":

https://www.nexusmods.com/oblivion/mods/23208/


Внутри архива найдёте папки "Data" и "src". Эти папки нужно скопировать в папку "Oblivion" (где лежит Oblivion.exe). Если у вас Steam версия игры, то по пути Steam\steamapps\common\Oblivion.


Откройте папку Oblivion\Data\OBSE\Plugins. Если Steam версия игры, путь будет Steam\steamapps\common\Oblivion\Data\OBSE\Plugins.

Там вы найдёте файл "sr_Oblivion_Stutter_Remover.ini". Не трогайте его пока что. Создайте новую папку и назовите её "ComponentDLLs". Должно выглядеть так:





Откройте архив "ComponentDLLs-23208-1.zip". Внутри вы найдёте следующие файлы:


BorlndMM.dll ;

debugMM.dll ;

libtcmalloc_minimal.dll ;

tbbmalloc.dll ;


Как вы могли догадаться, вам нужно переместить эти файлы в новосозданную папку Oblivion\Data\OBSE\Plugins\ComponentDLLs. Должно выглядеть так:​





Теперь можете настроить sr_Oblivion_Stutter_Remover.ini:


bManageFPS = 1 ; включает (1) и выключает (0) контроль FPS.


fMaximumFPS = 80 ; Ограничение по FPS +- 5 FPS. Значение "0" убирает ограничение. Например, если выставить значение "60", Вы поставите ограничение на 60 FPS +- пара лишних кадров. Не рекомендуется выставлять значение выше "85", так как очень небольшое количество ПК будут постоянно поддерживать FPS близкий либо выше "85". Также не следует выставлять значение ниже "30", так как это - максимальный показатель и в таком случае средний показатель будет где-то 20-25 FPS. Так работает OSR, ничего не поделаешь. Не стоит забывать, что при установке тяжелых скриптовых\графических модификаций ваш средний показатель FPS также упадёт, и в таком случае занижение максимальной планки сильно ухудшит производительность.


fMinimumFPS = 15 ; Это минимальный показатель FPS, ниже которого OSR не даст просесть вашей производительности. Очень грубо говоря, значение "15" означает, что если ваш FPS упал до 15 и ниже, OSR начнёт замедлять игру. Таким образом ваш игровой FPS может быть даже 1, но игра всё равно будет идти максимально плавно и без лагов насколько это возможно, но скорость игрового процесса будет 10% от нормальной скорости. При возвращении FPS в норму, скорость также вернется на круги своя.


Попробуйте запустить игру и посмотреть на ваш низкий, средний и максимальный значения FPS. Совет: замерять FPS быстрее всего в Лейавине, на площади (низкие значения FPS) и на выходе из Канализации Имперской Тюрьмы (средние и высокие значения FPS). Это не самый точный метод, зато все точки доступны для телепорта на карте со старта игры. Настройте значения в соответствии с вашим FPS: чем меньше лагов, тем лучше.


Наверху можете найти ссылки на мои .ini.​





  1. Установите ENBoost: http://enbdev.com/patch_oblivion_enboost_v0259.htm

Распакуйте архив, внутри Вы увидите файлы:





Эти файлы нужно перенести в папку Oblivion (где лежит Oblivion.exe). Если у Вас Steam версия игры, игра будет находиться по пути Steam\steamapps\common\Oblivion. Установка завершена, но нужно настроить файл enblocal.ini:


Первым делом нужно определить значение VideoMemorySizeMb= .


Для этого скачайте VRamSizeTest:

http://enbdev.com/download_vramsizetest.htm


Внутри архива вы найдёте файл VRamSizeDX9.exe. Oblivion это игра DirectX9 game, так что скопируйте VRamSizeDX9.exe в папку "Oblivion" и запустите .exe.


Запомните полученное из VRamSizeDX9.exe число и отнимите от него:

170 - если у вас Windows 7,

350 - если у вас Windows 10,

и не отнимайте ничего если у вас Windows 8\8.1.


Полученное значение и есть нужное для VideoMemorySizeMb. Пример:

Вы используете Windows 7 и VRamSizeDX9.exe даёт вам 7872.

7872 - 170 = 7702 (MB) и именно это значение вы вставляете в enblocal.ini.


[MEMORY]

VideoMemorySizeMb=7702 ; замените на:

[MEMORY]

VideoMemorySizeMb=вашезначение ;


далее, вам нужно настроить ReservedMemorySizeMb. Чтобы настроить это значение, держите в голове два показателя: количество видеопамяти и "заикания" в игре. Например, у вас 1GB видеопамяти. Начните со значения 128:


[MEMORY] VideoMemorySizeMb=128 ; увеличивайте это значение (128, 256, 512, 1024), пока "заикания" полностью не пропадут или не станут незаметными при самом маленьком возможном значении VideoMemorySizeMb. Самое большое значение 1024.


Поясняю: чем меньше значение, тем лучше, но "заиканий" быть (почти) не должно. Высокие значения VideoMemorySizeMb приводят к вылетам.


Если Вы хотите использовать ENB, придется использовать d3d9.dll от ENB как дополнительную библиотеку. Просто переименуйте ENB-файл d3d9.dll в other_d3d9.dll. Далее, в enblocal.ini выставьте следующие значения:


EnableProxyLibrary=true ;

InitProxyFunctions=true ;

Всё.


Если вам не хочется это настраивать, можете попробовать мой готовый ENBoost+ENB+FXAA Injector пресет:







  1. (опционально) скачать Streamline: https://sharemods.com/49dr4u3puw9r/STREAMLINE_3.1_patched.7z.html
  2. nexus original: https://www.nexusmods.com/oblivion/mods/10400?

Streamline динамически меняет прорисовку графики в зависимости от вашего FPS. В нём очень много настроек. Хочу заметить, что он частично совместим с Oblivion Reloaded, но от функции [FrameRate] придётся отказаться в пользу Streamline. Для меня, например, это оказался наилучший вариант, т.к. Oblivion Reloaded не возвращал прорисовку и работал с запозданием.


Как установить Streamline? В скачанном архиве Вы увидите папку Streamline и файл .esp:





Папку и .esp нужно переместить в Oblivion\Data. Или, если Вы используете Steam версию игры, в папку Steam\steamapps\common\Oblivion\Data. Streamline был создан до того, как появился OBSE, поэтому использует свою папку для файлов настроек. Эта папка обязательно должна находиться внутри Oblivion\Data.


Для того чтобы заставить Streamline работать с OSR, придётся настроить sl.ini. Функция Streamsmooth конфликтует с OSR и вызывает значительное снижение производительности при неправильных настройках, но при корректных настройках Streamline может сохранить FPS при большой загруженности практически без потерь в графике.

Файл sl.ini можно найти в папке Oblivion\Data\Streamline\INI Files\sl.ini.:


set SLv.Purging to 1 ; Поставьте "0" если Вы будете использовать очистку памяти из Oblivion Reloaded. Если хотите использовать эту функцию в Streamline, отключите [Purger] в OR.


set SLv.FPSsmoothing to 1 ; Поставьте "0" если Вы не хотите использовать Streamsmooth. В таком случае Вам не нужно настраивать следующие строчки.


set SLfpsmon.High to 30 ; Высшая планка минимального FPS. Пример: мой средний показатель это ~50 FPS. Низкий FPS в моей игре "начинается" от 30 и ниже. Это тот порог, с которого Streamsmooth начнёт деликатно срезать дальность прорисовки. Не используйте в качестве значения свой средний FPS!


set SLfpsmon.Low to 20 ; Минимальный возможный FPS. Однако, принимая во внимание OSR, рекомендую держать это значение выше, чем значение "fMinimumFPS", хотя бы на 5 FPS. Это то значение, при котором Streamline дальность и детальность прорисовки выставит на минимальные значения (какие Вы укажите в .ini).