Devblog 98 — много фиксов производительности, или очередные фиксы фиксов?

Приветствую, друзья! С вами Алекс Баттхёрт в компании очередного девблога, и, если кратко, то в нём произошло следующее:

Долгое ожидание закончено: добавлены серверные очереди! Также переделана карта Hapis, добавлены действия правой кнопкой мыши для инвентаря, новые концепты RAD животных и и произведены работы по оптимизации. Впрочем, как всегда — постоянная оптимизация. Ну и много чего ещё ?

Ну что, поехали?

По традиции, предлагаю для начала посмотреть мой краткий видеообзор:

Музыка (Alex Rehberg)

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

Я немного поиграл в Rust с написанными мною треками,  звучащими в фоне, и большая часть из них звучит достаточно хорошо. Некоторые же из них слишком навязчивы и продолжительны, поэтому теперь я работаю в направлении уменьшения избыточности музыки в игре (сюрприз, да? — примечание переводчика). Я подрезал часть «жирка» с некоторых треков, убрав некоторые атмосферные элементы и драм-партии.

Система уровней и опыта (Garry Newman)

Я уткнулся в препятствие при разработке системы опыта и уровней. У меня нет возможности. продолжать её разработку, не имея возможности обкатать уже созданные наработки в игре. Так что скором — быть может, на этой неделе — ждите появление данной системы в pre-release ветке игры.

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

Очередь подключения (Garry Newman)

С некоторых пор довольно большое количество игроков просили нас добавить очередь подключения, чтобы не приходилось постоянно жать кнопку «Connect» при попытке зайти на любимый переполненный сервер. Что ж, теперь очередь существует и работает.

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

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

правый клик в инвентаре (Garry Newman)

Вы помните, что щелчком правой кнопки мыши можно перемещать предметы из лут-панели в инвентарь? А почему бы и не сделать, чтобы можно было правым кликом перемещать и и из инвентаря в лут-панель? Теперь можно делать и так

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

Изменения в береговой линии (Diogo Teixeira)

 Подготавливая Rust для Unity 5.4, я изменил взаимодействие береговой линии с окружающими объектами. Например, камни и обломки деревьев теперь выглядят мокрыми  и больше соответствуют на вид близкому расположению воды. Чуточку.

Коммент от Алекса Б., то есть меня — чуваки, вам реально кажется, что в игре нет более важных задач?!

Более заметная проблема, которую нам предстоит решить на следующей неделе — очень раздражающие z-глюки происходящие на стыке воды и берега (Вот с чем реально надо бороться-то! — прим. переводчика).

Условные модели 2.0 (André Straubmeier)

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

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

Ревизия на Hapis (Petur Agust)

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

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

Всем этим я занимаюсь в данный момент, поэтому ожидайте переработанный Hapis после очередного вайпа. Он всё ещё не будет идеальным, но станет куда лучше. Вот несколько примеров «до» и «после».

Лаги разрушения объектов André Straubmeier

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

Стриминг зданий (André Straubmeier)

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

Работа над данжами (как обычно, Vincent Mayeur)

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

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

Концепты растений в горшках (Howard Schechtman)

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

Концепты животных (Howard Schechtman)

После рисования концептов (рисунок выше на странице) я подумал, а почему бы и не обзавестись домашними питомцами в клетках?

Озвучка размещения объектов (Alex Rehberg)

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

Переработка моделей игроков (Taylor Reynolds)

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

Мутировавшие животные, концепт (Paul Bradley)

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

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

Радиоактивный кабан концепт и модель (Tom Butters)

Paul нарисовал это чудище… вы только посмотрите на это!

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

Концепты миномётов (Paul Bradley)

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

Улучшения деревьев (Petur Agust)

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

Анимация модели деревянной киянки (Alex Webster)

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

Changelog

Кратко обо всех изменениях в девблоге:

новый звук посева семян
Новый звук метания копья
Добавлена очередь подключения к серверу
правый клик по предметам в инвентаре при открытом луте переместит их в лут-панель
правый клик по предметам, одетым на игрока, переместит их в инвентарь
правый клик по предметам на поясе переместит их в инвентарь
исправлены ненадёжные сохранения
улучшена и настроена прибрежная зона
прибрежные объекты, например, камни и бурелом, теперь выглядят мокрыми
Обновлены анимации киянки
Добавлена новая система условных строительных моделей (производительность, стабильность, внешний вид)
Уменьшены лаги и фризы, возникавшие при удалении объектов во время выхода из сетевых групп
добавлена заполняющая геометрия зданий на время, пока их скин загружается
Загружены сбалансированные рабочие инструменты, обрабатываемые в порядке приоритетов
Обработка мешей сделана более быстрой в некоторых ситуациях
Внешние стены и оконные решётки используют упрощёные объекты строительных блоков
Сконвертированы события объектов, было OnDestroy, стало DoEntityDestroy (моддеры, внимание!)
Убран физический слой “Скин постройки” (моддеры, внимание!)

 

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

За сим не прощщаюсь, но прерываюсь до новых статей и обзоров, искренне ваш, Алекс Б.

Читайте также