KF2: больше FPS на больших модовых серверах (KFEngine.ini)
Руководство собирает правки KFEngine.ini и параметры запуска для одной проблемы: низкий и нестабильный FPS на поздних волнах больших серверов Killing Floor 2 с множеством модов. Автор сообщает о росте примерно с 40 до 75 FPS на больших волнах на GTX 1080 с 8 ГБ. Результат зависит от процессора, видеопамяти, ОЗУ и нагрузки на сервер, поэтому проверяйте изменения по одному. Все правки рассчитаны на Ultra; на слабом ПК лучше снизить настройки графики в игре. См. также расширенную настройку FPS для первой части.
Все файлы лежат в Documents\My Games\KillingFloor2\KFGame\Config\. Сначала сделайте их копии.
Шаг 1: кэш текстур (PoolSize)
В KFEngine.ini, секция [TextureStreaming], измените PoolSize (исходно от 160 до 2000) под объём VRAM в мегабайтах:
| VRAM | PoolSize |
|---|---|
| 2 ГБ | 1000 |
| 4 ГБ | 2000 |
| 6 ГБ | 3000 |
| 8 ГБ | 4000 |
| 10 ГБ | 5000 (максимум 6000) |
Если появились подтормаживания, значение слишком велико - уменьшите его.
PoolSize в секции [TextureStreaming].
Шаг 2: пул стриминга
В [SystemSettings] добавьте r.Streaming.PoolSize=4000 (4000 подходит для 8 ГБ; масштабируйте под свою карту). Движок будет держать в памяти больше потоковых текстур.
Строка пула стриминга в [SystemSettings].
Шаги 1 и 2 самые важные; обычно одних их хватает для основного прироста.
Шаг 3: отключение лимитов стриминга
Добавьте в [SystemSettings], чтобы использованные текстуры оставались в памяти и меньше было подгрузок и фризов:
r.Streaming.FullyLoadUsedTextures=1
r.Streaming.HLODStrategy=2
r.Streaming.UseFixedPoolSize=1
Настройки лимитов стриминга.
Шаг 4: дополнительные параметры
Только для карт от 6 ГБ VRAM. В [TextureStreaming]:
MemoryMargin=128
MemoryLoss=0
HysteresisLimit=40
DropMipLevelsLimit=16
StopIncreasingLimit=12
UsePriorityStreaming=True
UseTextureFileCache=True
Приоритетный стриминг сглаживает загрузку и убирает скачки памяти при большом пуле, особенно на HDD. Кэш текстур важен на HDD, на SSD даёт лишь небольшой плюс.
Блок [TextureStreaming].
В [SystemSettings] можно также добавить r.OneFrameThreadLag=0 и r.Streaming.DefragDynamicBounds=1 (часть параметров ваша версия может игнорировать, это безвредно).
Чтобы убрать микрофризы от теней, создайте секцию [MemoryPools], если её нет, и задайте оба значения под свой ПК:
FLightPrimitiveInteractionInitialBlockSize=2048
FModShadowRenderPrimitiveInteractionInitialBlockSize=2048
По умолчанию 512. Рекомендации: 1024 для слабого ПК (8 ГБ ОЗУ, GTX 960 и ниже), 2048 для среднего (16 ГБ, GTX 1060-1070), 4096 для мощного (32 ГБ, GTX 1080 / RTX 3060 и выше), 8192 для экстремального, но это почти бессмысленно.
Шаг 5: параметры запуска Steam
Щёлкните правой кнопкой по Killing Floor 2 в Steam, откройте Свойства и впишите в параметры запуска:
-USEALLAVAILABLECORES -PREFERPROCESSOR=1
Поле параметров запуска в свойствах игры.
Настройки CPU и физики
Улучшают работу потоков и уменьшают микролаги PhysX, не меняя графику.
[SystemSettings]:r.OneFrameThreadLag=0,r.FinishCurrentFrame=0,r.Streaming.NumStaticComponentsProcessedPerFrame=500,r.Streaming.NumDynamicComponentsProcessedPerFrame=200. Убирает задержку в один кадр между CPU и GPU, быстрее подгружает оружие и эффекты.[Core.System]:bUseBackgroundLevelStreaming=False,bDisableLogging=True. Снижает фоновую подгрузку, лишнюю на SSD.[Engine.Physics]:bPhysicsAsyncScene=True,bEnableAsyncScene=True,PhysXGpuHeapSize=128,PhysXMeshCacheSize=32. Асинхронная физика разгружает основной поток.[Engine.Engine]:bSmoothFrameRate=True,MinSmoothedFrameRate=60,MaxSmoothedFrameRate=120,bUseVSync=False,bUseThreadedRendering=True,bUseThreadedUpdate=True.[MemoryPools]:FParticleRenderDataPoolSize=1024,FPrimitiveSceneProxyPoolSize=2048. Меньше перераспределений памяти на больших волнах с обилием крови.
Защита от вылетов
Для долгих сессий (2+ часа), тяжёлых модовых карт и множества модов установите в [Core.System] нули:
MaxObjectsNotConsideredByGC=0
SizeOfPermanentObjectPool=0
StaleCacheDays=0
MaxStaleCacheSize=0
MaxOverallCacheSize=0
PackageSizeSoftLimit=0
Это не даёт копиться устаревшим объектам и кэшам, снижая число вылетов из-за переполнения памяти и фризов в модовом мультиплеере.
Параметры памяти Core.System, выставленные в ноль.
Дополнительные советы
- Отключите логирование:
bDisableLogging=Trueв[Core.Log], небольшой выигрыш. - Звук: в
[Audio]задайтеMaxChannels=64,UseEffectsProcessing=True,Use3DSound=True,TimeBetweenHWUpdates=15,bUseThreadedAudio=True. - Асинхронная подгрузка: в
[Engine.Streaming]задайтеs.MinBulkDataSizeForAsyncLoading=0иs.AsyncLoadingThreadEnabled=True, чтобы ресурсы грузились в фоне.
Профиль автора и результаты
Конфигурация: i7-5820K, GTX 1080 8 ГБ, 32 ГБ ОЗУ, Ultra, кровь включена, NVIDIA Flex выключен. Ключевые значения: r.Streaming.PoolSize=3500 и PoolSize=3500, r.Streaming.UseFixedPoolSize=0, куча PhysX 256 и кэш мешей 64, r.ShadowQuality=3, r.MotionBlurQuality=0, r.MaxAnisotropy=8, блоки memory pools 2048 и нули в Core.System, логирование оставлено для диагностики падений. FPS на ультра-модовом сервере:
| Волны | Мин/Макс | Среднее |
|---|---|---|
| 0-25 | 40/60 | 55 |
| 26-30 | 30/60 | 45 |
| 31-35 | 25/50 | 30 |
Частые вопросы
- Игра не запускается после правок. Удалите изменённые ini, они пересоздадутся с настройками по умолчанию.
- FPS не вырос. Проверяйте по одному изменению и не ставьте пул больше, чем позволяет VRAM (для 4 ГБ не выше примерно 2000-2500).
- Как проверить? F3 в игре или оверлей FPS в Steam.
- Вернуть как было. Удалите
KFEngine.ini,KFSystemSettings.iniиKFGame.iniв папке Config. - Модовые серверы и кастомные карты. Правки полезнее всего там, где много ZED и тяжёлые эффекты.
Вопросы и ответы
- Какие настройки ini важнее всего для FPS в KF2?
- Шаги 1 и 2: PoolSize в [TextureStreaming] и r.Streaming.PoolSize в [SystemSettings], подобранные под объём видеопамяти.
- Что делать, если игра сломалась после правки ini?
- Удалите изменённые ini в Documents\My Games\KillingFloor2\KFGame\Config. При запуске игра создаст их заново. Делайте резервные копии.
- Могут ли за это забанить?
- По словам автора, правки меняют только локальную конфигурацию и не затрагивают исполняемый файл и сетевые файлы.