Путешественник по игровым мирам

Обновление Rust: Скотный двор

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

Домашний скот

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

Что с них можно получить

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

Как завести ферму

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

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

Не просядет ли производительность

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

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

Экономика скотоводства

Выращивание скота и уход за ним открывают доступ к новым ресурсам и наградам.

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

Шерсть, состриженную с овец, можно сдать тому же торговцу. Как и при продаже животных, он сделает до трёх предложений. Но здесь награда зависит от того, сколько шерсти принесено за один раз, максимум — 400. Риск велик, но и награда тоже.

Молоко

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

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

Ограждения для скота

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

Биотопливный генератор

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

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

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

Мелкая живность и морские обитатели

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

Производительность

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

Восстановление вертолётной площадки Air Wolf

В начале вайпа вертолётная площадка Air Wolf в Лагере бандитов теперь будет разрушена. Пока её не восстановят, NPC-продавец воздушной техники никому ничего не продаст.

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

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

Администраторы серверов могут изменить это поведение с помощью серверных переменных:

  • vehicle.padrepairsrequired: при значении false изменение фактически отменяется;
  • vehicle.setrepairablepads: принудительно переводит площадку в полностью разрушенное (0) или полностью восстановленное (1) состояние.

Мешки с песком теперь можно ставить друг на друга

Баррикады из мешков с песком переработаны. Теперь у них четыре стадии. Чтобы перейти на следующую стадию, сверху ставится ещё одна баррикада. С каждой стадией укрепление становится выше, а на последней превращается в дот. Все скины мешков с песком работают на всех вариантах.

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

Комнаты с добычей в энергосети

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

Точное расположение комнат разработчики раскрывать не стали, но они есть на следующих:

  • Аэродром
  • Паромный терминал
  • Гавань 1
  • Гавань 2
  • Свалка
  • Космодром
  • Военные туннели
  • Ракетная шахта
  • Радтаун
  • Канализационный отвод
  • Железнодорожное депо
  • Очистные сооружения

Износ тяжёлых предохранителей зависит от онлайна

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

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

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

Клиентское прогнозирование для гранат и взрывчатки

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

Теперь при использовании гранат, C4 и сумок с зарядом работает клиентское прогнозирование. Клиент сам просчитывает, что произойдёт на сервере, не дожидаясь ответа, поэтому броски станут заметно плавнее, особенно при высоком пинге. Если результаты клиента и сервера разойдутся, клиент будет скорректирован. Такое должно случаться нечасто, но при необходимости коррекция сработает.

Обновлённое мачете

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

Обновлённый интерфейс выбора страны

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

Производительность: память под модели от первого лица

Недавно разработчики заметили, что модель рук, которая входит в каждую модель от первого лица, занимает на удивление много памяти. Одна и та же сетка рук дублировалась и поставлялась отдельно вместе с LR-300, Эокой и так далее. Несколько лет назад такую оптимизацию не стоило бы затевать, ведь каждая копия весила всего 0,9 МБ. Но сейчас в игре больше 100 моделей от первого лица, и в сумме набегает немало.

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

Для этого пришлось доработать часть внутренних инструментов. Без встроенной сетки рук стало сложно просматривать и проверять анимации в редакторе Unity. Оптимизация важна, но, как правило, не ценой внутренних рабочих процессов и эффективности.

В итоге удалено 133 сетки, а в общей сложности сэкономлено около 100 МБ памяти.

Новые предметы для скинов в Мастерской: все люки с лестницей

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

  • люк с лестницей;
  • треугольный люк с лестницей;
  • бронированный люк с лестницей;
  • бронированный треугольный люк с лестницей.

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

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

Платный набор: костюм химзащиты «Чумной доктор»

В город прибыл Чумной доктор.

Чумной доктор не несёт исцеления — только смерть и тлен. Выносите своих мертвецов или готовьтесь к ним присоединиться.

