Skip to content

Dead Air x64 — сборка от 19 августа 2026 (10054)

Choose a tag to compare

@DanesCrai1 DanesCrai1 released this 17 Aug 23:00
· 14 commits to main since this release

Dead Air x64 — сборка от 19 августа 2026

Сборка 10054 · ревизия df677f9790be

Обновляются движок и игровые файлы. Сейвы совместимы, начинать заново не нужно.

Это обновление про утечку памяти — ту самую, из-за которой через полчаса игры оперативная
память уходила за шесть гигабайт, а игра закрывалась сама.


Найдена и закрыта: игра больше не «съедает» память

Симптом знали все, кто играл дольше двадцати минут: диспетчер задач показывает рост, звук начинает
заикаться, потом вылет без стека — просто «закончилась память».

Причина оказалась в одну строку. Движок проверяет, видна ли лампа на экране: берёт у видеокарты
запрос, ждёт ответ, возвращает запрос обратно в общий котёл. Котлов таких четыре — по числу
потоков, которые готовят кадр. А возвращали только из трёх: четвёртый брал запрос каждый кадр и
не отдавал никогда.

Шестьдесят кадров в секунду, десятки ламп в кадре — и семь мегабайт в секунду утекает в драйвер
видеокарты. Даже со свёрнутой игрой: кадр всё равно готовится. Отсюда и «за полчаса шесть
гигабайт».

Теперь память выходит на полку и стоит.

Тени ламп перестали моргать в помещениях

Тот же почерк, соседний узел. Каждой лампе выделяется место в общем атласе теней, и размер зависит
от того, как далеко до неё стоит игрок. Подошёл ближе — лампа берёт кусок побольше. А старый кусок
никто не освобождал: он оставался занятым навсегда.

Атлас забивался мёртвыми ячейками, движок его перекладывал — и в этот момент разом обнулялись тени
всех ламп сразу. В баре, на базе Долга, в любом освещённом помещении это выглядело как общее
моргание теней.

Ещё четыре места, где память копилась молча

Тот же разбор прошли соседние подсистемы — везде «положили и не забрали»:

  • буфер лога держал в памяти весь текст сессии целиком, до последней строчки;
  • дерево видимости теряло узлы при выгрузке уровня;
  • очереди сетевых пакетов росли до максимума за всю сессию и назад не сжимались — а ячейка там
    весит шестнадцать килобайт;
  • счётчики отладки копили записи без потолка.

Поодиночке это мегабайты, а не гигабайты. Но именно из таких мелочей складывается «после четвёртой
локации подряд стало тяжело».

Вылет при смерти сталкера рядом с дверью

Из свежих логов тестеров. Сталкер умирает, движок разбирает его на части — и в этот момент дверь,
которую он держал открытой, честно сообщает скриптам «мной воспользовались», передавая им
наполовину разобранного владельца. Скрипт читает пустоту, игра падает.

Дверь по-прежнему закрывается за погибшим, только оповещения больше нет: пользоваться ей уже
некому.


Ставится как обычно — Обновление.cmd. Сохранения, настройки и посторонние моды не трогаются.

При вылете присылайте самый свежий лог целиком из appdata\logs — к сборке сохранён снимок
символов, поэтому причина читается точно.