Dev-блог 163

Rust_Devblog_163_0.jpg

Улучшение отдачи, изменения для дробовиков, оптимизация и другое.

Изменения отдачи
На выходных я провел много времени играя в CombatTag и выявил несколько слабых мест в характеристиках некоторого оружия. В основном я замечал их у АК47 и полуавтоматической винтовки. Я не мог ни в кого попасть как бы я не старался. Было обидно прицеливаться точно в цель, но при этом промахиваться.
Мне было сложно прийти к этому на прошлой неделе, потому что я использовал реактивные цели. Тогда я запрограммировал ботов, которые просто бегают случайным образом. Таким образом я получил хорошую движущуюся цель, которая может носить на себе любую броню и которая поможет мне с балансом.
С этой целью добавил систему взвешивания в паттерны разброса для автоматического оружия (также как и полуавтоматического). Это значит, что выстрелы с большой вероятностью будут попадать в центр, а не в любую точку на паттерне во время зажима. Это, похоже, приближает его к другим шутерам от первого лица, и я надеюсь, что это приятное изменение. Могут потребоваться правки, поэтому, пожалуйста, протестируйте все и дайте мне знать, что вы об этом думаете. Я также исправил ошибку, когда паттерн просчитывался как сфера, а не круг (это значило, что некоторая информация терялась, а паттерн был немного более рандомным, чем он должен быть).
В дополнение к этому я внес некоторые изменения в баланс оружия. Самое главное, я уменьшил максимальный разброс для АК47, но его горизонтальная отдача увеличилась (на половину схоже со старой отдачей).

Изменения для дробовиков

Rust_DevBlog_163_1.png

Заметили разницу? Возможно нет. Но вы заметите, когда наконец решитесь использовать дробовики. Раньше каждый патрон дробовика имел случайный паттерн разброса от 0 до максимума, чтобы компенсировать его траекторию. На самом деле это не работает, как видно на изображении выше. Были рандомные скопления и пробелы. Вы были в руках рандомайзера и быть нацеленным на врага, но при этом промахнуться! Я исправил это, реализовав две функции.
Во-первых, каждая дробинка добавляет себя в случайную точку на паттерне. Это приводит к лучшему общему распределению с меньшими промежутками.
Во-вторых, я добавил вес к дробинкам, так что первые 20% дробинок с большей вероятностью попадут туда, куда вы целитесь (обратите внимание на скопления возле X после выстрела и перед выстрелом).
В-третьих, я уменьшил максимальный эффективный диапазон для картечи до 40 м и 25 м для самодельных патронов.
Все это прекрасно сочетается с идеей создания дробовиков более жизнеспособным оружием, которое способно держать удар. Вы можете вести довольно прицельный огонь на небольших дистанциях, но не будете иметь большого преимущества на дальних, что на самом деле лучше чем иметь просто большой разброс. Опробуйте это и дайте мне знать, что вы об этом думаете.
Существует также множество других изменений, проделанных над дробовиками и боеприпасами к ним (например, цена на патроны вдвое меньше!), поэтому ознакомьтесь со списком изменений для большей информации.

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

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

Доработка вида от первого лица

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

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

Оптимизация декалей
Unity добавили несколько новых способов использования инстенсинга в 5.6, поэтому я решил протестировать их. Проблема с внедрением в Unitu заключается в том, что если вы позволяете движку обрабатывать его, он приносит с собой большую нагрузку на процессор, поскольку меши и материалы, которые могут быть объединены в одну ячейку, просчитываются как отдельные элементы. Это делает его почти бесполезным для таких сцен как наша, где мы имеем большое количество таких ячеек в любой момент времени. Новые API-интерфейсы позволяют нам отслеживать меши и материалы в нашем собственном коде и передавать их Unity таким образом, что они уже объединены вместе и могут перейти прямо на графический процессор. Я решил, что способ протестировать это - использовать наши декали, которые мы используем для следов от пуль, повреждений от оружия ближнего боя и следов. Оказывается, новая система теперь позволяет рендерить декали почти без использования ресурсов, и только создание командного буфера немного ест ресурс процессора. Вся сортировка мешей и материалов теперь ограничивается только на добавлении и удалении декалей, а не в каждом кадре как раньше, и поэтому чрезвычайно эффективна.

Оптимизация распределения памяти
При реализации инстенсинга для декалей я заметил, что многие из наших структур, которые используются в качестве ключей в словарях, могут вызывать распределение динамической памяти всякий раз, когда элементы этих словарей добавляются или извлекаются. Чтобы это исправить, нашим структурам необходимо реальзовать интерфейс IEquatable (теперь будем достаточно просто Equals()), который они теперь используют. Это устранит всякий мусор, особенно в клиенте.

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

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

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

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

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

