NAVAL UPDATE
Эй, моряк! В этом месяце разработчики представляют строящиеся игроками корабли, глубокое море, тропические острова, корабли-призраки, новый и улучшенный ИИ и многое другое. Обновление получилось действительно масштабным. Если вы планируете начать игру с обновлённой метой, кораблями и морским контентом, вы можете подобрать подходящий сервер в нашем разделе серверов.
05 февраля 2026
DEVBLOG

Самодельные корабли
Разработчики добавили корабли, создаваемые игроками, открывающие новый способ исследования морей, включая Глубокое море.
Разместите новый размещаемый объект Boat Building Station (Станция постройки корабля) в воде и начинайте строительство вместе со своей командой. Используйте новый Boat Building Plan (Чертёж постройки корабля), чтобы собрать корабль своей мечты, применяя новый набор строительных блоков, предназначенных специально для судов.
Добавляйте руль (Steering Wheel), якорь (Anchor), паруса (Sails), двигатели (Engines), доски (Planks), рампы (Ramps) и пушки (Cannons), чтобы завершить постройку судна и отправиться в Глубокое море.


Размещение и продуманная установка двигателей и парусов имеют большое значение, если вы хотите получить мореходный корабль, так как они напрямую влияют на управляемость и скорость. Паруса и двигатели можно переворачивать с помощью радиального меню, что позволяет выполнять аккуратные манёвры задним ходом.


Обязательно установите кодовый замок (Lock Code) на руль, чтобы предотвратить несанкционированный доступ или кражу вашего новенького корабля.
Обычные размещаемые объекты можно устанавливать на кораблях. Если предмет работает на буксире (Tugboat), он будет работать и здесь.
Если после постройки вы поняли, что корабль движется только по кругу, используйте режим Deploy & Edit (Размещение и редактирование) — он позволяет быстро и удобно разместить станцию постройки вокруг корабля. Этот режим недоступен в Глубоком море.
Новые размещаемые объекты для кораблей
Чтобы сделать корабль полностью готовым к плаванию, разработчики добавили новые размещаемые объекты, предназначенные специально для судов.
Boat Building Station (Станция постройки корабля)
Станция постройки корабля размещается в глубокой воде и используется для строительства и редактирования корабля.

Building Plan (Чертёж постройки)
Чертёж постройки корабля работает аналогично привычному строительному чертежу, но предназначен для судов.

Sails (Паруса)
Лист прочной ткани, натянутый для улавливания ветра и продвижения корабля вперёд.

Helm (Руль)
Обязательный элемент любого мореходного судна. Используется для управления направлением движения и оснащён встроенным замком для защиты корабля, когда вы не за штурвалом.

Engine (Двигатель)
Мощный мотор, работающий на низкосортном топливе и быстро его расходующий. Громкий, прожорливый и неэффективный, но незаменимый в ситуациях, когда нужно уйти от опасности, догнать других игроков или выбраться из сложного положения. Иногда скорость стоит затрат.

Anchor (Якорь)
Тяжёлый якорь, используемый для предотвращения дрейфа корабля. Опустите его, чтобы зафиксировать позицию судна. Без якоря корабль может быть снесён к берегу.

Cannon (Пушка)
Мощное морское оружие, предназначенное для уничтожения кораблей других игроков. Заряжается ядрами (Cannon Balls).

Small Ramp (Малая рампа)
Используется для преодоления разрывов и создания быстрых точек доступа. Идеально подходит для абордажа других судов или выхода на сушу с воды.

Plank (Доска)
Применяется для перекрытия разрывов, абордажа других кораблей и решения мелких разногласий путём сталкивания друзей в открытую воду.

Глубокое море
Глубокое море — это новый офшорный регион, в который можно отправиться на кораблях. Это зона с высоким риском и высокой наградой, намеренно сделанная суровой и беспощадной.

Попасть туда можно, отплыв к краю карты на достаточно мощном судне, таком как корабли, созданные игроками, RHIB или новые катера PT.



