Играю в игры, пишу в блог

Обновление Rust: Десятилетие игры

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

Десятилетие Rust

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

Rust претерпела значительную эволюцию с момента своего запуска в 2013 году. Изначально она создавалась на движке Unity Engine 4 и игралась в веб-браузере. Позже в раннем доступе Steam появилась самостоятельная версия, которая сейчас известна большинству как Rust Legacy. После того как основа была заложена, был проведен капитальный ремонт, в результате которого мы получили то, что сейчас известно как Rust Reboot, или просто Rust.

За последние десять лет Rust была продана тиражом более 16 миллионов копий (не считая консолей).

Rust Legacy 2013

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

Rust Reboot 2015

Ниже приведены некоторые интересные показатели, которых мы достигли за последние 10 лет.

Если вам интересно узнать больше об истории Rust, вы можете посмотреть временную шкалу игры.

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

Пината

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

Конфетти-пушка

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

Старое доброе деревянное убежище

Помните те первые несколько часов Legacy Rust? Вы добываете ресурсы для своей первой большой базы, а в это время вам нужно где-то жить? Убежище было решением. Теперь оно вернулось!

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

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

Привет!
Я Ян, новый программист по геймплею! Помню, как я прятался в своем убежище в 2013 году в Rust. Невероятно приятно осознавать, что, воплощая в жизнь потрясающую модель Винсента, я даю новым игрокам те же ощущения, что и в те времена.
Не могу дождаться, когда смогу порадовать вас чем-нибудь еще в будущем.

Платное дополнение: Старый добрый лук

Легаси лук — это ограниченный по времени товар, который можно купить только в декабре. Этот скин лука отдает дань уважения первой модели лука в Rust.

Доступен сейчас в магазине Rust.

Скин для строительных блоков в стиле Legacy Wood

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

Дробовик M4

Дробовик M4 впервые появился в Rust Legacy в 2013 году. В честь 10-летия Rust разработчики решили вернуть его. M4 — это некрафтовый дробовик военного класса; в отличие от других дробовиков, M4 имеет гораздо более сильную дальнобойную атаку.

Дробовик M4 будет редко выпадать в элитных ящиках с лутом.

Старая печка

Legacy Furnace — это бесплатный скин для печи, основанный на оригинальной модели 2013 года.

Чтобы получить печь Legacy Furnace, просто играйте более 3 часов в течение декабря. Печь будет автоматически добавлена в ваш инвентарь Steam.

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

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

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

Новые возможности

  • Инструмент «Ластик» для всех типов вывесок.
  • Инструмент для выбора цвета.
  • Сделаны ползунки размера и непрозрачности кисти (вместо кнопок).
  • Добавлена опция расстояния между кистями в виде ползунка.
  • Добавлена кисть с более естественным видом краски.
  • Добавлены два типа аэрографов.
  • Кнопка, позволяющая переключить камеру так, чтобы она была направлена прямо на объект.
  • Кнопка включения или выключения подсветки предварительного просмотра (убирает блики под некоторыми углами).
  • Разрешение чата в пользовательском интерфейсе рисования с кнопкой для его скрытия.
  • Привязка Ctrl+S к кнопке сохранения.
  • Добавлена кнопка для загрузки редактируемого изображения на рабочий стол.
  • Добавлены настраиваемые параметры для управления инструментами и кистями во время рисования:
    • paint.selectedtool позволяет установить текущий инструмент (в виде числа, начинающегося с 0 и оборачивающегося в конце)
    • paint.selectedbrush позволяет установить текущую кисть
    • paint.brushsize устанавливает ползунок размера кисти
    • paint.brushspacing устанавливает ползунок расстояния между кистями
    • paint.brushopacity устанавливает ползунок непрозрачности кисти
    • Примечание: Они функционируют как параметры, поэтому команды типа «bind L meta.add paint.selectedtool 1» будут переключать на следующий инструмент.
    • Примечание: Вам может потребоваться повторно открыть пользовательский интерфейс рисования после добавления привязки, если интерфейс рисования уже был открыт.

Улучшения

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

Улучшение интенсивности теней

Опция Contact Shadow уже несколько лет находится в разделе Experimental. Я полагаю, что основная причина этого связана с очень очевидным чрезмерным затемнением теней травы и листьев. У материалов Foliage есть опция интенсивности тени, которая позволяет художникам контролировать темноту полутени, делая ее немного более реалистичной. Контактные тени, по сути, игнорируют этот параметр.

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

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

Остров Hapis

Продолжая тему возвращения к прошлому в честь 10-го дня рождения Rust, вы просили, а мы слушали, остров Хапис вернулся... снова! Эта версия карты создана сообществом и основана на версии 2018 года.

Мы планируем разместить Hapis Island по крайней мере до марта 2024 года.

Будет два сервера Hapis Island в разных регионах. Их можно найти в официальном списке серверов по запросу «Hapis»

США — 54.39.130.95:28015
ЕС — 51.210.222.218:28015

Если вы не знакомы с Хаписом, то можете посмотреть карту в интернете.

Улучшение модели персонажа

