Проблемы и оптимизация

KF2: больше FPS на любом ПК - правки конфигов для слабых компьютеров

Руководство для тех, кто хочет запустить Killing Floor 2 на очень слабом компьютере и готов пожертвовать картинкой ради кадров. Killing Floor 2 построена на Unreal Engine 3, поэтому почти все аспекты можно менять в ini-файлах. Значения записаны как «по умолчанию, затем новое». Современный подход для видеокарт с большим объёмом памяти: FPS на больших серверах и настройки без раздражителей.

Сначала резервная копия

Скопируйте (не переносите) всё из Documents\My Games\KillingFloor2\KFGame\Config в безопасное место. Меняйте настройки постепенно и запускайте игру каждые несколько минут, чтобы вовремя заметить вылеты. Правленые файлы ставьте «только чтение», иначе игра их сотрёт: в тестах откатывались только KFSystemSettings и KFEngine. KFGame и KFInput только для чтения не делайте, иначе скины, косметику и управление придётся применять каждый раз. Удаление любого конфига заставляет игру создать свежий.

Обычные советы

Выставите в игре все параметры на минимум или выключите (разрешение на ваше усмотрение: ниже разрешение - больше FPS, но изображение мутнее; гамма на скорость не влияет).

Настройки видео на минимуме Настройки видео на минимальных значениях.

  • Закройте программы, нагружающие процессор, например антивирус.
  • Обновите драйверы видеокарты.
  • Отключите оверлей Steam (по опыту автора, FPS растёт, а вылетов меньше в любой игре).
  • В «Дополнительных параметрах системы Windows», «Быстродействие» выберите режим производительности, чтобы освободить ОЗУ.

Параметры быстродействия Windows Параметры быстродействия Windows.

  • Дефрагментируйте диски (HDD) и перенесите файл подкачки на запасной диск.
  • В диспетчере задач поставьте процессу KF2 высокий приоритет (ниже есть bat-файл).
  • Очистите %temp%.

Базовые правки

Команда stat fps в консоли показывает частоту кадров. Редактируйте в Блокноте или Notepad++, ищите через Ctrl+F.

KFSystemSettings.ini (меняйте любые):

  • StaticDecals=False, DynamicDecals=False (следы от пуль), UnbatchedDecals=False
  • DropParticleDistortion=False (размытие взрывов), SpeedTreeLeaves=False, SpeedTreeFronds=False
  • OnlyStreamInTextures=True (убрало подтормаживания на 8 ГБ ОЗУ)
  • FogVolumes=False (сильно нагружает CPU), FloatingPointRenderTargets=False, AllowRadialBlur=False
  • AllowImageReflections=False, AllowImageReflectionShadowing=False, bAllowHighQualityMaterials=False
  • MaxDrawDistanceScale=0.8 (если сильно снизить, FPS заметно растёт, но можно видеть врагов и патроны сквозь стены)
  • ScreenPercentage=90 (снижает разрешение без размытия интерфейса, очень эффективно)
  • bAllowFracturedDamage=False (нет разбиваемого стекла), UseComputeSSR=False, ImageGrainScaler=0 (без «только чтение» откатывается), AllowBooleanPreshadows=False, UseNewDOF=False, DistanceFog=False
  • MotionBlurStaticScale=0, MotionBlurDynamicScale=0

KFEngine.ini:

  • ImageReflectionTextureSize=512, bStaticDecalsEnabled=False, bDynamicDecalsEnabled=False
  • bUseTextureStreaming=False (кому-то помогает, проверьте)
  • MaxFluidNumVerts=1, MaxParticleVertexMemory=1 (отключает частицы пуль, огня и взрывов; можно пропустить)
  • MipFadeInSpeed0=0.0, MipFadeOutSpeed0=0.0, MipFadeInSpeed1=0.0, MipFadeOutSpeed1=0.0
  • bSmoothFrameRate=FALSE, MinSmoothedFrameRate=30, MaxSmoothedFrameRate=60 (частота монитора), MinDesiredFrameRate=60
  • RequestedDirectXVersion=10 и параметр запуска Steam -dx10 (DirectX 10 считается менее склонным к вылетам)
  • BoostPlayerTextures=0.0, ParticlePercentage=80 (0 отключает частицы и сильно ускоряет)

KFGame.ini: DecalLifeSpan=0.0, MaxImpactEffectDecals=0, ShellEjectLifetime=0.5.

Размеры текстур