Это не место для постоянной жизни: здесь нельзя строить, и ничего не возрождается. Кто первый пришёл — тот и получил. Глубокое море будет открываться и закрываться периодически, подобно мировому событию.
Внутри региона можно исследовать новый контент, описанный ниже в этом девблоге:
- Тропические острова
- Плавучие города
- Корабли-призраки
- Корабли под управлением учёных

У разработчиков есть большие планы по расширению Глубокого моря и использованию его как связующего звена между мирами.
Корабли-призраки
Корабли-призраки — это неподвижные суда, разбросанные по Глубокому морю. По своей сути они похожи на монументы и наполнены лутом, который игроки могут собирать, перемещаясь на своих кораблях.


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


Разработчики надеются, что корабли-призраки, наряду с другими точками добычи, такими как тропические острова, станут достаточной мотивацией для регулярных вылазок в Глубокое море.
Плавучие города Глубокого моря
Исследуя Глубокое море, вы можете наткнуться на Плавучие города. Они построены из заброшенных барж и каркасов недостроенных нефтяных вышек. Эти импровизированные монументы служат безопасным убежищем для игроков всех типов.

На данный момент на сервере могут появляться четыре варианта Плавучих городов, при этом каждый из них предлагает одинаковый набор возможностей. В их числе — причалы, где можно безопасно пришвартовать свой корабль, а также различные NPC-торговцы, продающие оружие, снаряжение, еду и медицинские предметы.


Рядом расположена фермерская баржа, доступ к которой можно получить за небольшую плату, что даёт возможность собрать свежий урожай. По всему монументу между платформами размещены знакомые элементы безопасных зон, включая переработчики, верстаки, исследовательские столы и переработчики топлива.

В центре каждого Плавучего города находится казино Deep Deck — гостеприимное место для отдыха и развлечений уставших моряков. Здесь можно встретить других выживших, расслабиться в бассейне, насладиться музыкой и проиграть свой скрап в азартных играх.

Главное — вести себя спокойно. Если начать устраивать беспорядки, охранные турели быстро напомнят, почему это была плохая идея.
Острова Глубокого моря
На протяжении многих лет океан был лишь синим пустым пространством между вами и нефтяными вышками. С этим обновлением разработчики добавляют совершенно новый биом в Глубоком море — тропические острова.

Эти микро-острова полностью отделены от материка. Здесь вас ждут белые пески, густые пальмы и даже новое вкусное природное угощение. Сосен вы здесь не увидите.


Полупроцедурная генерация делает каждый остров уникальным. На одних можно найти древние руины, на других — богатые залежи руды, а иногда и то и другое сразу.

Но будьте осторожны. Вы не единственные, кто отправился туда в поисках добычи.
Корабли учёных
В Глубоком море появился новый тип судна — катер PT. Его можно встретить только в Глубоком море. Он медленнее RHIB и расходует больше топлива, но при этом обладает повышенной прочностью и серьёзной огневой мощью.

Глубокое море населено кораблями учёных.
Эти суда (включая RHIB и новый PT-катер) управляются учёными, которые патрулируют Глубокое море организованными группами и активно ищут игроков для атаки. Иногда они охраняют взломанные ящики на борту Призрачных кораблей.
Каждое судно можно полностью зачистить от учёных и угнать себе.
Интересно, что удастся найти на борту?

Каждый PT-катер оснащён двумя турелями. Одна оборудована спаренными пулемётами калибра .50, вторая — одиночным, но более точным пулемётом того же калибра. Обе турели перезаряжаются стандартными патронами 5.56.

Обновление RHIB
RHIB давно нуждался в доработке, и Морское обновление стало идеальным моментом для этого. Модель и текстуры были обновлены, а также добавлена новая модель ящика для хранения.

Теперь RHIB оснащён рабочим компасом и экранами с картой, которые помогают ориентироваться в океане.

Новый ИИ учёных на нефтевышках и в море
Если вы часто сражались с учёными, вы знаете: попытки подкрасться или зайти с фланга почти всегда заканчивались смертью.
Они всегда знали, где вы находитесь, мгновенно разворачивались на 180 градусов и начинали точно стрелять, если вы пытались сыграть умно и обойти их.
Из-за этого самым безопасным способом оставалось либо отстреливать их с большого расстояния, либо стоять за узким проходом и ждать, пока они по одному выбегут к вам.
В итоге зачистка монументов с учёными превращалась в проверку ресурсов, а не навыков.
Всё сводилось к простому вопросу: знаете ли вы «сырную» тактику и хватает ли у вас патронов и бинтов, чтобы их перефармить?

