March 6

Обновление крафтинга

Bálint [Rust]

Обновление этого месяца - это праздник изменений, новых способов приготовления пищи и крафта, домашних кур, пчёл и пирогов, брони, оптимизаций и многого другого.



Верстак для приготовления пищи

Кухонный верстак - это новое приспособление, которое позволяет готовить по новым рецептам. Здесь также можно создавать рецепты для стола смешивания.

@Balint_Rust

Многие из новых предметов, которые можно получить с помощью верстака для готовки, дают бонусы к характеристикам и модификаторам, так что попробуйте их!

@Balint_Rust
@Balint_Rust
@Balint_Rust

Теперь у приготовления пищи есть визуальная модель для всех кухонных принадлежностей, и вы можете готовить в режиме реального времени.


Курятник

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

@Balint_Rust

Как только вы получите яйцо и построите курятник, вы сможете поместить в него яйцо и использовать кнопку «Высидеть», чтобы вырастить свою первую курицу. У каждой курицы есть 4 характеристики: голод, жажда, любовь и солнечный свет. Голод и жажда говорят сами за себя: куры будут есть и пить из ячеек для предметов в курятнике. Любовь удовлетворяется, если время от времени слегка похлопывать кур по голове, а солнечный свет удовлетворяется, если курятник находится на солнце. Если эти потребности будут удовлетворены, ваши куры будут чувствовать себя лучше, а если ими пренебрегать, куры начнут медленно терять здоровье и в конце концов погибнут.

Если ваши куры довольны, они начнут периодически нестись в курятнике.


Порча продуктов питания

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

@Balint_Rust

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


Треугольная грядка

@Balint_Rust

Чтобы максимально эффективно использовать пространство на ваших фермах, разработчики выпустили новую версию грядки, которая подходит для треугольного фундамента или потолка. В неё можно посадить 4 семечка одновременно, и она имеет такое же максимальное насыщение почвы, как и маленькая грядка (3000).

Также добавили соответствующую железнодорожную версию грядки, которая будет разблокирована для владельцев DLC Frontier. Чтобы лучше поддерживать скины грядки, сделали существующий грядку Railroad и новую версию Triangle настоящими скинами, поэтому они не будут появляться как отдельные предметы в меню ремесел и будут совместимы с баллончиком.

@Balint_Rust

Пчёлы

Пчёлы полезны игрокам по ряду причин. Их можно разводить или превращать в оружие.

Дикие Ульи

Во-первых, вам нужно найти улей в дикой природе. У них есть шанс создать дом на дубе.

@Balint_Rust

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

@Balint_Rust

После сбора сотов: извлеките из них мёд и положите в свой инвентарь. Мёд используется в ряде рецептов приготовления пищи, а также является самостоятельным продуктом. Его также можно продать в Бандитском лагере за дополнительные ресурсы.

Улей

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

@Balint_Rust
@Balint_Rust
@Balint_Rust

Это размещаемый игроком объект, который позволяет создавать соты. Поместите ядро внутрь. Каждое ядро будет постепенно повышать свой уровень, переходя с 3-го на 1-й. Соты 1-го уровня — лучшие, и со временем игроки будут получать с них больше сот. Не забывайте о костюме химзащиты, пока собираете соты!

У ульев есть несколько характеристик, которыми вам нужно управлять:

Нахождение на улице, Влажность и Температура.

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

Пчелиная Граната

Наконец-то: у нас есть «Пчелиная граната». Это новое оружие, которое позволяет создавать надоедливые «Рои пчёл» по вашему желанию.

@Balint_Rust

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

@Balint_Rust

Пироги

Наконец-то!

Вот целая подборка новых рецептов пирогов, которые можно приготовить и съесть!

@Balint_Rust
@Balint_Rust

У каждого пирога есть уникальная характеристика или бонус-модификатор, так что попробуйте их все и найдите свой любимый.


Инженерный верстак

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

@Balint_Rust

Инженерный верстак открывается на 1-м уровне, предоставляя ранний доступ к базовым схемам, управлению водой и промышленным установкам.

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


Изменения качества жизни

@Balint_Rust

Дальность полёта дрона увеличилась с 300 до 600 метров, а запас здоровья удвоился.


@Balint_Rust

Снижена стоимость изготовления деревянной брони.


@Balint_Rust

Все мясные модели были заменены, а многие иконки обновлены.


@Balint_Rust

Теперь можно скрывать генетическую информацию при просмотре растений.


@Balint_Rust

Время изготовления более чем 40 предметов было сокращено.


@Balint_Rust

