Dev-блог 128

Dev_Blog_128_1.jpg


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

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

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

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

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

Dev_Blog_128_2.jpg
Dev_Blog_128_3.jpg


Локационная компонентная система

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

  • Металлическая труба.
  • Верёвка.
  • Шестерни.
  • Клей.
  • Скотч.
  • Дезинфектант.
  • Различные тех. части (платы, схемы и прочее).
  • Аккумулятор (батарея).
  • Брезент (непромокаемый тент).
  • Гвозди.
  • Винты.

Во-вторых, вот список изменений игры, которые мы внесём для того, чтобы содействовать новой системе:

  • По умолчанию, любую вещь можно будет скрафтить.
  • Для крафта будут требоваться компоненты из лута.
  • Фрешспавны (Ньюманы) будут появляться на южной стороне карты.
  • Радиация:
    • Чем ближе к северу, тем сильнее фон.
    • Если идти в радиации без защиты, движение будет заторможено.
    • Защищать от радиации будет одежда.
    • Для высоких уровней радиации будет требоваться анти-рад. костюм.
  • Высокоуровневые тех. детали, будут спавниться только на севере.
  • Будет произведена ребалансировка процесса сбора ресурсов, дабы привести его к соответствую с Legacy.

Идея заключается в том, что чем дальше вы продвигаетесь по карте, тем более продвинутые компоненты вы сможете находить, а они, в свою очередь, позволят вам крафтить высокоуровневые предметы. Когда вы будете бродить по рэдтауну и находить там кучу всяких компонентов, вам придётся выбирать, куда их приспосабливать, ведь многие из них будут требоваться сразу для нескольких чертежей. С помощью радиации, мы будем препятствовать массовой беготне к высокоуровневым лут-поинтам. То есть, для того, чтобы достать топовые предметы, вам придётся подниматься по своего рода "лестнице".
Я надеюсь, добавляя компоненты, которые можно будет найти только в луте, мы сможем раздробить население серверов на сегменты, по градиенту, от слабых к сильным. Согласно плану, когда вы заспавнитесь на пляже, у вас будет минимум шансов столкнуться с парнями с АК47, т.к. у них просто не будет причины находиться в той части карты. Конечно, никто не исключает фактор гриферства, но по крайней мере, вы не будете конкурировать с ними за одни и те же части карты, как сейчас.
Есть несколько проблем, о которых мы знаем. Например, после рейда или убийства, у вас не будет абсолютно никаких утешительных факторов. Сейчас, после того, как вас зарейдили, вы понимаете, что у вас, как минимум, остаются открытые чертежи, а если же вас убьют во время добычи ресурсов, вас будет радовать тот факт, что заработанный опыт никуда не исчезнет. Само собой, это проблемы психологии и восприятия, но всё же. Возможно нам придётся что-то предпринять, дабы ослабить эффект апатии. В общем, во избежание запуска очередной "системы опыта", жду ваших мнений относительно этого вопроса на Reddit.

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

Производительность рендеринга воды
Хелкус дал наводку на проблему, из-за которой система рендеринга воды вела себя достаточно странным образом на картах, где нет рек или озёр (Barren, Savas). Я исправил этот недочёт, так что после обновления, вы должны ощутить небольшое увеличение FPS-а на этих картах.

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

Ambient occlusion на моделях в виде от 1-го лица
Я внёс некоторые изменения в нашу систему ambient occlusion, дабы наладить контактное затенение на наших моделях в виде от 1-го лица. Сама функция как бы уже была там, нам лишь потребовалось внести кое-какие корректировки в системы её контроля.

Dev_Blog_128_4.gif


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

Замечания относительно контроля параметра качества местности
Раздельные "рычаги" управления LOD-шейдерами закономерно привели к некоторым проблемам. Например, высокодетализированные блестящие мокрые объекты сильно выделяются на фоне низкодетализированной сухой ровной песчаной поверхности. Единственное решение для такой проблемы - централизация управления LOD-шейдерами.

Шейдер смешения материалов для пещер
По просьбе Винса, сделал специальный шейдер для настройки материалов в пещерах. Этот шейдер позволяет смешивать несколько текстур также, как если бы они были отдельными материалами. Этот шейдер будет полезен не только в работе над пещерами. Если хотите оценить результат, смотрите в блок Винса.

Ambient Light VolumesAndré Straubmeier
Interior lighting in Rust still kind of sucks. A lot. This is hurting us especially hard in the new tunnel and sewer systems and the artists were in desperate need of a solution. To solve this I implemented an environment query system that allows artists to assign certain environment types (for example underground) to areas around the world. This can then be used to disable things like outdoor ambient lighting or do whatever crazy things they come up with. While the back-end for this is done, the existing dungeons have to be updated for it to have any effect, so don’t expect it to hit before the next wiping update.

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

Смещение травы
Эта вещь была в Legacy-версии, а позже и в Experimental, но потом нам пришлось её убрать, т.к. производительность скатилась на дно. Я говорю о системе, которая "сминала" траву, когда вы по ней проходили. Сейчас я нашёл новый способ, благодаря которому мы сможем реализовать её и в то же время не ухудшить производительность игры. Первичная итерация этой системы уже в игре и у вас есть возможность её протестировать (активация находится в опциях настройки графики). После включения этой опции, игроки будут оставлять следы на траве в течение 60 секунд. Ко всему прочему, если пройти по уже "мятой" траве - она помнётся ещё сильнее. Всё это добавлено в игру в рамках эксперимента, таким образом оно может наебнуть (а может и не наебнуть) всё вокруг. Тестируйте.

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

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

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

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

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

Dev_Blog_128_5.jpg


Маяк
Я полностью с ним закончил. Коллизия, LOD-инг, лутспавн, рабочие двери, всё это уже в нём. Однако, из-за обилия изменений, вам придётся подождать до следующего вайп-обновления.

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

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

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


Список изменений:
  • Добавлена новая экспериментальная функция смещения травы (по умолчанию отключена).
  • Немного смягчили контроль фокуса во время восстановления игрока после ранения.
  • Статус о разрешении на постройку теперь активен только если держишь строительный план или киянку.
  • Система блока построек, помимо позиции игрока, теперь также отслеживает и позицию размещаемой конструкции.
  • Устранили проблему, из-за которой респавн на спальниках, расположенных на склонах, приводил ко множеству ошибок.
  • Исправили недочёт, из-за которого система блока стройки начинала работать неправильно.
  • Слегка оптимизировали коллизию местности.
  • Устранили баги размерности поверхностей после изменения размера окна.
  • Устранили краш при смене сервера.
  • Устранили баг DX9, из-за которого превью модели персонажа становилась белой.
  • Исправили производительность системы воды, на картах без рек.
  • При включённой функции ambient occlusion, на моделях (от 1-го лица) теперь присутствуют контактные тени.
  • Параметр Terrain Quality более не воздействует на Lod-инг местности.
 
Последнее редактирование:
Сверху