Новый ИИ учёных постепенно вводится в игру, но пока только на нефтевышках, призрачных кораблях и островах Глубокого моря.
Отличить их можно по морскому камуфляжу и квадратному визору.
В отличие от старых учёных, они не видят сквозь стены и полагаются на звуки и недавние визуальные контакты, чтобы найти игрока.
Это означает, что теперь можно приманивать их шумом или выглядыванием, а затем заходить с другой стороны и стрелять в спину.
Этому также способствует их более медленная реакция.
Если вы появляетесь под неожиданным углом, они будут застигнуты врасплох, и вы сможете устранить их до того, как они успеют среагировать.
Кроме того, они больше не будут бездумно забегать в узкие проходы, где их легко отстреливать. Вместо этого они будут пытаться заходить с фланга, использовать дымовые гранаты, атаковать группой или устраивать засады с другой стороны.
Также они стали гораздо осторожнее против снайперов: если по ним попали или они услышали выстрел, вся группа укрывается и ждёт.
Разработчики будут внимательно следить за отзывами и продолжать дорабатывать этот ИИ.
Когда он будет в достаточно хорошем состоянии, рассматривается возможность перевода остальных учёных на основном острове на новую систему ИИ.
Вид от первого лица у планировщика строительства
Планировщик строительства при постройке или размещении объектов всегда имел модель от третьего лица, которую видят другие игроки, но никогда не имел полноценной модели от первого лица.

Разработчики решили, что будет правильно, если то, что видят другие, совпадёт с тем, что видите вы сами, поэтому у планировщика строительства появился полноценный viewmodel от первого лица.
Новые миссии
В этом обновлении добавлено 5 новых миссий в морской тематике.
Их можно взять у сочетания новых и уже существующих NPC, выдающих задания. Некоторые из этих миссий потребуют отправиться в Глубокое море, другие, наоборот, будут проходить на основном острове.

Это обновление также включает большой объём внутренней работы по улучшению процесса создания и редактирования миссий. С миссиями ещё планируется много изменений, но теперь разработчики находятся в гораздо более удобной позиции для дальнейшей работы с этой системой, чем раньше.
Дополнительно были внесены несколько QOL-исправлений и улучшений для уже существующих миссий и диалогов с NPC, а также сопутствующие фоновые оптимизации.
Лодки у большой нефтевышки
Теперь лодки учёных будут появляться у Большой нефтевышки вместе с ящиком, добавляя игрокам дополнительную сложность при захвате нефтевышки с моря.

RHIB (штурмовые катера) будут патрулировать территорию вокруг Большой нефтевышки, не позволяя игрокам свободно приближаться. Эти лодки будут появляться заново каждый раз при ресете нефтевышки.

Учёных можно убить и забрать лут, находящийся на борту лодок. Украденные лодки останутся в мире даже после ресета нефтевышки.
Artist Pack DLC
В Rust одно из самых разнообразных сообществ игроков среди всех популярных игр: от хардкорных PvP-игроков до дружелюбных (и не очень) RP-энтузиастов. Чтобы отразить это разнообразие, разработчики взяли лучшие цифровые кисти и создали Artist DLC Pack — набор продуманных и стильных предметов, позволяющих самовыражаться, будь то создание уютного портрета или разрисовывание базы соседа.

Paintball Gun и Overalls (Пейнтбольное ружьё и комбинезоны)
Превратите тактический бой в искусство с помощью Paintball Gun и Overalls. У оружия используется уникальный тип боеприпасов — пейнтбольные шарики. Заряжайте маркер, выбирайте цвет своей команды и создавайте сцену. Доступно 5 цветов для нескольких команд.
Пейнтбольные шарики наносят разный урон в зависимости от того, надеты ли комбинезоны у атакующего игрока и у получающего урон. Для администраторов серверов предусмотрены отдельные серверные convar-параметры для настройки урона:paintballstandarddamage и paintballoverallsdamage.

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

