Dead Air x64 — сборка от 19 августа 2026 (10054)
Dead Air x64 — сборка от 19 августа 2026
Сборка 10054 · ревизия df677f9790be
Обновляются движок и игровые файлы. Сейвы совместимы, начинать заново не нужно.
Это обновление про утечку памяти — ту самую, из-за которой через полчаса игры оперативная
память уходила за шесть гигабайт, а игра закрывалась сама.
Найдена и закрыта: игра больше не «съедает» память
Симптом знали все, кто играл дольше двадцати минут: диспетчер задач показывает рост, звук начинает
заикаться, потом вылет без стека — просто «закончилась память».
Причина оказалась в одну строку. Движок проверяет, видна ли лампа на экране: берёт у видеокарты
запрос, ждёт ответ, возвращает запрос обратно в общий котёл. Котлов таких четыре — по числу
потоков, которые готовят кадр. А возвращали только из трёх: четвёртый брал запрос каждый кадр и
не отдавал никогда.
Шестьдесят кадров в секунду, десятки ламп в кадре — и семь мегабайт в секунду утекает в драйвер
видеокарты. Даже со свёрнутой игрой: кадр всё равно готовится. Отсюда и «за полчаса шесть
гигабайт».
Теперь память выходит на полку и стоит.
Тени ламп перестали моргать в помещениях
Тот же почерк, соседний узел. Каждой лампе выделяется место в общем атласе теней, и размер зависит
от того, как далеко до неё стоит игрок. Подошёл ближе — лампа берёт кусок побольше. А старый кусок
никто не освобождал: он оставался занятым навсегда.
Атлас забивался мёртвыми ячейками, движок его перекладывал — и в этот момент разом обнулялись тени
всех ламп сразу. В баре, на базе Долга, в любом освещённом помещении это выглядело как общее
моргание теней.
Ещё четыре места, где память копилась молча
Тот же разбор прошли соседние подсистемы — везде «положили и не забрали»:
- буфер лога держал в памяти весь текст сессии целиком, до последней строчки;
- дерево видимости теряло узлы при выгрузке уровня;
- очереди сетевых пакетов росли до максимума за всю сессию и назад не сжимались — а ячейка там
весит шестнадцать килобайт; - счётчики отладки копили записи без потолка.
Поодиночке это мегабайты, а не гигабайты. Но именно из таких мелочей складывается «после четвёртой
локации подряд стало тяжело».
Вылет при смерти сталкера рядом с дверью
Из свежих логов тестеров. Сталкер умирает, движок разбирает его на части — и в этот момент дверь,
которую он держал открытой, честно сообщает скриптам «мной воспользовались», передавая им
наполовину разобранного владельца. Скрипт читает пустоту, игра падает.
Дверь по-прежнему закрывается за погибшим, только оповещения больше нет: пользоваться ей уже
некому.
Ставится как обычно — Обновление.cmd. Сохранения, настройки и посторонние моды не трогаются.
При вылете присылайте самый свежий лог целиком из appdata\logs — к сборке сохранён снимок
символов, поэтому причина читается точно.