Энергопотребление неоновых вывесок сократилось вдвое.


Хоппер

Хоппер - это новое приспособление, которое можно прикрепить к большому деревянному ящику или бочкам для хранения. При включении он всасывает все выпавшие предметы в небольшом радиусе вокруг хоппера и помещает их в ящик. Он также служит адаптером для хранения, так что вы можете подключать промышленные трубы непосредственно к ящику, не прибегая к помощи дополнительного адаптера.

@Balint_Rust

Если игрок или животное погибнет в зоне действия Хоппера, оно будет засосано и собрано, а полученное мясо, кости, животный жир и т. д. будут помещены в ящик.

Если рюкзак упадёт в зоне действия Хоппера, он будет втянут внутрь и распакован.

Для всех вышеперечисленных взаимодействий требуется, чтобы Хоппер мог видеть предмет/труп и чтобы ему не мешали строительные блоки.


@Balint_Rust

Владение предметами

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

@Balint_Rust

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


Слоты для брони

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

@Balint_Rust

Предметы брони могут иметь от 0 до 3 слотов, и вы можете комбинировать пластины, которые хотите вставить.

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


Косметические цветы

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

@Balint_Rust
@Balint_Rust
@Balint_Rust
@Balint_Rust
@Balint_Rust

Также есть новый горшок для растений, который удовлетворит все ваши потребности в садоводстве.

@Balint_Rust

Температурные чаи

Новые охлаждающие и согревающие чаи могут сделать вашу жизнь в качестве выжившего намного комфортнее.

@Balint_Rust

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


Хлеб и Пшеница

В этом месяце разработчики добавили совершенно новый продукт питания - Хлеб!

@Balint_Rust

Кроме того, добавили пшеницу, которую игроки могут собирать и выращивать самостоятельно для выпечки хлеба.

@Balint_Rust

PLAYER SERVER OCCLUSION

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

Оптимизация и улучшения

Есть несколько заметных изменений в тестировании, которые, как мы ожидаем, будут запущены после удаления или в последующем обновлении сервера. К ним относятся:

  • Скалы и утёсы будут включены в нашу систему затенения. Это повысит общую эффективность системы и поможет бороться с мошенниками, получающими преимущество.
  • Оптимизация нашего алгоритма построения линий, который мы используем для расчёта видимости между двумя игроками (что должно значительно повысить производительность, особенно на серверах с большим количеством игроков).
  • (Для владельцев серверов) Сетка перекрытия, созданная при запуске сервера, теперь будет сохранена в файл, это означает более быстрые последующие запуски, поскольку загрузка сетки из файла займет доли секунды по сравнению с минутами, которые могут потребоваться для создания сетки.

Планы на будущее

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

В течение года мы будем вносить дополнительные изменения, и вы можете увидеть:

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

Премиум - серверы

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

Чтобы получить доступ к премиум-серверам, ваш инвентарь в Rust Steam должен стоить 15 долларов или больше. Сюда входят предметы из постоянного магазина, такие как скины зданий, наборы декора и защитные костюмы, а также любые другие продаваемые предметы Rust, имеющие ценность. В настоящее время они не включают в игру отдельные дополнения Rust, такие как наборы инструментов, солнечных ожогов и голосовых реплик (это может измениться в будущем).

@Balint_Rust
Изначально мы установили порог в 20 долларов, но после анализа данных с миллионов аккаунтов мы остановились на 15 долларах как на более эффективной отправной точке. Это основано на сравнении количества заблокированных аккаунтов с количеством обычных игроков, чтобы найти баланс между доступностью и предотвращением мошенничества, хотя мы и выбрали более низкий порог.
  • Премиум-серверы будут отображаться только в том случае, если ваш аккаунт стоит не менее 15 долларов.
  • Премиум-серверы будут занимать более высокие позиции в списке серверов по сравнению с их не-премиум-аналогами.
  • Это не остановит каждого пользователя, который пользуется читами, но это дополнительный барьер для одноразовых аккаунтов с читами.
  • Владельцы серверов могут подключиться, включив следующую переменную: server.premium.
  • Порог в 15 долларов может измениться со временем, и мы можем ввести дополнительные факторы для уточнения статуса премиум.
Я бы подчеркнул, что это эксперимент, и мы будем внимательно следить за его результатами. Если вы соответствуете требованиям, то увидите в своём списке доступные премиум-серверы. Если нет, то пора обновить свой инвентарь.

Премиальные серверы заработают в четверг, 13 марта.


Обновление графического меню

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

@Balint_Rust