Paintable Reactive Target (Раскрашиваемая реактивная мишень)
Разукрасьте собственные мишени с помощью этого скина для Reactive Target. Раскрашивать можно как саму мишень, так и ведро-шлем. В качестве дополнительной особенности ведро работает как голова игрока, позволяя тренировать точность попаданий в голову.

Ornate Frames (Декоративные рамки)
Добавьте нотку элегантности в свою базу с помощью Ornate Frames. Вы можете рисовать на них или добавлять фотографии, а после завершения работы задать рамке уникальное описание. Доступно 5 размеров — от маленького до очень большого.

Light-Up Frames (Светящиеся рамки)
Подсветите свои произведения искусства с помощью набора из 5 светящихся рамок. Они поддерживают IO-подключение, позволяя включать и выключать подсветку, подчёркивая ваши работы.

Shutter Frames (Рамки с жалюзи)
Разворачивайте свои дизайны с помощью рамок с жалюзи. Доступно 5 размеров. Жалюзи можно поднимать и опускать вручную или через IO, открывая возможности для RP-ивентов, шоу или ловушек.

Frameless Canvases (Холсты без рамок)
Если даже самая большая рамка недостаточно велика для ваших амбиций, используйте набор из 5 холстов без рамок. Они позволяют создавать масштабные настенные рисунки по-настоящему эпических размеров.

Portable Easel (Переносной мольберт)
Перенесите своё творчество на свежий воздух с этим уникальным размещаемым предметом. На мольберт можно установить любую рамку до большого размера и рисовать где угодно. В режиме рисования можно переключать фон и сам холст, помогая реализовать творческое видение. Поддерживаются любые цвета, включая чёрный.

Paintable Window (Раскрашиваемое окно)
Хотите сделать витраж, аквариум, витрину магазина или ловушку в стиле «Один дома» — Paintable Window пригодится. Этот предмет является скином для Strengthened Glass Window.

Rosette Award Sprays (Спреи наградных розеток)
В состав Artist DLC Pack входят 4 уникальных спрея, используемых с инструментом Spraypaint:
1-е место, 2-е место, 3-е место и… последнее место. Используйте их по своему усмотрению.

New workshop skinnable: SKS
В этом месяце разработчики добавили новый предмет для мастерской — SKS.
SKS давно был одним из самых популярных запросов от сообщества скин-мейкеров, и разработчики рады были его добавить. Это одно из самых новых видов оружия, и теперь сообщество сможет поработать с его обновлённой визуальной частью.

Чтобы создать собственный скин для SKS, перейдите во внутриигровую мастерскую, найдите оружие SKS, скачайте модель и добавьте свои материалы.
Производительность серверов (Server performance)
Если вы следили за разработкой этого обновления, то, вероятно, знаете, что в прошлом году его пришлось отложить из-за серьёзных проблем с производительностью серверов. С тех пор разработчики сосредоточились на том, чтобы вернуть производительность серверов как можно ближе к уровню, который был до морского обновления.
Хотя многие проблемы были связаны с новым контентом, на этом работа не остановилась — было внесено множество улучшений и в старые узкие места производительности.
Некоторые из объяснений ниже могут быть довольно техническими, но разработчики решили показать сам процесс работы над подобными проблемами.
Производительность готовки и печей (Cooking / Oven Performance)

Разработчики заметили большие затраты по времени кадра, связанные с процессом работы печей — сюда относятся костры, плавильни, барбекю и другие подобные объекты. При более детальном анализе выяснилось, что у этой системы было сразу несколько проблем.


