Dev-блог 151

Rust_Devblog_151_1.jpg

Шкафчики для экипировки, оптимизации, исправления и прочее.

Шкафчики
Мне не хотелось добавлять очередной предмет интерьера ради предмета интерьера, поэтому я реализовал некоторый функционал, который, как мне кажется, все оценят по достоинству. Вкратце: шкафчик имеет 3 секции, под каждой из которых располагается кнопка "swap". Когда вы нажимаете её, вся ваша экипировка и предметы из хот-бара поменяются местами с предметами и экипировкой в этой секции. Это значительно сократит время переодевания, или же просто позволит быстро раздеться, после чего вы будете точно знать, где что лежит.

Rust_Devblog_151_2.png
Rust_Devblog_151_3.png

Баланс вертолёта
Множество людей нагло эксплойтили AI вертолёта не давая ему нормально атаковать используя при этом какие-то шаманские приёмы со шкафом. Чтобы прекратить это, я внёс некоторые коррективы в работу его искусственного интеллекта. Ранее он никогда не палил ракетами, если цель не была авторизована в шкафу в зоне потенциального обстрела. Однако теперь он всегда будет палить, но не ракетами, а напалмом. Однако напалм теперь тоже немного изменён: он более не наносит урона ничему, кроме игроков. Таким образом, вы не сможете использовать его в качестве рейд-инструмента. Жду не дождусь увидеть, насколько труднее теперь стало сбить вертолёт.

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

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

Rust_Devblog_151_4.png

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

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

Колесо удачи и сетки
Я приступил к реализации двух новых предметов.
Первое — «колесо удачи». Его вы сможете использовать для принятия решений. Также мы планируем сделать так, чтобы на нём можно было рисовать, по аналогии с табличками. Ещё я хочу добавить его модель в воркшоп, чтобы люди, не любящие или не умеющие рисовать, могли использовать готовые скины.

Rust_Devblog_151_5.jpg

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

Rust_Devblog_151_6.jpg

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

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

Rust_Devblog_151_7.jpg
Rust_Devblog_151_8.jpg

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

Утечки памяти (оптимизация)
Помимо прочей работы, я потратил некоторое время на поиск и устранения утечек памяти. Одну из таких мне удалось поймать и исправить. Работы в этой области ещё гора, но мало-помалу мы двигаемся в правильном направлении.

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

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

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

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

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

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

Rust_Devblog_151_9.jpg

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

Rust_Devblog_151_10.jpg

К слову, сейчас я его текстурирую.

Анимации персонажа
Закончил с анимациями в виде от 3 лица для револьвера, АК и гитары.

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

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

Эффекты воздействия
В какой-то момент я заметил, что все наши эффекты воздействия выглядят достаточно устаревшими, поэтому я решил улучшить их. На самом деле, меня вдохновили эффекты из Battlefield 1.

Скины на world моделях
Не так давно выяснилось, что на world моделях скины отображаются далеко не так хорошо, как на моделях в виде от 1-го лица.

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

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

При устранении этих проблем, мне следовало быть очень осторожным, т.к. передо мной стояла задачи устранить эти искажения на моделях и при этом не "убить" существующий контент. Так или иначе, проследите за своими скинами в следующие 2 недели и при выявлении каких-либо проблем — сообщите мне.

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

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

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

Список изменений:
  • Исправлен баг с невидимой world моделью LR-300.
  • Обновили LOD фонарика.
  • Исправили недочёты world модели арбалета, базуки.
  • Снизили компрессию мешей на world моделях оружия.
  • Оптимизировали системы звука.
  • Все звуки физики стали тише, за исключением звуков воздействия.
  • Снизили количество вершин на каменных и металлических строй. блоках (оптимизация).
  • Добавлена система многопоточного батчинга (оптимизация).
  • Добавлен улучшенный профайлинг (сбор данных).
  • Устранили утечку памяти из-за скинов.
  • Устранена утечка памяти из-за материала растений.
  • Оптимизировали процесс загрузки скинов.
  • Добавлены команды itemskins 1/0 для включения и отключения скинов.
  • Оптимизировали сетевой код (раздробили больше объекты на более мелкие).
  • Оптимизировали модели растений со стороны клиента игры.
  • Исправили баг с отменой крафта при полном инвентаре (приводило к потере ресурсов).
  • Плотным образованиям кустов добавили дополнифтельные LOD-модели.
  • Вертолёты теперь всегда атакуют напалмом, если игрок не имеет доступа к шкафу.
  • Снизили стоимость крафта обычной и огнемётной турели.
  • Компоненты для крафта обычной турели теперь можно найти в фиолетовых ящиках и в ящиках рэдтаунов.
  • С4 теперь не будет прикрепляться к размещаемым декор-элементам (столы и стулья).
  • Теперь размещаемые декор-элементы можно двигать лишь при наличии доступа к шкафу и киянки в руках.
  • Теперь «пустые» торговые автоматы будут помечаться на картах красным.
  • С рыбы теперь можно будет добывать животный жир.
  • Исправлен баг, из-за которого нельзя было размещать стены рядом с металлической витриной, которая была установлена на треугольном основании.
  • Поправили баг: баф полуавтоматической винтовки и нёрф Р250, которые мы вводили ранее, из-за чего-то не вступили в силу.
  • Исправили баг: порт не отображался на картах.
 
Последнее редактирование:
Сверху