2016 08 11 06 46 28 aa581

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

Производительность CPU – Скрытые игроки

Такс, на протяжении долгого времени я продолжал спрашивать себя: «Почему мой FPS был очень высоким, когда я подключался на пустой сервер, а как только я присоединялся к фуловому серверу мой FPS падал до 30?» Изначально я полагал что вся проблема в большом объёме построек, но сделав несколько тестов, понял, что я был неправ. Взгляните на это:

Rust 2016 08 11 01 38 29 2bcb8

Все эти черные пятна – это игроки. Рендеринг и скининг игроков тратит огромное количество ресурсов на их обработку, хотя скорее всего вы даже не увидите этих людей. Процесс отрисовки игроков на сегодняшний день является очень затратным, потому я прикинул про себя: «Почему бы мне просто не отключить эти функции пока вы в живую не увидите этих игроков?» То, что начиналось, как тест в итоге привело к удивительным и впечатляющим улучшениям производительности. Я рисую луч между игроками и вашей камерой, и если вы не можете видеть игрока, все действия с ними отключаются. Производительность была повышена на 20-30%!

Вот скрины на сравнение (обратите внимание на FPS в нижней части).

До

Rust 2016 08 11 01 38 58 ee55f

После

Rust 2016 08 11 01 39 11 1cd9a

Вот как дынный процесс работает:

Если игрок спит и находится дальше, чем playercull.maxSleeperDist, происходит отключение
Если игрок жив и находится дальше, чем playercull.maxPlayerDist, происходит отключение
Если игрок находится ближе, чем playercull.minCulldist, происходит включение
Если мы движемся в том же направлении что и другогй игрок, происходит включение
Если другой игрок движется в нашем общем направлении, происходит включение
Если игрок находится позади нас, происходит отключение.

Если ни один из приведенных выше примеров проверки не являются истинным

Проводится линия от игрока к вам с разных точек на его теле,бесли какая-либо точка соприкасается с вами, происходит включение примерно за 2 сек.

Существует список ConVars, который может помочь вам настроить нахождение игроков, если настройка по умолчанию вас не устраивает. Вам необходимо написать » find playercull» в консоли (F1), чтобы просмотреть параметры конфигурации.

Если по какой-либо причине, у вас в конечном итоге FPS хуже чем было, вы всегда можете вернуть всё к старому виду, набрав » playercull.enabled false» в консоли.

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

Производительность CPU – Стрельба

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

Производительность CPU – Видимые игроки

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

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

profiler d7d0e

Бафф двустволки

Отыграв кучу времени с двустволкой, я сильно разочаровался в её убойной мощи из-за чего множитель урона был увеличен с 0,75 до 1,0. Это означает, что каждый выстрел этого оружия будет равен выстрелу с самодельного дробовика (пайпа), однако, чтобы сбалансировать это, я уменьшил точность двустволки уменьшил кд на второй выстрел до 0,5 вместо 1,0.

Изменение сигнала призыва

Игроки привыкли что аэродроп приземлится со 100% вероятностью именно в ту точку, куда брошен маркер. Я часто использовались высокие вышки 1 х 1 которые использовались именно для этой цели. Поэтому я решил добавить немного рандома +/- 20м, от маркера призыва, полностью исключив предсказуемость. Я также снизил шанс выпадения сигнала призыва в ящиках и т.д.

Таблица лута

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

Другое

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

Изменение маяка

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

rust lighthouse greybox interior a ce5bb rust lighthouse greybox interior b 1451c rust lighthouse greybox a 67511
rust lighthouse greybox distance c9606 rust lighthouse greybox b ff5cd

Военные туннели

Прогресс в области военных туннелей неплох. В настоящее время план туннелей включает в себя пару новых ответвлений и пробную версию системы этажей.

dungeons art 088 ab554

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

Server Weapon Verification

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

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

Довольно сложно искать подобные ошибки в тестовой среде, зато теперь у нас есть более или менее правильно работающий журнал сервера.

Использование кодового замка

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

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

Как вы помните, в недавнем 120 Девблоге, была полностью изменена анимация гранаты F1. По схожему методу, я изменил анимацию гранаты из-под банки бобов.

До

После

Костяная броня

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

BoneArmourBake a89d3

А тут вы можете повертеть 3D модель брони:

LR300 штурмовая винтовка

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

lr300 1 736b5 lr300 2 093bb lr300 3 2bd2a

А тут её 3D модель:

Звуки двустволки

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

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

Музыка

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

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

Торговый автомат (концепт)

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

RUSTvenderconcept2as ad470

Эволюция графики

Вот пара скриншотов из глобальной перестройки графики.
2016 08 11 06 33 19 d08be 2016 08 11 06 37 22 3909e
2016 08 11 06 39 26 8342a slack imgs d3e02

Research Progress

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