September 4

MAINTENANCE

Техническое обслуживание

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

В преддверии ноября мы планируем внести ряд существенных изменений в метаданные и баланс. Если у вас есть предложения, не стесняйтесь делиться ими с нами в наших социальных сетях, в том числе в Discord. Мы всегда следим за вашими сообщениями и читаем их.

В ноябре выйдет долгожданное обновление «Морской флот». В нём появятся модульные корабли с пушками и многое другое. Вы сможете настроить своё судно, отправиться в плавание по открытому морю, исследовать новые океанские монументы и даже обнаружить небольшие острова за горизонтом.

В декабре мы будем отмечать 12-летие Rust, чёрт возьми. 12!

Кроме того, вскоре мы объявим о выпуске кроссоверного DLC Warhammer X Rust.


Звуки выстрелов на больших расстояниях

Сетевой диапазон в Rust состоит из сеток. Игроки видят мир в пределах нескольких сеток — за их пределами ничего не видно.

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

Теперь мы можем воспроизводить выстрелы на разном расстоянии от игрока: это делает Rust более реалистичным и меняет мету, давая определённому оружию преимущества или недостатки.

Прежнее значение по умолчанию максимальная дальность распространения звука составляла около 350 метров. (размер стандартной сетевой сетки) Это значение было одинаковым для всех видов оружия, как объяснялось выше.

Новые значения следующие:

  • Пистолеты / SAR / СКС / пистолеты-пулемёты / дробовики — 400 метров
  • AK / LR — 500 метров
  • Ручные пулемёты / Миниганы / Винтовки для стрельбы на дальние дистанции (винтовка с продольно-скользящим затвором / L9) — 600 метров

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

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


Шильдик для спальных мешков тиммейтов

Было сложно понять, какие спальники принадлежат тем или иным членам команды, даже если они были правильно подписаны: разобраться в этом было непросто.

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


Индикаторы Повреждений Миникоптера

Добавлены визуальные и звуковые эффекты индикации повреждений, чтобы игроки могли лучше ориентироваться в состоянии миникоптера. Теперь игроки будут видеть визуальные подсказки, когда миникоптер получает повреждения, с пороговыми значениями в 45 % и 20 % оставшегося здоровья. Теперь, если вы видите, как миникоптер покидает рейд, оставляя за собой дым, и не можете попасть в пилота, вы будете знать, что нужно целиться в шасси!


Улучшение процесса перемещения листвы

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


Объёмные облака включены по умолчанию

В последнем обновлении мы добавили новые объёмные облака в качестве альтернативы двумерным. Однако мы сделали их доступными только в экспериментальных настройках и отключили по умолчанию.

Благодаря этому патчу объёмные облака теперь включены по умолчанию, а в долгосрочной перспективе планируется полностью заменить ими двухмерные облака. Соответствующая настройка перенесена на вкладку обычных графических настроек, а уровни качества привязаны к предустановкам графики. Кроме того, graphics.vclouds конвар был заменён на graphics.volumetric_clouds.


Заметные изменения

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

В течение нескольких лет из-за ошибки у игроков иногда закрывались глаза. Теперь это исправлено!

Исправлена проблема с невидимостью игроков при возрождении во время сна

Исправлено: C4 нельзя было ставить в очередь после включения радио

Исправлена ошибка, из-за которой при подборе ковриков на буксире удалялись развертываемые объекты

Развертывание фиксированной баррикады было заблокировано на песчаных дюнах вокруг гигантского экскаватора


Дополнение Exhibition Decor Pack DLC

В этом месяце на сцену выходит набор «Декор для выставки» — яркая коллекция предметов, которые можно разместить на базе, чтобы она засияла.

Набор можно приобрести в игре или в магазине предметов Rust в Steam

Гирлянды Лампочек

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

Манекен для одежды

Зовите его «Мэнни». Оденьте его в свой любимый наряд и сделайте эффектную фотосессию. Он даже поменяется с вами одеждой, если вы захотите быстро сменить гардероб.