Стоит отметить, что в результате этих изменений не происходит ни прироста, ни потери производительности, они просто избавляют нас от необходимости использовать встроенные настройки качества Unity.

В пользовательский интерфейс было добавлено несколько новых опций, а также некоторые из уже существующих опций, доступных только для констант. Теперь также стало намного проще быстро переключаться между уровнями качества с помощью предустановок.


Высота железнодорожного туннеля

Мы перенесли подземные железнодорожные туннели выше, ближе к поверхности земли, чтобы сократить длину лифтов, лестниц и железнодорожных переходов и значительно ускорить и упростить перемещение между наземным и подземным мирами.
Для этого мы подняли подводный рельеф в тех местах, где железнодорожные туннели находятся близко к поверхности, и оставили его низким во всех остальных местах.
Мы протестировали множество сидов, чтобы убедиться, что не создаём никаких проблем, но это серьёзное изменение, которое влияет на многие аспекты генерации мира, поэтому мы никогда не можем быть на 100% уверены. Если вы заметите, что в каких-либо местах триггеры из туннелей метро выступают из ландшафта или в каких-либо местах в туннелях метро скалы или камни выступают в туннели метро, пожалуйста, сообщите об этом вместе с сидом и местоположением на карте.

Улучшения в Профилировщике сервера

Улучшения в отслеживании памяти

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

@Balint_Rust
  • Увеличено количество собираемой информации о событиях выделения памяти — тип, размер и способ выделения памяти.
  • Профилировщик собирает данные о рабочей памяти всего процесса (сколько памяти активно используется) и виртуальной памяти (сколько памяти ОС позволяет выгружать). См. Windows/Linux документацию для получения подробной информации.
@Balint_Rust
  • Сервер Profiler выводит график и информацию о распределении ресурсов для каждого потока. Их можно сопоставить по названию.
  • График основного потока сбрасывает каждый кадр.
@Balint_Rust
  • Профилировщик сервера дублирует события выделения памяти на вкладке «Выполнение потока» — это упрощает отслеживание источника потребления памяти.
Я использую это внутри компании, и это позволило мне выявить пару проблемных мест, которые стоит исправить. Я надеюсь,что это будет полезно владельцам серверов.

Обратная Связь по Публичному Тестированию

Новая версия Server Profiler была протестирована несколькими владельцами серверов, от серверов с низкой посещаемостью без модификаций до серверов с высокой посещаемостью с модификациями. Они сообщили, что серверы с посещаемостью более 500 человек могут работать с Server Profiler в фоновом режиме (без активной записи) без снижения производительности.

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

Планы на будущее

Я думаю, что Server Profiler достиг того уровня, когда его функции позволяют проводить базовые исследования. Поэтому яхотел бы изучить, как мы можем сделать его более полезным в целом.

Я хотел бы:

  • Попробуйте увеличить лимит в 10 кадров для снимков (рискованно, так как это может потреблять много памяти).
  • Изучите режим непрерывного профилирования — сейчас, если возникает проблема, нам нужно вручную устранять её с помощью RCon. Но ясчитаю, что сервер должен иметь возможность отслеживать собственное состояние, и в случае обнаружения чего-то необычного он должен автоматически создавать запись с важной информацией.
  • Выставляйте фильтры аннотаций методов, чтобы владельцы серверов/модификаторы могли сосредоточиться на важных для них областях.

Оптимизация сервера

Утечка сетевых сообщений

@Balint_Rust

В рамках публичного тестирования функции отслеживания памяти Server Profiler популярный сервер сообщества поделился своим снимком производительности во время сценария "утечки памяти". График на th снизу выяснилось, что наш поток для расшифровки сообщений внезапно начал выделять довольно много ресурсов - со скоростью около 10 МБ / сек.

Это было неожиданно, так как на наших официальных серверах мы не наблюдали такого поведения. Я проверил и обнаружил `ошибку` в коде ConcurrentQueue, который поставляется с Mono, — теперь она исправлена.

Оптимизация аналитики

@Balint_Rust
Ещё одна вещь, которую мы обнаружили с помощью функции отслеживания памяти в Server Profiler, - это то, что наша логика обработки аналитики может потреблять много памяти. Это стало неожиданностью, учитывая, что мы использовали процедуры, которые не выделяли память, но оказалось, что форматирование с плавающей запятой является исключением из этого набора. Приведённый выше скриншот был сделан на официальном сервере на 110 игроков, и он показывает, что аналитика отвечает за 15605 выделений памяти, в общей сложности около 1 МБ мусора.
Я удалил непредвиденные выделения памяти вокруг поплавков и вокруг использования асинхронных задач для выполнения загрузки. Я надеюсь, что это снизит нагрузку на процессы сборки мусора и будет реже запускать их на сервере с высокой посещаемостью.