Строки KFSystemSettings.ini вида TEXTUREGROUP_Creature(MinLODSize=1,MaxLODSize=4096,LODBias=3,MinMagFilter=Linear.. задают размер текстур; по умолчанию они грузятся до 4K. Снизьте MaxLODSize до 2048 или 1024 (половина и четверть разрешения) и смените MinMagFilter=Linear на Point. Значение 1 даёт максимальный прирост, но делает текстуры бесцветными и угловатыми. LODBias идёт от -1 (максимум детализации) до 10 (минимум); автор не уверен, как именно он работает, так что экспериментируйте.

Не опускайте UI, ColorLookupTable и Bokeh ниже 256 (они влияют на меню и HUD; при 1 становятся серыми квадратами, но дают прирост, если совсем туго). TerrainHeightMap и TerrainWeightMap ниже 256 не опускайте из-за багов текстур земли и растительности. Минимум вообще - 16, поскольку часть параметров при значении 1 вызывает баг текстур на Black Forest и Zed Landing.

Продвинутые правки для слабых ПК

Они жертвуют картинкой ради большого прироста. Сохраните файл и сделайте его «только чтение».

Тени (KFSystemSettings.ini): DynamicShadows=False, MinShadowResolution=1, MinPreShadowResolution=0, MaxShadowResolution=1, MobileShadowTextureResolution=1, MaxWholeSceneDominantShadowResolution=1, ShadowFadeResolution=0, PreShadowFadeResolution=0, ShadowTexelsPerPixel=0, bAllowHardwareShadowFiltering=False, GlobalShadowDistanceScale=0.0, AllowBooleanPreshadows=False, MaxPrimBoundsForPerObjectShadows=0.0.

Свет (KFSystemSettings.ini): DynamicLights=False, LightEnvironmentShadows=False, CompositeDynamicLights=False, SHSecondaryLighting=False, DirectionalLightmaps=False, MaxOverlappingLights=0, AllowLightOcclusionQueries=False, VolumetricLightingMode=0. В KFEngine.ini: bShouldGenerateSimpleLightmaps=FALSE и bUseNormalMapsForSimpleLightMaps=FALSE.

Кровь: в KFSystemSettings.ini AllowPersistentSplats=False, AllowSecondaryBloodEffects=False. В KFGame.ini поставьте 0 или false: MaxExplosionDecals, BloodPoolDelay, GoreFXLifetimeMultiplier, BodyWoundDecalLifetime, BloodSplatterLifetime, BloodPoolLifetime, GibletLifetime, MaxBodyWoundDecals, MaxBloodSplatterDecals, MaxBloodPoolDecals, BloodSplatSize, BloodPoolSize, MaxDeadBodies, MaxBloodEffects, MaxGoreEffects, AllowBloodSplatterDecals, PersistentSplatTraceLength, MaxPersistentSplatsPerFrame, GoreLevel.

Частицы (пули, взрывы, огонь). KFEngine.ini: MaxFluidNumVerts=1, MaxParticleResize=532, MaxParticleResizeWarn=0, MaxParticleVertexMemory=64, ParticlePercentage=0. KFGame.ini: MaxFluidNumVerts=64, MaxParticleResize=532, MaxParticleVertexMemory=64, ShellEjectLifetime=0.0.

Запуск через bat-файл с высоким приоритетом

Создайте KF2.bat (сохраните как «Все файлы») с содержимым:

start steam://rungameid/232090
timeout 45
wmic process where name="KFGame.exe" CALL setpriority "high priority"
wmic process where name="Steam.exe" CALL setpriority "low"

Запуск через этот файл стартует игру и выставляет ей высокий приоритет. В отчаянной ситуации добавьте на новой строке taskkill /F /IM explorer.exe: это отключит панель задач и кнопки громкости; для возврата нажмите Ctrl+Alt+Delete, откройте диспетчер задач, «Запустить новую задачу» и введите explorer.

Готовый low-конфиг и autoexec

Готовый низкий конфиг автора (не обновлялся с 2018 года, «не рекомендую») снижает всё до минимума: низкие текстуры, удалённые частицы, малая дальность прорисовки, пониженный screen percentage и изменённый FOV. Файлы кладутся в папку Config, а KFEngine.ini и KFSystemSettings.ini нужно сделать «только чтение».

Autoexec убирает туман, снижает текстуры и свечение: создайте текстовый файл exec в Steam\steamapps\common\killingfloor2\Binaries со строками texturepoolsize 1, fogdensity 0, postprocessAAtype 0, RawInputUpdateTest true и BloomSize 0, затем добавьте -exec.txt в параметры запуска.

Прочие безопасные уменьшения

В KFSystemSettings.ini: SkeletalMeshLODBias=1, ParticleLODBias=1, MaxDrawDistanceScale вплоть до 0.20 «должен закончить ваши проблемы с FPS», а ShadowFilterRadius и дистанции теней всей сцены трогайте, только если тени отключены. Автор также перечисляет в KFEngine.ini значения PhysX Apex, проверки релевантности и параметры процедурных зданий и ландшафта, которые можно уменьшать, но предупреждает, что не может проверить NVIDIA-параметры.

Консольные команды для FPS

Введите enablecheats в консоли (только соло), затем: showpostprocess убирает постобработку, showlevelcoloration - окраску уровня, showfog - туман (особенно заметно на Farmhouse), clearcorpses - убирает трупы, clearsplatters - следы крови. Чтобы трупы убирались при каждой перезарядке, введите setbind R clearcorpses и верните клавишу перезарядки в игре на R.

Вопросы и ответы

Почему мои правки конфигов KF2 сбрасываются?
Игра перезаписывает KFSystemSettings.ini и KFEngine.ini при запуске, если не включить для них «только чтение». KFGame.ini и KFInput.ini лучше оставить редактируемыми.
Как посмотреть частоту кадров в KF2?
Откройте консоль и введите stat fps.
Как отменить все изменения?
Удалите изменённые конфиги, игра создаст новые при запуске. Перед началом сделайте копию.