Рэгдоллы (тряпичные куклы) — это состояние, в которое переходит тело игрока после смерти, — были обновлены в этом месяце.

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

Старое поведение

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

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

Объект трупа управлял фактическим взаимодействием с лутом.

В сущности, замысел был таков:

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

В реальности все было не так идеально:

  • Если игрок умирал где-нибудь на вершине стены, то труп мог упасть вниз, а рэгдолл — нет, или наоборот. Поскольку настройка столкновений у трупа и рэгдолла на стороне сервера была совершенно разной — совпадала только область таза — это случалось довольно часто. В результате положение трупа и рэгдолла не совпадало, и иногда взаимодействие происходило в странном месте.
  • Суставам рэгдолла на стороне клиента очень не нравилось работать с данными о положении таза, которые поступали с сервера. Если движение было внезапным, то вместо того, чтобы просто оказаться в неправильном месте, рэгдолл иногда неестественно вытягивался.
  • Если рэгдолл находился на движущемся транспортном средстве, все было особенно плохо, вплоть до того, что мы вообще не могли включить столкновение рэгдолла с транспортными средствами. Случалось, что рэгдолл болтался под сломанным вертолетом, потому что он выпал, а «труп» — нет. Это усугублялось тем, что физическая симуляция рэгдолла на стороне клиента не очень хорошо работала с тем фактом, что транспортное средство перемещалось на сервере, а не симулировалось на клиенте, как рэгдолл. Хотя физика работала, она вела себя так, будто поверхность имела нулевое трение, поэтому рэгдолл стремился скользить по поверхности, в то время как труп на сервере хотел остаться на месте — и пружина пыталась удержать их вместе.

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

Новое поведение

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

К сожалению, фиксация таза в положении, которое поступало с сервера, при одновременной симуляции всех связанных суставов на клиенте, делала физическую систему очень нестабильной. Попытки использовать трюки Unity, такие как использование ’rigidbody.MovePosition’ вместо ’.position’, включение или выключение проекции, большее количество итераций решающей программы и т. д., не очень помогли. Конечности очень хотели остаться на месте, в то время как таз тянул их за собой, и в итоге получалась ужасающая растянутая тряпичная кукла вместо той, которая просто находилась в неправильном месте. Кроме того, конечности все еще имели некоторые старые проблемы, например, проблему нулевого трения о транспортные средства.

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

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

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

Новые рэгдоллы работают следующим образом:

  • На сервере появляется труп, и этот труп — полностью смоделированный рэгдолл с конечностями и т. д.
  • Базовая позиция этого трупа синхронизируется с клиентом, как и раньше, но теперь синхронизируются и конечности, причем эффективным способом, который упакован в пару 32-битных целых чисел.
  • У клиента больше нет объекта ragdoll, отдельного от трупа. Труп и есть рэгдолл, и он симулируется только на сервере.

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

Откат

Если что-то пойдет не так, есть новая консольная команда ’serversideragdolls’, которая может быть установлена на true или false. По умолчанию она равна true, но если установить значение false, то можно сразу же вернуться к старой системе.

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

Цвета промышленных труб
Добавлены тиловый, оранжевый, розовый и фиолетовый цвета.

Исправление расхода воды в дождевателях
Исправлено расходование дождевателями до 40% воды (4 или 9 плантаторов).

Исправлен FPS буксира
Буксиры иногда вызывали сильное падение FPS при входе в зону видимости.

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

Воздушный шар
Исправлено падение игроков с воздушного шара.

Переделка вертолетного ящика
Обновлен ящик у патрульных вертолетов.

Исправлен разброс взрывчатых патронов
В некоторых ситуациях взрывные патроны неправильно наносили урон от разброса.

Квадратное солнце
Вы когда-нибудь замечали, что солнце иногда было квадратным? Нет? Так вот, это исправлено.

Поиск в элементах управления
Добавлена строка поиска в раздел назначения клавиш в меню опций.

ID дрона
Дроны теперь показывают свой ID в инвентаре игрока.

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

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

Радиация на нефтяных вышках

Ровно 1 год назад мы увеличили задержку респауна нефтяных вышек с 30 мин до 1 часа.

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

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

Мы также решили проблему, когда игроки оставляли один предмет во взломанном ящике, чтобы маркер ящика оставался на карте, хотя он был уже «пуст».

Чтобы предупредить игроков о новом изменении радиации, при её запуске появляется несколько индикаторов опасности:

Обратите внимание: в звуке тревоги изменилось обозначение опасности: с «прибывают ученые я тяжелой броне» на «начинается радиация».

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

Отключения в конце года

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

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

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

Мы собрали множество отзывов от сообщества, чтобы в случае чего пересмотреть этот режим в 2024 году.

Хардкор по-прежнему можно включить на серверах сообщества.

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

Мы также считаем, что Баррен выглядит некрасиво и не является хорошим представителем Rust.

Новогодние события

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

Статистика в игре

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

Ниже представлены данные только с официальных серверов Facepunch, мы исключаем данные с серверов сообщества, чтобы обеспечить точность.

Дальше