Dev-блог 129

Dev_Blog_129_1.jpg


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

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

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

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

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

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

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

Dev_Blog_129_2.gif


MP5
Наконец я с ней закончил. Теперь она готова к анимированию.

Dev_Blog_129_3.jpg
Dev_Blog_129_4.jpg


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

Dev_Blog_129_5.jpg


Dev_Blog_129_6.jpg


Dev_Blog_129_7.jpg


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

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

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

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

Вот примеры работы разных шаблонов на одном и том же объекте:

Dev_Blog_129_8.jpg
Dev_Blog_129_9.jpg
Dev_Blog_129_10.jpg


Огнемётная турель

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

Dev_Blog_129_11.jpg
Dev_Blog_129_12.jpg



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

Dev_Blog_129_13.jpg


Sound OcclusionAlex Rehberg
На этой неделе я имел честь что-то закодить, таким образом теперь у нас имеется звуковая окклюзия! Если совсем вкратце, это значит, что звук будет воспроизводится по-разному в зависимости от того, есть ли между вами и источником звука что-либо. В идеале, я хотел бы, что бы у нас была возможность приглушать звуки, вместо тупого понижения их громкости.

low-pass filter - идеальный инструмент для этого, однако тот фильтр, что имеется в Unity - полный отстой, поэтому я сделал свой собственный.

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



Changelog
— Устранён баг с потемнением половины экрана на AMD R9.
— Устранён баг обесцвечивания освещения деревьев.
— Исправлен недочёт, из-за которого вода отображалась некорректно после изменения размера окна во время включённых отражений.
— Убрано системное сообщение о блоке постройки после неудачной попытки построить что-либо в зоне блока постройки.
— Значительно оптимизировали триггеры "резки" местности (улучшенная производительность снарядов).
— Оптимизировали множество небольших проблемных областей в префаб пулинге и LODинге.
— Оптимизировали клиентский сетевой код для лучшей производительности стриминга объектов.
— Устранили ненужные перераспределения строк при создании объекта (+ к производительности и - к "мусору" в коде игры).
— Устранили небольшую динамику при распределении памяти (- к "мусору" в коде игры).
— Добавлен лог, обозначающий полноценный старт сервера (полезная вещь при диагностике серверных проблем).
— Добавлена консольная команда refresh_stability (полезна во время отладки).
— Куски разрушенных каменных ворот теперь будут отображаться корректно.
 
Последнее редактирование:
Сверху