Оптимизация текстовой таблицы - Тестирование на Aux2

Ещё одним неожиданным источником замедления работы и перераспределения памяти является Text Table — служебный класс, который позволяет собирать данные и выводить их в виде отформатированной таблицы (или JSON), делая их читаемыми человеком. Эта служебная программа используется как нами внутри компании, так и моддерами извне.

Недавно я столкнулся с этим случаем во время внутреннего профилирования нашего сервера — при запуске server.playerlistpos на сервере с 200 пользователями:
@Balint_Rust

Он не только агрессивно распределяет ресурсы (2,7 тыс. распределений), но и работает медленно — для обработки 200 игроков потребовалось 5 миллисекунд.

Я переписал реализацию, чтобы повысить эффективность работы с текстовой таблицей — теперь у неё есть несколько дополнительных механизмов и подсказок, которые вы можете использовать для ускорения внутренних операций. Я дополнительно устранил 99% выделений, которые мы создавали в процессе. Кроме того, она по-прежнему генерирует двоичный вывод, а значит, не должна* нарушать работу каких-либо существующих процессов/модов.
Я обновил приведённую выше процедуру playerlistpos, чтобы использовать все опции, и теперь она выглядит так:
@Balint_Rust

Он может обрабатывать 300 игроков за 0,8 мс, при этом ему требуется всего 18 ресурсов — победа по всем фронтам.

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

Пакетная обработка игроков - Текущая работа

Большую часть своего времени я потратил на создание прототипа другого способа обработки данных всех подключенных к серверу игроков. Вот как это выглядит сейчас:
@Balint_Rust
Мы тратим около 19 мс на обработку всех 200 подключённых игроков за один тик сервера. Отчасти это связано с накладными расходами на профилирование (нужно записать много данных), но отчасти это связано с объёмом работы, которую нам нужно выполнить. И мы делаем это потенциально неоптимальным способом:
  • Сначала игрок выполняет собственный запрос на воду, чтобы определить, находится ли он под водой
  • Запросы воды, в свою очередь, могут запускать физические запросы или изучать наши структуры ускорения
  • Затем игроку нужно обработать состояние тика — это может быть либо вызов запросов физики, либо поиск в памяти игры.
  • Затем, после обработки состояния тика, мы можем захотеть собрать аналитические данные или выполнить другую обработку — для этого потребуется повторно кэшировать состояние игрока, включая запросы воды.
  • Теперь мы также обновляем окклюзию игрока в рамках этих шагов, поэтому нам приходится искать информацию в сетке окклюзии.

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

Моя работа направлена на переписывание логики обработки данных игроков, чтобы выполнять все операции пакетно (ближе к обработке в стиле ECS):
  • Упакуйте все состояния в компактные массивы, чтобы уменьшить перегрузку кэша.
  • Замените процедуры обработки, которые работают с отдельными экземплярами, на процедуры, которые работают с наборами экземпляров (например, запросы о воде)
  • Если мы выполняем физические запросы, организуйте их в параллельные задания
  • Преобразуйте управляемый код в пакетные задания, которые могут работать с пакетами.
@Balint_Rust
На данный момент результаты моего прототипа показали, что мы теряем около 18% производительности, если делаем всё по-старинке. При использовании полной серверной демо-записи сервера с 56 игроками выполнение пакетных запросов воды заняло у нас 130 микросекунд вместо 110 оригинальных.
Хорошая новость в том, что мы потеряли 18% до того, как я начал работать над оптимизацией логики, применением пакетной обработки и параллельных заданий (раздел 4 — пример, раздел 3 — кандидат) и сокращением накладных расходов на организацию данных (раздел 2). На мой взгляд, прототип успешен, так как он показывает, что мы получаем доступ к мощным инструментам обработки. Я надеюсь, что в следующем цикле обновлений мы перейдём к тестированию пакетных запросов.

Оптимизация работы сети

В этом месяце я внедрил оптимизацию для уменьшения объёма данных, сохраняемых в ProtoBuf (нашем сетевом протоколе). Это должно значительно сократить объём трафика, используемого серверами, а также улучшить качество сетевого подключения игроков с низкоскоростными соединениями.

Изменения в расчете привилегий сборки

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

