Заметки про игры

Обновление Rust: С рюкзаками к богатству

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

Рюкзаки

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

С годами места в инвентаре становится все меньше, так как в Rust появляется все больше предметов.

Маленький рюкзак

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

Большой рюкзак

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

Как использовать

Оба предмета носятся в слоте рюкзака и выпадают из персонажа при смерти. В них можно залезть на земле (будьте осторожны, если роняете в безопасной зоне!) или из собственного инвентаря. Они подбираются с земли за 3 секунды и медленнее истлевают, если наполнены ценными предметами (до 2 часов).

В настоящее время нет никаких негативных эффектов от использования рюкзака.

Новый мешок на месте смерти игрока

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

Металлоискатель

Новый металлоискатель позволяет находить металлические предметы, скрытые под землей.

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

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

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

Еще добавили лопату, но она пока никак не используется. Кстати, модельку металлоискателя сделали еще три года назад...

Изменения в оружии

Были изменены анимации для полуавтоматических пистолета и винтовки. Теперь они должны быть менее плавными и более резкими при перезарядке и прицеливании. Также уменьшили дополнительную отдачу во время движения при использовании пистолета.

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

Исправления и улучшения

Ограничение на количество убедищ
Теперь игроки могут иметь только одно убежище в любой момент времени.

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

Метка смерти на компасе
Маркер смерти теперь появляется в интерфейсе компаса.

Исправление стоимости ремонта
Некоторые боевые единицы, такие как автотурель, непреднамеренно требовали больших затрат на ремонт, теперь это исправлено.

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

Спелость
Увеличена продолжительность стадии созревания всех растений с 4 до 14 часов.

Более мягкая постобработка экрана

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

Сокращение количества сущностей на стороне сервера

Как уже упоминалось в заметке о начале года, использование памяти является ключевой областью, вызывающей беспокойство в этом году. Один из аспектов, на который мы обратили внимание в последнее время, — это количество сущностей. Все, что подключается к сети на сервере Rust, является сущностью, а именно: каждое дерево, блок здания, игрок, транспортное средство и т. д. Что может показаться нелогичным, так это то, что многие предметы в вашем инвентаре также являются сущностями, в частности, сущностью, которую мы называем планировщиком. Это синий лист, который игрок визуально использует при развертывании чего-либо (например, спального мешка). Любой предмет, который можно развернуть в вашем инвентаре, будет иметь соответствующую сущность планировщика. Эта сущность создается при создании предмета и будет существовать на сервере (обычно в руках игрока или в контейнере) до тех пор, пока этот предмет не будет использован или уничтожен. Нам нужна эта сущность, поскольку она обрабатывает всю логистику порождения развернутой версии предмета.

Чтобы проиллюстрировать, сколько сущностей при этом создается, мы посмотрели список сущностей на сервере Facepunch EU2 в конце ноябрьского вайпа прошлого года. Из 362 299 сущностей 32 455 были планировщиками, и это самое большое количество сущностей (следующим по величине был стены — 26 015). Поскольку технически планировщики нужны только тогда, когда у игрока на поясе экипирован предмет, это большая трата памяти и времени обработки, а также ненужное раздувание файлов сохранений сервера.

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

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

Мы считаем, что это изменение должно уменьшить количество сущностей на сервере примерно на 6-9 %, но мы будем следить за результатами с течением времени.

Промышленная производительность

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

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

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

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

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

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

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

Улучшенное качество текстур

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

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

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

Командные маркеры с очками ночного видения

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

Улучшено поведение дверей и ворот

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

Дальше