Процесс готовки выполнялся каждые 0,5 секунды без какой-либо рандомизации. Если одновременно работало много печей, их обновления «синхронизировались», вызывая резкие пики нагрузки. В искусственном тесте с 500 печами, работающими одновременно, обработка занимала до 18 мс за кадр.
Теперь для печей введён лимит: не более 0,25 мс на кадр, что сглаживает нагрузку при масштабной работе. Чтобы это не замедляло сам процесс, разработчики также оптимизировали внутреннюю логику работы печей.
Ранее при создании результата (например, 1 фрагмента металла) система каждый раз создавала новый предмет и пыталась добавить его в выходной слот, где он чаще всего просто увеличивал существующий стак, после чего временно созданный предмет удалялся. Теперь сначала проверяется наличие предмета в выходном слоте, и при его наличии просто увеличивается количество, без создания нового объекта. Такой подход уже давно используется в индустриальной системе.
Также каждая печь ранее при каждом тике перебирала все предметы в инвентаре в поисках топлива — теперь это значение кэшируется. Кроме того, инвентарь печи помечался как изменённый при каждом обновлении процесса готовки (чтобы обновлять анимацию прогресса на иконке предмета). Теперь это происходит только при прохождении определённых порогов (5%, 10% и так далее), что значительно снижает нагрузку на обновление инвентаря и сетевую синхронизацию.
В результате этих изменений тест с 500 плавильнями, перерабатывающими металлическую руду, теперь занимает максимум 0,25 мс за кадр, а зачастую и меньше — при этом для игроков визуально ничего не изменилось.
Производительность индустриальной системы (Industrial Performance)

Индустриальная система всегда была сложным местом с точки зрения производительности серверов. За годы игроки стали строить всё более сложные и запутанные базы с трубами и конвейерами, что постепенно вскрывало новые узкие места в логике работы системы.
В этом месяце разработчики получили копию одной из баз с живого сервера, которая показывала крайне плохую производительность и стала удобным бенчмарком. В некоторых случаях эта база тратила до 20 мс за кадр только на полную обработку всей индустриальной системы, что, очевидно, недопустимо для любого сервера.
Основной прирост производительности был достигнут за счёт сокращения количества итераций по контейнерам с предметами и другим массивам данных. На таком масштабе даже простое получение предмета из контейнера может быть дорогой операцией, так как порядок предметов в памяти не всегда совпадает с порядком слотов в контейнере. В результате системе приходилось перебирать весь контейнер, чтобы найти предмет в нужном слоте.
Если умножить это на каждый слот каждого входа, проверку каждого выхода и выполнение этого процесса на каждом тике — итоговая стоимость быстро становилась огромной. Создание быстрого механизма поиска, к которому можно обращаться в процессе работы индустриальной системы, дало огромный прирост, в некоторых случаях позволяя избежать более 20 000 переборов элементов.

Проверка предметов, проходящих через фильтры, также занимала заметное время. Теперь входной контейнер пропускается через фильтр один раз в начале процесса, что позволило избежать дополнительных переборов. Это также дало возможность убрать несколько уровней вложенных циклов for.
В результате описанная выше проблемная база теперь достигает пика примерно 3 мс за кадр. Это всё ещё заметная нагрузка, но по сравнению с исходным состоянием — значительное улучшение.
Система отношений (Relationship System)
Система RelationshipManager управляет контактами — она делает снимки игроков, которых вы встречаете, и отслеживает ваши отношения с ними. Функционально она довольно ограничена, но на серверах с высокой онлайновой нагрузкой занимала заметное время.

Ранее система перебирала всех игроков на сервере, находила тех, кто находится в радиусе действия, проверяла их видимость (через физические проверки) и при необходимости создавала новую запись об отношениях. Также она проходилась по всем существующим контактам игрока, вычисляла, сколько людей пометили его как враждебного, и при необходимости автоматически помечала его как hostile (например, ник отображается красным).
Всё это выполнялось каждую секунду, без защиты от ситуации, когда множество игроков запускали обновление в одном и том же кадре. В результате на загруженных серверах это иногда приводило к очень длинным кадрам — до 0,75 мс.
Разработчики перевели этот процесс на бюджетируемую очередь, ограничив его максимумом 0,15 мс на кадр. Если обновлений больше — они переносятся на следующий кадр. Так как системе не требуется абсолютная актуальность в реальном времени, небольшая задержка допустима и практически незаметна.
Также перерасчёт враждебности теперь выполняется только тогда, когда игрок действительно изменяет контакт (друг / враг / нейтральный), а не каждый тик, как раньше. Дополнительно проверка линии видимости при создании новых контактов теперь сначала использует серверную систему окклюзии, что позволяет во многих случаях вообще не запускать дорогие физические проверки.
Размеры коллайдера игрока (Player Collider Sizes)