Как и следовало ожидать, мы довольно часто проверяем это (при строительстве, ремонте, вскрытии ящиков и т. д.). Эта проверка довольно затратна, так как нам нужно выполнить физический запрос, чтобы найти ближайший TC/строительный блок, и она будет более затратной в местах с большим количеством столкновений, например на плотной базе.

@Balint_Rust
В прошлом году мы внесли некоторые изменения, чтобы ограничить объем информации, которую мы отправляем клиентам, и снизить эффективность читов. Это включало в себя проверку того, есть ли у игрока возможность строить, прежде чем отправлять ему конфиденциальную информацию (например. какой игрок назначен ответственным за сумки, частоты радиочастотных устройств, списки авторизации автоматической турели и т. д.). Это сработало, но теперь мы поняли, что из-за этого нам приходится гораздо чаще проверять наличие права на строительство.

При входе в зону действия сети базы с 20 автоматическими турелями для каждой турели, которую нам нужно было отправить, запускалась отдельная проверка привилегий. Это приводило к задержке обработки до 50 мс только для того, чтобы определить, какую информацию нужно отправить.

Мы решили эту проблему несколькими способами:

  • В тех местах, где нам обязательно нужно проверять привилегию «Строительство», но мы не хотим делать это слишком часто, теперь мы можем определить минимальный промежуток времени между проверками. Даже небольшое временное окно (например, 0,1 мс) позволит избежать повторных проверок, о которых говорилось выше.
  • Если мы можем избежать проверки привилегий, мы так и делаем. Вместо того, чтобы отправлять радиочастотный код приёмника при входе в зону действия сети, если у игрока есть привилегии, мы отправляем его игроку, когда он открывает панель пользовательского интерфейса для его изменения. Это также приводит к отправке меньшего объёма данных, так что это беспроигрышный вариант.

Благодаря некоторым владельцам серверов, предоставившим базы данных с помощью инструмента «копирование и вставка», мы смогли провести проверку 1:1, чтобы увидеть, какое влияние оказали эти изменения. Одна база данных, которая приводила к 50-миллисекундной задержке обработки на стороне сервера, когда игрок активировал радиочастотный приёмник, теперь занимает всего несколько миллисекунд.

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

Улучшения для копирования и вставки

Когда изначально были запущены команды «Копировать» и «Вставить», они сохраняли вставку на сервере. Это было связано с тем, что изначально они были внутренним инструментом редактора, который работал локально на сервере, однако на практике вам нужно было подключиться к физическому серверу и получить файл, если вы хотели вставить его на другой сервер.

Теперь функция «Копировать и вставить» будет сохранять вставки в вашем клиенте. Это значительно упрощает для нас получение базы с сервера и ее загрузку в редактор для тестирования производительности и/или ошибок. Это также должно упростить для администраторов и модераторов обмен базами между собой.

Я обновил вики-страницу, чтобы отразить эти изменения.


Оптимизация физики

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

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

@Balint_Rust

Мы также внесли некоторые изменения в настройку наших триггерных коллайдеров, что должно значительно снизить их влияние на физический процесс. Экономия от этого также была существенной, однако изначально она отключена по умолчанию, и мы будем постепенно внедрять ее на наших собственных серверах после очистки. Это можно переключить с помощью параметра triggerbase.useexcludelayers, если владельцы серверов захотят включить его сами, прежде чем мы изменим настройки по умолчанию.

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

ОБНОВЛЕНИЕ DLC FRONTIER

С выходом новой треугольной грядки в обновлении этого месяца добавили для неё скин в стиле набора Frontier Base Decor, выпущенного в ноябре 2023 года!

@Balint_Rust

Если у вас уже есть DLC FRONTIER, новый скин «Треугольная грядка Фронтира» автоматически добавится в качестве подходящего скина для «Треугольной грядки». Он не будет отображаться как отдельный предмет в меню крафта и будет совместим с баллончиком.

@Balint_Rust
@Balint_Rust

Интеграция Discord

В прошлом месяце мы добавили в Rust функцию социальной интеграции. Больше не нужно переключаться между вкладками — теперь играть в команде стало ещё проще. Вы можете просматривать, общаться, приглашать и добавлять друзей прямо в игре, через Discord.
За последний месяц мы улучшили интеграцию и получили много положительных отзывов о новом дополнении.
Ещё не связали свою учётную запись? Зайдите в игру и с лёгкостью синхронизируйте свои аккаунты в Steam и Discord прямо из главного меню!

На этом девблог окончен :)

Подписывайтесь на наш Telegram-Канал по Rust!

Также у нас есть Live-канал!@Balint_Live