Настенный шкаф

Разместите на стене и храните мелкие предметы внутри или на полке внизу. Имеет 18 отделений.

Подвижные Точечные светильники

Подсветите происходящее этими подвижными прожекторами. Наведите на них прицел, и они повернутся в вашу сторону! Доступны варианты как для настенного, так и для напольного монтажа.

Волшебные Огоньки

Эти гирлянды Fairy Lights меньше по размеру и более мерцающие, чем гирлянды Bulb String Lights. Они привносят нотку волшебства в пустынную местность.

Флуоресцентные Ленточные светильники

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

Люстра

Придайте своему основанию элегантности с помощью этой регулируемой люстры. Поднимите и опустите ее на нужную высоту. Пришло время установить парадную лестницу в вашем доме размером 2x1.

Электрическая Настольная лампа

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

Кресла-подушки

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

Обои

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


Параллельная обработка данных — часть 2

Потоковые Обновления Плеера

В предыдущем выпуске Jungle Update блога я писал об эксперименте с пакетной обработкой игроков на наших серверах.

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

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

Сейчас это заблокировано за UsePlayerUpdateJobs 2 серверной переменной в качестве экспериментального режима. Мы тестировали это на нашем тестовом сервере в Европе в течение нескольких недель, чтобы убедиться в стабильности работы, и пока всё в порядке, но у меня нет чётких гарантий того, как это будет масштабироваться на серверах с большим количеством игроков. Теоретически, благодаря этим пунктам:

  • Более быстрая окклюзия сервера (подробнее об этом ниже)
  • Использование кэша кадров позволяет избежать избыточных вычислений состояния игрока
  • Использование управляемых потоков для разгрузки (отправка снимков сущностей и сообщений об удалении была преобразована)

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

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

Оптимизация Блокировки сервера

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

Помимо других проблем, это приводило к тому, что серверная окклюзия в некоторых случаях занимала до 8 мс, как показано ниже:

Обработка 10 000 запросов на окклюзию для 350 игроков кажется чрезмерной, даже если в итоге нужно проверить всего 500 путей.

Я переработал соответствующий код, чтобы воспользоваться следующими улучшениями при включенном UsePlayerUpdateJobs 2:

  • Теперь мы удаляем повторяющиеся запросы на окклюзию. Если игрок А и игрок Б хотят проверить видимость друг друга, достаточно просто проверить A->B
  • Мы выполняем окклюзионные запросы параллельно
  • Мы кэшируем результаты запросов на окклюзию на время кадра, что позволяет нам пропускать их в оставшейся части кадра

Я надеюсь, что прибыль будет расти вместе с количеством игроков и станет существенной, когда мы будем тестировать игру с участием более 350 игроков.

Движение Вперед

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

Я планирую использовать новую телеметрию, чтобы понять, на чем сосредоточить усилия, и продолжить расширять UsePlayerUpdateJobs.

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

Если в ходе этого обновления UsePlayerUpdateJobs 2 покажет хорошие результаты, то, скорее всего, режим будет повышен до уровня 1 и начнётся новый экспериментальный этап.


Изменения в шифровании продолжались

Как упоминалось в последнем выпуске блога разработчиков, мы вводим требование о минимальном уровне шифрования 2 на серверах, которые должны считаться «безопасными» и отображаться в браузере серверов Rust Client.

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

Кроме того, мы планируем удалить переменную server.secure convar. Как упоминалось ранее, теперь всем небезопасным серверам при запуске необходимо будет передавать параметр '-insecure'.


Twitch Drops

20–30 сентября

Rust Kingdoms 3 возвращается — ещё масштабнее и лучше! Следите за новостями в соцсетях, чтобы узнать состав команды и какие предметы можно собрать!

Перейдите по ссылке https://twitch.facepunch.com/connect, чтобы синхронизировать свои аккаунты Twitch и Steam.


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

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

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