Rust_DevBlog_163_3.jpg

Rust_DevBlog_163_4.jpg

Rust_DevBlog_163_5.jpg

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

Rust_DevBlog_163_6.jpg

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

Звук
Я закончил доработку всех звуков ударов металлическими предметами. Они довольно чистые и немного более сдержанные (особенно металлические инструменты), что делает их более приятными при взаимодействии с ними. Я очень доволен тем, как получились звуки поздействия на мягкие материалы. На следующей неделе я могу перезаписать несколько мягких слоев, чтобы попытаться смягчить начальный переход и позволить звучать металлическим звукам более отчетливо. Я также начал записывать материал, который можно использовать при использовании неметаллического оружия ближнего боя.
На этой неделе я продолжил работу над музыкой, и изменения касающиеся ее готовы выйти уже сейчас. Мне все равно нужно протестировать его при установке в клиент сервера, и у меня не было возможности сделать это вовремя, чтобы выпустить это обновление, но надеюсь, что все будет на следующей неделе :)
За последнюю неделю или две у моего дома была стройка, и я вставал раньше, так как это была возможность записать немало нового материала, поэтому я проводил записи, вырезал и очищал хорошие биты. Они не попадут в игру сразу, но они заполнили некоторые проблемы в моей звуковой библиотеке и будут полезны в будущем!
Я также сделал несколько случайных звуков и миксов, и исправил ошибку ошибку, из-за которой NPC издавали тонны звуков от шагов, если они перемещались на большое расстояние за короткий промежуток времени.

Список изменений:
  • Доработали эффекты воздействия от ударов металлическими инструментами и оружием ближнего боя.
  • Были проведены незначительные доработки звука и микса.
  • Горизонтальная отдача АК были слегка увеличена.
  • Максимальный разброс был слегка уменьшен.
  • Отдача и разброс двустволки были уменьшены.
  • Разброс ЕОКА-пистолета был уменьшен.
  • Самодельные патроны для дробовика (далее спдд) теперь наносит 9 урона вместо 7.
  • Разброс дроби при выстреле с СПДД был слегка увеличен.
  • Скорость полёта дроби при стрельбе с использованием СПДД была снижена.
  • Стоимость крафта слагов (цельных патронов для дробовика) была снижена в 2 раза.
  • Максимальная эффективная дистанция поражения дробью была увеличена до 40 метров.
  • Оптимизированы некоторые клиентские команды, которые связаны с поиском объектов.
  • Доработали габариты небольших камней.
  • Оптимизировали анизотропную фильтрацию на текстурах и скинах.
  • Оптимизировали скины + применили трилинейную фильтрацию.
  • Оптимизировали отложенные декали.
  • Отключили звук ошибки TrackID, которая возникает при отсутствии DDL.
  • Исправили недочёт, при котором информация о предмете переставала отображаться после его уничтожения.
  • Добавлено кеширование к отложенным декалям.
  • Сократили выделения "мусора" в игровом коде.
  • Исправили автомат Томпсона: имел неправильный эффект качки экрана.
  • Исправили недочёт NPC: спамили эффектом от шагов при преодолении больших расстояний в 1 кадре.
  • Исправлен недочёт конуса полёта пуль: использовался неправильный подход к расчётам.
  • Исправлены различные недочёты приводящие к некорректной визуализации моделей в виде от 1-го лица.
  • Исправлен недочёт, при котором лук флудил на сервер при прицеливании без стрел в инвентаре.
  • Исправили сломанные отражения на острове Hapis.
  • Снизили интенсивность на некоторых светящихся материалах.
  • Эффект получения урона слегка изменили: был слишком яркий.
  • Исправили эффект огня на факеле, костре и печи.
  • Исправили недочёты относительно отложенных декалей.
  • Исправили недочёты свечения лазерного прицела.
  • Добавили команду server.woundingenabled.
  • Добавили серверам дополнительную защиту от DOS-атак.
  • Автоматическое оружие теперь имеет центр тяжести, что оказывает влияние на стрельбу очередями.
  • Дробь из патронов для дробовика теперь равномерно распределяется по области поражения.
  • Добавлены серверные команды: maxrpcspersecond, maxtickspersecond, maxcommandspersecond
  • Клиенту добавлена защита от P2P флудинга.
  • Добавлена клиентская команда: maxpeerspersecond
  • Удалены неиспользуемые ассеты
 
Последнее редактирование:
Сверху