Костюм химзащиты «Чумной доктор» можно купить в игре или в магазине предметов Rust в Steam.

Производительность: динамическая загрузка ресурсов магазина

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

За прошедший месяц команда переделала то, как внутриигровой магазин работает с ресурсами. Главные изменения:

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

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

Это не только упростит выпуск нового контента в будущем (хотя в этом направлении ещё есть над чем работать), но и экономит оперативную память:

  • при запуске игры расходуется на 250 МБ меньше, чем в прошлой релизной версии;
  • после закрытия меню магазина освобождается около 450 МБ, когда примерно через минуту ресурсы выгружаются.

Производительность: многопоточная инверсная кинематика

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

Помимо производительности, это даёт команде ещё пару возможностей:

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

Что стало быстрее:

  • Update: 1,99 мс → 1,47 мс, примерно −0,52 мс;
  • LateUpdate: 0,98 мс → 0,27 мс, примерно −0,71 мс;
  • AnimationGraphFinish: 0,99 мс → 0,75 мс, примерно −0,24 мс.

Что стало медленнее:

  • DirectorUpdateAnimationBegin: 0,42 мс → 0,62 мс, примерно +0,20 мс;
  • UpdateIkJobData: 0 мс → 0,11 мс, примерно +0,11 мс.

В целом:

  • UpdateScene: 9,36 мс → 8,29 мс, примерно −1,07 мс;
  • начало и конец Director: 1,41 мс → 1,37 мс, примерно −0,04 мс.

Когда в сцене 100 игроков, новая кинематика экономит около 1 мс на кадр. На сервере с низким онлайном, где одновременно видно лишь 5—10 игроков, разница, скорее всего, будет гораздо скромнее.

Rust Render Pipeline

Rust существует очень давно, поэтому до сих пор работал на старом встроенном конвейере рендеринга Unity (Built-in Render Pipeline). В целом он справлялся, но сильно ограничивал возможности оптимизации и набор эффектов, которые можно отрисовать.

Теперь игра перешла на новый конвейер Rust Render Pipeline. Это собственная разработка графической команды на основе Scriptable Render Pipeline, созданная специально для Rust. Он даёт разработчикам гораздо больше контроля над отрисовкой игры в целом. Переход дался непросто: пришлось переделать почти все эффекты в игре, чтобы они работали с новым конвейером.

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

Rust Render Pipeline включается и отключается в настройках на вкладке экспериментальных функций. Если поначалу возникнут проблемы, можно переключаться между конвейерами. Этот переключатель продержится только первый месяц на случай, если у кого-то появятся проблемы с графикой или производительностью, которые не удалось выявить при тестировании. Разработчики надеются, что после следующего патча его можно будет полностью убрать и сделать RRP конвейером по умолчанию, когда станет ясно, что серьёзных проблем не осталось.

Античит: новые защищённые серверы

В марте у серверов появилась возможность требовать TPM и Secure Boot. Тогда Facepunch включила это требование на 6 своих серверах.

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

  • [US East] Facepunch 1
  • [EA] Facepunch 1
  • [EU] Facepunch 15
  • [EU East] Facepunch 1
  • [EU] Facepunch 16
  • [EA] Facepunch 2

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

Если оборудование поддерживает TPM и Secure Boot, разработчики настоятельно рекомендуют их включить. Инструкция есть на странице поддержки. Тем, у кого они уже включены, стоит попробовать поиграть на защищённом сервере. Через месяц после запуска таких серверов команда зафиксировала на них меньше читеров.

Автоматическая отправка отчётов о сбоях

В прошлом месяце разработчики исправили проблему, из-за которой Easy Anti-Cheat мешал игре сохранять данные о сбоях. В этом месяце добавлена автоматическая отправка этих данных на серверы студии. Теперь при каждом сбое команда сразу получает отчёт. Больше не нужно разыскивать игроков и вручную воспроизводить сбой в рабочих версиях игры.

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

См. также:

Дальше