В Rust поддерживается изменение размеров коллайдера игрока в отдельных состояниях — когда игрок ранен, спит, сидит в транспорте и т.п. Ранее эта логика работала крайне неэффективно: каждый кадр сервер перебирал всех игроков и обновлял размеры коллайдера при необходимости.
Даже на сервере со средним онлайном это занимало около 0,25 мс на кадр, несмотря на то, что в большинстве случаев никаких изменений не требовалось.
Теперь система также переведена на бюджетируемую очередь, ограничивающую обработку до 0,05 мс на кадр. Обновления распределяются по нескольким кадрам, снижая пиковую нагрузку.
При этом, так как размер коллайдера — критически важная вещь, разработчики добавили мгновенное ручное обновление размеров в моменты смены состояния игрока (например, когда он ложится спать). Это гарантирует, что коллайдер обновляется сразу, а не с задержкой в несколько кадров.
Объёмы привязки (Parenting Volumes)
В Rust существует система, называемая parenting volumes — специальные объёмы, которые определяют, находится ли игрок или другой объект рядом и должен ли он быть «привязан» к другому объекту (например, к транспорту). Из-за большого количества крайних случаев дополнительно выполняются проверки (в том числе физические), чтобы избежать ошибок.
Игрокосозданные лодки активно используют эту систему и делают это чаще, чем любые другие объекты в игре. В процессе разработки Naval Update выяснилось, что она создаёт серьёзную нагрузку на сервер.
Пример: 100 лодок, каждая из которых состоит из 3 строительных блоков, и 3 спящих игрока на борту.

Стоимость обработки такой сцены составляла около 3,5 мс на кадр, что слишком много для неактивно используемой системы.

Логика, выполняемая при TriggerParent.TickMode = 1 (значение по умолчанию), была переписана:
- используется собственная очередь обработки вместо
Invoke, что снижает задержки при изменениях физического мира; - применяется пакетная обработка и Burst-задачи для распараллеливания;
- пропускается обработка, если объём и его содержимое не двигались и не менялись.
Результаты после изменений:
- 1,4 мс (−61%), если все лодки движутся;
- 0,25 мс (−93%), если все лодки статичны.


Спайки процедурного спавна (Procedural Spawning Spikes)
При анализе телеметрии производительности разработчики заметили регулярные сильные лаг-спайки, происходившие примерно раз в минуту.

Причиной оказалась система популяций сущностей, отвечающая за респавн объектов (в частности, мусорных куч — junkpiles). Она отслеживает плотность популяции, затем делает множество случайных выборок по карте, отбраковывает неподходящие точки и использует оставшиеся для спавна.
Для анализа был создан специальный инструмент (spawn.dump_map <popname> [count=100]), визуализирующий процесс выборки и причины отклонения точек.
До исправлений система делала 25 000 попыток, чтобы заспавнить 800 junkpile-ов.
Было выявлено несколько багов:
- они мешали спавну новых сущностей;
- при этом система всё равно продолжала делать выборки, даже если спавнить было нечего.
После исправлений повторный тест показал всего 3 019 попыток для тех же 800 объектов.
Это также положительно сказалось на максимальном времени кадра — крупные лаг-спайки теперь возникают значительно реже.

Производительность автотурелей (Auto Turret Performance)
Автотурели уже давно являются одной из самых ресурсоёмких систем для серверов. Причина в том, что каждая турель каждые несколько секунд обновляет углы наведения, и это происходит для каждой турели на сервере.
Ранее все эти обновления углов постоянно синхронизировались по сети со всеми клиентами поблизости. Это создавало большой и совершенно ненужный сетевой трафик.
График ниже (в оригинале девблога) показывает разницу во времени выполнения метода SendAimDir(), который отвечал за отправку этих данных. Патч был выкатан на staging-серверах в 22:00 — резкое падение нагрузки хорошо заметно. Эти изменения также затронули баллисту (Ballista) и пушку (Cannon), снизив и их сетевую нагрузку.

