Rust news
SOCIAL:
В категориях: DevBlog

Devblog 148 на Русском

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

Металлическая витрина магазина

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

Изменения и исправления для Торгового автомата

Я исправил много ошибок, связанных с Торговыми автоматами. В первую очередь, некоторые особо хитрые игроки больше не смогут использовать Alt Look, чтобы осмотреться и получить доступ к обратной стороне автомата! Клавиша Q больше не закрывает меню (из-за этого было невозможно напечатать фразу High Quality Metal), я добавил немного элементов в панель ‘Vending’, а звук совершения покупки теперь воспроизводится на стороне сервера, так что его может услышать каждый.

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

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

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

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

Экраны торговых автоматов

На этой неделе я заставил работать экраны Торговых автоматов. Сначала я собирался сделать текстовые описания и тому подобное, но благодаря этому посту на reddit решил остановиться преимущественно на использовании значков. Я все ещё хочу добавить некоторые возможности для кастомизации – такие как пара-тройка сообщений, которые будут периодически отображаться на экранах – но на данный момент они выглядят вот так:

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

Небольшое снижение мощности полуавтоматических пистолетов

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

Повышение мощности огнестрельного оружия

Урон от револьвера Python был увеличен на 18%, а также это оружие теперь обладает несколько более высоким темпом стрельбы. Кроме того, его изготовление стало гораздо дешевле.

Я также примерно на 15% увеличил урон от полуавтоматической винтовки, что должно сделать это оружие более конкурентоспособным в бою.

Механизм автоматического закрывания двери

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

Капканы для медведей

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

Тестирование животного интеллекта (AI)

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

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

Анимация животных

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

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

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

Повреждения стен при взрыве

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

Прогресс в системе отрисовки листвы

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

Многопоточное пакетирование для полигональных сеток

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

Холодильник

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

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

Оформление и  оптимизация комнат бункера

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

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

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

Поскольку целью этого изменения было не сбалансировать игру, а просто повысить общее эстетическое восприятие, мы решили вернуть «картофельный режим» (potato mode) , который активируется только тогда, когда установлен самый низкий из возможных уровней шейдера (100):

Вид разбитых стёкол

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

Доспехи из толстых пластин

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

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

Глобальные модели

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

Усовершенствованное поглощение звука

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

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

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

Другие дела, связанные со звуком

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

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

Осколки от ударов по стеклу

Я создал новые эффекты для осколков, появляющихся при разбивании стекла. Кроме того, я немного подкорректировал звуки.

Анимация игрока

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