Killing Floor: low-memory профиль клиента
Этот гайд для игроков, у которых клиент Killing Floor падает с ошибками памяти, особенно на кастомных картах, при смене карты или после нескольких карт подряд.
Цель профиля - стабильность. Настройки ниже уменьшают precache, давление текстур, нагрузку звука и тяжелую визуальную детализацию. Картинка станет проще, зато клиенту будет легче переживать загрузку и смену карт.
Какие ошибки лечит этот профиль
| Ошибка или симптом | Что обычно означает |
|---|---|
CreateTexture failed(8007000E) | Клиент не смог выделить память под текстуру |
D3DERR_OUTOFVIDEOMEMORY | Direct3D не смог выделить достаточно видеопамяти |
IDirect3DVertexBuffer9::Lock failed | Рендер не смог заблокировать или создать D3D buffer |
CreateVertexBuffer failed | Не удалось создать mesh/render buffer |
Virtual memory exhausted | 32-bit процесс уперся в лимит адресного пространства |
Виртуальная память исчерпана | То же самое, но в русской локализации |
General protection fault при загрузке texture, sound, static mesh или map | Package не загрузился, пока клиент был под давлением памяти |
Важно: Killing Floor работает на старом 32-bit движке Unreal Engine 2. Сервер может снизить шанс падений, убрав слишком тяжелые карты из ротации, но полностью убрать лимит памяти клиента сервер не может.
Короткий чеклист
- Закрой игру.
- Найди клиентский
KillingFloor.ini. - Сделай backup.
- Отключи precache звука и рендера.
- Понизь детализацию текстур до
Normal. - Включи
bNeverPrecache=true. - Сохрани файл и проверь несколько смен карт.
Где находится KillingFloor.ini
| Тип установки | Путь |
|---|---|
| Steam | C:\Program Files (x86)\Steam\steamapps\common\KillingFloor\System\KillingFloor.ini |
| Non-Steam или portable client | <папка Killing Floor>\System\KillingFloor.ini |
| Windows VirtualStore | %LOCALAPPDATA%\VirtualStore\Program Files (x86)\Steam\steamapps\common\KillingFloor\System\KillingFloor.ini |
Если Steam установлен в другую папку, открой Steam, найди Killing Floor, выбери управление локальными файлами и перейди в папку System.
Backup перед изменениями
Перед правкой скопируй:
KillingFloor.ini
в:
KillingFloor.ini.backup
Если что-то станет хуже или картинка окажется слишком плохой, верни backup и перезапусти игру.
Рекомендуемый low-memory профиль
Открой KillingFloor.ini, найди указанные секции и измени только перечисленные ключи. Если ключа нет, добавь его внутрь нужной секции.
1. Engine cache
Секция:
[Engine.GameEngine]
Рекомендуемо:
CacheSizeMegs=32
Не повышай это значение для решения out-of-memory. Большой cache может ухудшить ситуацию, потому что 32-bit клиенту и так не хватает адресного пространства.
2. Audio precache
Секция:
[ALAudio.ALAudioSubsystem]
Рекомендуемо:
UsePrecache=False
LowQualitySound=True
Channels=24
Что это дает:
UsePrecache=Falseуменьшает предварительную загрузку звуков.LowQualitySound=Trueснижает нагрузку от аудио-ресурсов.Channels=24уменьшает число одновременных звуковых каналов.
Если звук начинает слишком часто пропадать, попробуй вернуть:
Channels=32
3. Direct3D 9 renderer
Большинство игроков используют D3D9. Это самая важная секция для падений по текстурам и видеопамяти.
Секция:
[D3D9Drv.D3D9RenderDevice]
Рекомендуемо:
DetailTextures=False
HighDetailActors=False
SuperHighDetailActors=False
UsePrecaching=False
UseTrilinear=False
ReduceMouseLag=False
UseCubemaps=False
UseCompressedLightmaps=True
UseVSync=False
LevelOfAnisotropy=0
DetailTexMipBias=0.0
DefaultTexMipBias=0.0
Самые важные строки:
UsePrecaching=False
HighDetailActors=False
SuperHighDetailActors=False
ReduceMouseLag=False
Примечания:
UsePrecaching=Falseуменьшает предварительную загрузку render-ресурсов.ReduceMouseLag=Falseможет снизить давление на D3D buffers.UseCompressedLightmaps=Trueобычно лучше для памяти, чем uncompressed lightmaps.DefaultTexMipBias=0.0- безопасное стартовое значение. Если клиент все еще падает, попробуй0.5или1.0; текстуры станут заметно мыльнее.
4. OpenGL renderer
Меняй эту секцию только если точно играешь через OpenGL.
Секция:
[OpenGLDrv.OpenGLRenderDevice]
Рекомендуемо:
DetailTextures=False
HighDetailActors=False
SuperHighDetailActors=False
UsePrecaching=False
UseCompressedLightmaps=True
UseTrilinear=False
ReduceMouseLag=False
LevelOfAnisotropy=0
Если ты не знаешь, используешь ли OpenGL, скорее всего, у тебя D3D9. Тогда эту секцию можно не трогать.
5. Visual detail
Секция:
[WinDrv.WindowsClient]
Рекомендуемо:
Decals=False
Coronas=False
DecoLayers=False
Projectors=False
NoDynamicLights=True
TextureDetailInterface=Normal
TextureDetailTerrain=Normal
TextureDetailWeaponSkin=Normal
TextureDetailPlayerSkin=Normal
TextureDetailWorld=Normal
TextureDetailRenderMap=Normal
TextureDetailLightmap=Normal
WeatherEffects=False
DrawDistanceLOD=0.700000
Что это дает:
TextureDetail...=Normalснижает размер загружаемых texture resources.Projectors=FalseиDecals=Falseпомогают на картах с большим количеством следов, крови, проекций и эффектов.WeatherEffects=Falseпомогает на кастомных картах с тяжелыми погодными эффектами.DrawDistanceLOD=0.700000уменьшает дальнюю детализацию.
Если картинка стала слишком плохой, можно попробовать:
DrawDistanceLOD=0.850000
6. Level loading и preload
Секция:
[Engine.LevelInfo]
Рекомендуемо:
PhysicsDetailLevel=PDL_Medium
MeshLODDetailLevel=MDL_Medium
bLowSoundDetail=True
DecalStayScale=0.0
bNeverPrecache=true
bShouldPreload=False
bDesireSkinPreload=False
Самая важная строка:
bNeverPrecache=true
Она снижает риск out-of-memory на загрузке уровня. Возможный минус - микрофризы при первом появлении некоторых врагов, оружия или эффектов.
Полный copy-paste профиль
Не удаляй весь KillingFloor.ini. Найди существующие секции и выставь в них такие значения.
[Engine.GameEngine]
CacheSizeMegs=32
[ALAudio.ALAudioSubsystem]
UsePrecache=False
LowQualitySound=True
Channels=24
[D3D9Drv.D3D9RenderDevice]
DetailTextures=False
HighDetailActors=False
SuperHighDetailActors=False
UsePrecaching=False
UseTrilinear=False
ReduceMouseLag=False
UseCubemaps=False
UseCompressedLightmaps=True
UseVSync=False
LevelOfAnisotropy=0
DetailTexMipBias=0.0
DefaultTexMipBias=0.0
[WinDrv.WindowsClient]
Decals=False
Coronas=False
DecoLayers=False
Projectors=False
NoDynamicLights=True
TextureDetailInterface=Normal
TextureDetailTerrain=Normal
TextureDetailWeaponSkin=Normal
TextureDetailPlayerSkin=Normal
TextureDetailWorld=Normal
TextureDetailRenderMap=Normal
TextureDetailLightmap=Normal
WeatherEffects=False
DrawDistanceLOD=0.700000
[Engine.LevelInfo]
PhysicsDetailLevel=PDL_Medium
MeshLODDetailLevel=MDL_Medium
bLowSoundDetail=True
DecalStayScale=0.0
bNeverPrecache=true
bShouldPreload=False
bDesireSkinPreload=False
Более агрессивный профиль
Используй только если рекомендуемый профиль помог, но не решил падения полностью.
[WinDrv.WindowsClient]
TextureDetailInterface=Lower
TextureDetailTerrain=Lower
TextureDetailWeaponSkin=Lower
TextureDetailPlayerSkin=Lower
TextureDetailWorld=Lower
TextureDetailRenderMap=Lower
TextureDetailLightmap=Lower
DrawDistanceLOD=0.500000
MinDesiredFrameRate=45.000000
[D3D9Drv.D3D9RenderDevice]
DefaultTexMipBias=1.0
DetailTexMipBias=1.0
Минусы:
- текстуры станут заметно мыльными;
- дальние объекты будут хуже выглядеть;
- возможен более заметный pop-in.
Экспериментальные NVIDIA и video memory настройки
Это необязательный шаг. Пробуй только если:
- у тебя NVIDIA GPU;
- основной low-memory профиль не помог;
- ты понимаешь, как откатить изменения.
Секция:
[Engine.Engine]
Экспериментально:
NVidiaGPU=True
DetectedVideoMemory=1024
Для старых или слабых GPU лучше:
DetectedVideoMemory=512
Не ставь огромное значение только потому, что у видеокарты много VRAM. 32-bit игра все равно может упереться в лимит памяти процесса.
Large Address Aware
Large Address Aware, или LAA, это флаг Windows executable, который может позволить 32-bit процессу использовать больше виртуального адресного пространства на 64-bit Windows.
Для старых Unreal Engine 2 игр это иногда помогает, но это не серверный фикс и не обычная настройка INI. Это изменение executable файла клиента.
Рассматривай LAA только если все пункты верны:
- у тебя 64-bit Windows;
- low-memory профиль уменьшил падения, но не убрал их полностью;
- ты часто падаешь на тяжелых кастомных картах;
- ты понимаешь, как восстановить оригинальный
KillingFloor.exe.
Риски:
- Steam может вернуть оригинальный executable при verify или update.
- Некоторые anti-cheat или серверные конфигурации могут негативно относиться к измененному executable.
- Non-Steam builds отличаются, поэтому универсальной инструкции для всех клиентов нет.
- Сохраняй чистый backup оригинального executable.
Откат:
- Закрой игру.
- Для Steam запусти проверку файлов.
- Для Non-Steam верни backup executable или переустанови клиент из исходного архива/инсталлера.
Что этот профиль не исправит
Профиль уменьшает memory pressure. Он не превращает Killing Floor в 64-bit игру и не гарантирует фикс, если проблема в:
- битой или плохо собранной кастомной карте;
- отсутствующих redirect downloads;
- поврежденном
.utx,.uax,.usx,.ukxpackage; - отключенном или слишком маленьком Windows pagefile;
- нестабильном GPU driver;
- перегреве или нестабильном overclock;
- слишком тяжелой карте, которая не помещается в лимиты клиента;
- длинной игровой сессии без перезапуска клиента.
Дополнительные проверки Windows
Если падения остаются:
- Убедись, что Windows pagefile включен.
- Оставь несколько GB свободного места на системном диске.
- Закрой браузер, Discord overlay, запись видео, другие игры и тяжелые фоновые программы.
- Обнови GPU driver.
- Если новый driver нестабилен, попробуй одну из старых стабильных версий.
- Перезапускай Killing Floor после нескольких тяжелых кастомных карт.
- Не заходи сразу на тяжелую карту, если клиент уже долго запущен.
Как тестировать
После изменений:
- Запусти Killing Floor.
- Зайди на сервер с обычной картой.
- Сыграй одну карту.
- Смени карту на кастомную.
- Смени еще одну карту.
- Если все стабильно, зайди на сервер или карту, где раньше были падения.
Хороший результат - клиент переживает несколько смен карт без CreateTexture failed, D3DERR_OUTOFVIDEOMEMORY и Виртуальная память исчерпана.
Плохой результат - клиент падает на одной и той же карте при каждой загрузке, особенно если лог указывает на один и тот же texture, sound, static mesh или map package. В таком случае проблема может быть в конкретной карте или package.
Откат INI-настроек
Если картинка стала слишком плохой или стало хуже:
- Закрой Killing Floor.
- Удали измененный
KillingFloor.ini. - Переименуй
KillingFloor.ini.backupобратно вKillingFloor.ini. - Запусти игру.
Если backup не был сделан:
- Steam: запусти verify game files.
- Non-Steam: восстанови файл из инсталлера или архива.
- В некоторых сборках можно удалить
KillingFloor.ini, и игра создаст новый файл при старте.
Короткое сообщение для игроков
Админ сервера может отправлять игрокам такой текст:
Если Killing Floor падает с CreateTexture failed, D3DERR_OUTOFVIDEOMEMORY или "Виртуальная память исчерпана":
1) Закрой игру
2) Сделай backup System\KillingFloor.ini
3) Поставь UsePrecache=False и UsePrecaching=False
4) Поставь bNeverPrecache=true
5) Понизь TextureDetail... до Normal
6) Перезапускай клиент после нескольких тяжелых кастомных карт