Кроме того, обновление углов выполнялось для всех турелей в основном потоке без балансировки или ограничений.
Чтобы решить проблему, были добавлены два новых бюджетных цикла, которые не позволяют автотурелям чрезмерно нагружать сервер. Эффект особенно заметен на крупных серверах. Все бюджеты настраиваются через следующие ConVar-переменные:
- NEW —
tick_update_ms(по умолчанию 1)
Максимальное время (в мс) на кадр для обновления углов и общей логики турелей. - NEW —
ammo_update_ms(по умолчанию 0.1)
Максимальное время (в мс) на кадр для проверки боеприпасов. scan_budget_ms(по умолчанию 0.5)
Время (в мс) на кадр, выделяемое на сбор данных об углах наведения турелей.
Производительность плавучести (Buoyancy Performance)
В рамках подготовки Naval Update разработчикам понадобилось обеспечить корректную работу системы воды с большим количеством плавающих объектов в Глубоком море. Это касается не только новых лодок игроков, но и уже существующих объектов: тел, лута и прочего.
Код плавучести уже был достаточно оптимизирован и использовал современные API для получения уровня воды и проверки столкновений. Однако каждая плавающая сущность выполняла собственную симуляцию, обрабатывая все шаги плавучести по отдельности.
Вместо этого система была переработана для пакетной обработки:
- высоты воды для всех объектов теперь вычисляются одновременно;
- расчёты выполняются параллельно на рабочих потоках;
- силы применяются обратно к объектам уже в основном потоке.
Ранее логика работала так:
для каждой точки объекта проверялась высота воды → применялись силы подъёма.
Теперь:
все высоты для всех объектов считаются сразу → силы вычисляются → применяются одним проходом.

Результат — в 4 раза быстрее в сценарии с 200 лодками (каждая с несколькими точками плавучести) и значительно лучшая масштабируемость при увеличении числа объектов.
Кастомный Unity / PhysX (Custom Unity / PhysX)
Физика уже долгое время остаётся одним из главных узких мест производительности серверов Rust. Помимо сокращения количества коллайдеров в мире, до недавнего времени у разработчиков не было способов существенно снизить эту нагрузку. Однако в прошлом году появилась возможность вносить кастомные изменения в собственную версию движка Unity и выпускать обновления игры уже с ними.
Физический тик можно разбить на множество этапов. Самым затратным для Rust является этап broadphase — это стадия, на которой быстро определяется, какие пары коллайдеров потенциально могут столкнуться, прежде чем запускать более дорогие расчёты точных контактов.
Из-за огромных размеров карты и высокой плотности коллайдеров в больших базах этот этап становился крайне дорогим по ресурсам.

Разработчики внесли точечные изменения в физический движок PhysX, которые значительно ускоряют эту часть физического тика. Самым значимым улучшением стала параллелизация broadphase: каждая область теперь обрабатывается как отдельная задача, распределяемая между всеми доступными потоками, после чего результаты объединяются в основном потоке.
На графике в оригинальном девблоге показано среднее время, затрачиваемое на физический тик за длительный период на одном из самых активных серверов. Середина графика — момент перехода на новую версию Unity с кастомными библиотеками PhysX. Прирост производительности оказался весьма значительным.
Чтобы убедиться в безопасности изменений, перед Naval Update был выпущен отдельный серверный патч только с обновлением Unity/PhysX. Как обычно, повышение производительности быстро конвертировалось в увеличение лимитов игроков — и цикл начался заново.
В дальнейшем планируются новые улучшения PhysX и Unity, так что производительность будет расти и дальше.
Производительность игроков на транспорте — лодки (Mounted Player Performance – Boats)
Ранее, когда игрок находился на транспорте, его позиция каждый кадр принудительно обновлялась, вместо того чтобы просто «припарентить» игрока к объекту. Родительская привязка автоматически перемещает игрока вместе с объектом практически бесплатно, тогда как ручное обновление позиции — дорогостоящая операция.
Существуют причины в кодовой базе, по которым раньше требовалось обновлять позицию каждый кадр (в основном из-за parenting volumes), однако разработчикам удалось обойти достаточное количество этих ограничений, чтобы внедрить родительскую привязку хотя бы для части транспорта.

