Последние комментарии

вув pee
фигня полная. Просто пиксели жёлтые он даже не окрашивает в жёлтый
2 дня назад
Le Dodique Le Dodique Cybercult 2: New York Apostasy
привет. держи мод goodmods.ru/mods/people-playground/nova-s-marvel...
3 дня назад
саша Cybercult 2: New York Apostasy
привет скачай пожалуйста эту мод на карту про марвел steamcommunity...
3 дня назад
Le Dodique Le Dodique Cybercult 2: New York Apostasy
привет, вот goodmods.ru/mods/people-playground/bobs-invincible...
6 дней назад
аянами рей Evangelion Mod
я хз как включить этого робота скажите пж
7 дней назад

Мод «ItemOptimizer» на Barotrauma

ItemOptimizer — мод для оптимизации производительности в Barotrauma. Устраняет лишние вычисления каждый кадр на больших подлодках при высокой нагрузке модами.

Только оптимизация — игровые механики не изменены. Каждую функцию можно включить или отключить отдельно в панели настроек внутри игры (ESC → ItemOptimizer).


Бенчмарк: тот же сейв, загружено ~17 контентных модов (Deep Diving Armory, Barotraumatic, T.S.M MISSIONS, 九州武库 Rebalance, Enhanced EuropaWar и др.). Сравнение колебаний showperf:

  • FPS: 76 → 146
  • Update total: 13.16 мс → 8.02 мс (экономия ~5 мс/кадр)
  • MapEntity: 8.08 мс → 4.11 мс (снижение на ~49%)
  • Update peak: 33.45 мс → 20.04 мс (сглаживание пиков)

Результаты варьируются в зависимости от подлодки, комбинации модов и стадии карты. В ванильной сборке или с легкими модами экономия обычно составляет 1–2 мс/кадр.

Работает как на клиенте, так и на сервере. Серверы с включенным LuaCs также получают выгоду. Систематический серверный бенчмаркинг еще предстоит провести — данные тестов приветствуются.


Требования:


Функции:

Планирование зон (Zone Scheduling)

  • Подлодки, затонувшие корабли, руины и аванпосты на карте разделены на независимые зоны, распределенные по 5 уровням в зависимости от расстояния до игрока: Full → Near → Throttled → Dormant → Unloaded
  • Близкие зоны работают со стандартной частотой обновлений; дальние постепенно снижают активность до полной заморозки, затем реактивируются при приближении игрока
  • Наиболее заметно в долгих кампаниях с большим количеством открытых локаций

Умное ограничение предметов (Smart Item Throttling)

  • Перехватывает стандартный цикл обновления предметов, классифицирует каждый предмет один раз за тик и пропускает предметы, не требующие полного обновления
  • Предметы внутри неоткрытых контейнеров заморожены, пока контейнер не будет открыт
  • Предметы, лежащие на земле, обновляются реже (проводные предметы и предметы с критически важными компонентами исключены)
  • Пропущенные предметы все равно получают минимальные физические обновления (позиция, плавучесть, сетевая синхронизация) — они не исчезают из мира

Переписанные компоненты (Component Rewrites)

  • Датчик движения (Motion Sensor) — заменен на пространственные запросы на основе отсеков (hull), пропускает стандартные проверки коллизий для каждой сущности
  • Датчик воды (Water Detector) — считывает уровень воды в отсеке напрямую, пропуская стандартный многоступенчатый процесс обнаружения
  • Реле (Relay) — сведено к чистой передаче сигнала, удалены избыточные проверки состояния
  • Передача энергии (Power Transfer, распределительные щиты и т.д.) и Накопители энергии (Power Container, батареи/суперконденсаторы) — топология сети кэшируется, что устраняет повторные вычисления каждый кадр
  • Все переписанные компоненты сохраняют ванильное поведение, могут быть включены/отключены по отдельности и имеют настраиваемые интервалы обновления

Ускоритель графа сигналов (Signal Graph Accelerator)

  • Компилирует компоненты схем (логические элементы, датчики и т.д.) в топологически отсортированный граф оценки с использованием массивов регистров вместо стандартных вызовов SendSignal для каждого провода
  • Скомпилированные схемы оцениваются за один упорядоченный проход, минуя накладные расходы на промежуточную передачу сигналов
  • Режим Accelerate: компилирует 12 базовых логических компонентов (элементы И/ИЛИ/НЕ, компараторы, арифметика, память и т.д.)
  • Режим Aggressive: дополнительно компилирует сквозную переда Relay и компоненты Delay; компоненты со StatusEffects, привязанными к соединениям, исключены из соображений безопасности
  • Циклы автоматически обнаруживаются и преобразуются в задержки в один кадр, сохраняя нормальное поведение схемы

Управление предметами модов (Mod Item Management)

  • Автоматически определяет установленные моды и классифицирует их предметы по уровню активности (High / Active / Normal / Static)
  • Ползунок интенсивности для каждого мода — контроль агрессивности ограничения предметов конкретного мода
  • Глобальный ползунок интенсивности — настройка всех модов сразу
  • Белый список — отметка предметов, которые никогда не должны ограничиваться. Добавьте их через панель настроек или, удерживая предмет, нажмите кнопку белого списка на HUD
  • Правила для отдельных предметов — точная настройка для конкретных типов предметов

Языки: Встроено 12 языков: English, 简体中文, 繁體中文, Deutsch, Español, Français, 日本語, 한국어, Polski, Português (Brasil), Русский, Türkçe.

Настройки: Внутри игры: нажмите ESC → кликните "ItemOptimizer". Все сгруппировано в сворачиваемые секции. Конфигурация сохраняется автоматически.

Совместимость: Мод использует Harmony для патча ванильных методов. Большинство модов сосуществуют без проблем. Наиболее вероятная точка конфликта — другие моды, также изменяющие MapEntity.UpdateAll. Если возникнет проблема совместимости, сообщите о ней — поддержка будет добавлена.


FAQ

В: Почему некоторые системы на моей подлодке работают неправильно?

Для снижения ванильных затрат каждый кадр этот мод заменяет или ограничивает несколько систем:

  • Сигнальные цепи компилируются в граф пакетной оценки. Режим Aggressive также перехватывает сквозную передачу Relay и компоненты Delay — небольшое количество цепей со StatusEffects, привязанными к соединениям, могут вести себя иначе.
  • Датчики движения/воды, Relay, передача энергии и накопители энергии заменены на более легкие реализации; краевые случаи могут немного отличаться от ванильных.
  • Неактивные предметы и зоны вдали от игрока заморожены или ограничены, реактивируясь при приближении.

В: Как вернуть все назад, если что-то сломалось?

Каждую оптимизацию можно включить или отключить отдельно. Внутри игры: нажмите ESC → кликните "ItemOptimizer":

  • Проблемы со схемами: переключите "Signal Graph Accel" в Off или понизьте режим с Aggressive до Accelerate
  • Проблемы с компонентами: отключите конкретную перезапись (например, отключите перезапись Relay, чтобы вернуться к ванильному поведению)
  • Предметы или зоны заморожены слишком агрессивно: отключите Zone Scheduling или уменьшите ползунок интенсивности

Изменения вступают в силу без перезагрузки — конфигурация сохраняется автоматически.


Ссылки автора мода:
Source Code (GitHub)
Discord

Нет комментариев. Ваш будет первым!