На данный момент это изменение применяется только к лодкам, но в будущем планируется расширить его и на другие средства передвижения.
Дополнительную нагрузку ранее создавал ИИ, находящийся на транспорте — в этом патче таких сущностей стало заметно больше. К счастью, внесённые изменения также устраняют рост нагрузки, вызванный ИИ.
Ранее, даже на тестовом сервере с небольшим числом игроков (~20), на перемещение игроков тратилось около 0.6 мс на кадр.
Теперь, даже с сотнями ИИ, метод родительской синхронизации занимает около 0.02 мс, а основной метод MountedPlayerSync вовсе не вызывается.
Производительность вагона-казино (Caboose Performance)
В прошлом месяце разработчики заметили необычное падение производительности при перемещении рядом с Outpost. Выяснилось, что статичный вагон-кабуз поезда использовал чрезмерное количество canvas-элементов UI. Эта проблема была исправлена.

Та же самая ошибка также негативно влияла на игроков, находящихся рядом с вагоном-кабузом, встречающимся в мире.
Производительность ловушек: дробовиковая ловушка и огнемётная турель (Shotgun Trap / Flame Turret Performance)
Были обнаружены нестандартные всплески нагрузки, вызванные огнемётными турелями и дробовиковыми ловушками. Это происходило каждые несколько секунд в больших базах без шкафа (TC). Ситуация редкая, но тем не менее проблема была устранена.
.avif)
Дополнительно была снижена сетевая нагрузка от огнемётных турелей. Ранее они отправляли данные о своём вращении всем игрокам в сетевом радиусе каждые 0.1 секунды, что было избыточно и не требовалось.
Server Profiler — Immediate Mode (немедленный режим)
За несколько дней до внутреннего локдауна разработчики выкатили экспериментальное улучшение Server Profiler — возможность захватывать конкретные участки кода. Это полезно при поиске лагспайков или замерах редко выполняемого кода.
Примеры использования:
// записать Run() и всё внутри, затем экспортировать снапшот using(ServerProfiler.RecordScope("IndustrialQueue", RecordIndustrialQueueServerVar)) { industrialQueue.Run(); }
// или // вести запись постоянно и экспортировать только если выполнение превысит 5 мс using(ServerProfiler.RecordScopeIfSlow("IndustrialQueue", TimeSpan.FromMilliseconds(5), RecordIndustrialQueueServerVar)) { industrialQueue.Run(); }
В обоих случаях будет создан файл IndustrialQueue.json.gz, который можно найти локально в:server/<ident>/profiler/.
Чтобы избежать засорения снапшотами и чрезмерной нагрузки (запись всё ещё снижает производительность, экспорт происходит асинхронно):
- Настоятельно рекомендуется иметь флаг, включающий или отключающий активность scope’ов (в примере —
RecordIndustrialQueueServerVar) - После экспорта действует 30-минутный кулдаун, в течение которого scope’ы неактивны
(настраивается черезprofile.ExportIntervalS, можно сбросить командойprofile.ResetExportInterval) - Функция может быть полностью отключена через
profile.ImmediateModeEnabled(по умолчанию включено)
Функция предназначена для кода, который выполняется от 0.05 мс и выше. Не рекомендуется использовать её для профилирования дешёвых операций, так как сама установка хуков профайлера имеет стоимость.
Twitch Drops — Home Brewed 4
Twitch Drops возвращаются!
Период проведения: с 5 по 15 февраля.
Смотрите трансляции от талантливых и набирающих популярность авторов из сообщества Rust и получайте эксклюзивные награды.

Не забудьте привязать аккаунты и забрать свои Drops после просмотра стримов на Twitch.
Скидка 50% на Rust

В честь долгожданного релиза Naval Update игра Rust временно продаётся со скидкой 50%.
Загляните в Steam, чтобы купить игру со скидкой или подарить её другу и набрать новых членов экипажа для морских приключений.