Первая информация о человекоподобных NPC, оптимизация и другое.
Человекоподобные NPC
Я не знаю, помните вы или нет, но некоторое время назад я показывал концепт NPC ученого.
На прошлой неделе я потратил некоторое время на программирование ботов, которые помогут мне тестировать баланс оружия на движущихся целях в Rust. Когда я создавал ботов, я понял, что большая часть из того что я сделал может понадобиться нам если мы захотим ввести в игру человекоподобных NPC, которых мы уже давно хотели добавить. Я пропотел и добился больших успехов.
Плохая новость состоит в том, что это заняло у меня всю неделю и оно еще не готово к выходу на этой неделе, и мы не хотим выпускать кусок дерьма, который будет крашить сервера, так что это нужно еще хорошо протестировать.
Я думаю, я создам несколько разных типов с разным оружием (они будут иметь разные цвета) и я добавлю их на определенные радтауны. Вы не получите то, что будет при них на самом деле, когда будете лутать их, но вы сможете забрать некоторые интересные, новые штуки. Они будут немного умнее чем дерьмовая система ИИ животных. Они уже знают как преследовать, обходить с фланга, прикрывать и т.д.
Я думаю это будет веселое изменение в игре, и это наконец позволит игрокам выходить из дома и убивать кого-нибудь кроме голых людей, которые только что купили игру (однако, если это один из путей вашего развлечения, вы можете продолжать и продолжать). Может быть, эти парни помогут нам раскрыть некоторые аспекты истории Rust...
Мы так же хотим создать концепт нового антирад костюма, так как сегодняшняя модель создавалась для этих NPC, возможно мы переработаем эту, но без лягушачьих сапог.
Правки в собирание предметов
Я исправил два больших бага при собирании предметов. Первый заключался в том, что когда вы поднимали семена, они постоянно собирались в хотбар, даже если у вас в инвентаре уже был стак с этими семенами. Теперь это пофикшено, так что семена (и любые другие стакаемые предметы) теперь кладутся туда, где лежит все остальное. Второй баг был абсолютно противоположным и касался грибов. Они никогда не ложились в хотбар, не важно, были ли там уже грибы или нет. Эти предметы теперь подбираются в хотбар, но вы так же можете переместить их в инвентарь, если у вас есть другие предметы для него.
Система листвы
Я вернулся к новой системе листвы после ее заморозки на несколько прошедших месяцев из-за других важных элементов. Я добавил случайное затенение, масштабирование и затенение на дистанции чтобы сделать их более похожим на старую систему травы и SpeedTree шейдеры. Я так же добавил правила для размещения, которые основываются на размерах объекта. Они позволят художникам получить нужный результат при смешивании ячеек травы и листвы. Еще одна вещь, над которой я начал работать - это рендеринг с помощью инстенсинга, а не пакетной обработки, что значительно снизит нагрузку на процессор и использование памяти. В планах сделать новую траву, которой должен заняться Винс после возвращения с отпуска, а пока что все эти изменения останутся в стороне невидимые для вас.
Оптимизация скинов
Скины все еще остаются одной из самых главных причин падения производительности у некоторых игроков, возникающую при просчете новых скинов которые еще не успели попасть с кэш. Я временно добавил систему, которая скачивает и обрабатывает все видимые скины в экране загрузки когда вы спаунитесь или респаунитесь. Это устраняет значительное снижение производительности сразу после появления и особенно помогает людям с медленным интернетом, так как у них сильно лагало при загрузке начальной партии скинов. Эта функция может быть отключена с помощью команды skinwarmup , поэтому, если что то не работает, просто пропишите это и добавьте в конце 0, чтобы полностью отключить ее.
Как основное решение мы решили внедрить собственный поточный резервный сервер для загрузки текстур скинов PNG файлами и сжимать их до DXT. Это еще не сделано, но когда это наконец произойдет, это полностью устранит задержку в 30-60мс, которые происходят при каждом вызове загрузки и сжатия текстур Unity. До сих пор мы надеялись, что Unity сможет позаботиться об этом для нас и добавить асинхронные методы, которые не блокируют основной поток, но не похоже, что это произойдет в ближайшее время, поэтому мы решили взять все в свои руки. Я надеюсь закончить это в выходные, чтобы мы могли начать текстурирование на следующей неделе.
Оптимизация декалей
Есть еще несколько вещей, который требуют оптимизации в новой системе декалей. У некоторых декалей был отключен инстенсинг для их материалов, поэтому они рендерились медленнее чем остальные. Животные неверно спаунили много следов на всех типах поверхностей, даже если они были едва заметны на них. Все это исправлено и декали теперь выглядят достаточно хорошо.
Оптимизация размещения
После добавления нашей системы инстенсинга, которая хорошо проявила себя в скорости рендеринга разных декалей, я добавил поддержку инстенсинга для листвы на прошлой неделе. Это должно улучшить производительность при размещении листвы, особенно когда вокруг много игроков.
Паки текстур
Я начал работу над оптимизацией, от которой я ожидаю ряд преимуществ. Мы начали разработку этой игры используя стандартные шейдеры Unity, которые, будучи быстрыми и удобными в использовании, не были оптимизированы для конкретных случаев. С тех пор мы улучшаем набор шейдеров, чтобы сделать его более быстрым и красивым, но ни разу не изменяли и не оптимизировали сами материалы, их свойства и текстуры.
Некоторые из наших материалов имеют множество свойств и слишком много текстур. Это может стать огромным слабым местом, особенно последнее.
Работа будет включать в себя создание паков текстур, чтобы уменьшить их общее количество. Конечным результатом будет снижение нагрузки, более быстрые шейдеры, уменьшение веса сборки игры и, что более важно, экономия оперативной и видеопамяти. Это принесет пользу для слабого железа больше, чем что-либо еще, но улучшения должны быть заметны на всех машинах.
Мы реализовали и выпустили аналогичное решение давным-давно, хотя и только для рендеринга рельефа. Это имело смысл, так как рельеф это более половины того, что рендерится в каждом кадре. Теперь мы расширим его для всего остального.
Контактные тени
Я провел много времени над улучшением теней, но на данный момент все еще есть некоторые аспекты, требующие оптимизации, прежде чем я смогу окончательно погрузиться в работу. То что мне удалось сделать за сравнительно короткое время, заключалось в раскрытии контактных теней, которые имеют прямое отношение к производительности.
Контактные тени - это техника затенения экрана, которая работает для дополнения затененного отображения. Они выглядят более точными при захвате локальных затенениях на поверхностях.
Первое, что вы заметите после их включения - это то, что модель от первого лица теперь имеет затенения:
Затенения на игроке выглядят более круто:
Вы также заметите это в тоннах других мест: например, в ваших постройках, где свет просачивался на местах стыков. Он смягчится или даже устранится полностью. К сожалению, этот метод будет влиять на производительность, и в некоторых ситуациях не работать. Вы заметите, как тень от травы станет более темной и более заметной. Вы можете ожидать улучшения в этой области.
Контактные тени отключены по умолчанию. Включить их можно в настройках графики в разделе качества графики, прямо над опцией Shadow Cascades. Не стесняйтесь пробовать. Я бы порекомендовал их для игроков, играющих на GTX 970\1060 или R9 380 и выше.
Ракетный завод
На этой неделе Винс в отпуске. С ракетным заводом покончено. Я перешел к работе над остальными частями пусковой площадки.
Я закончил строительство нового складского здания и переработал структуру окружения, чтобы оно было более структурированным. Кроме того, я начал работать над соединительным переходом, чтобы довести эту область до должного результата. Прежде чем отправиться на отдых, Винс закончил работу над контрольно-пропускными пунктами.
Остров Hapis
Просто даю вам знать что работа над островом Hapis продолжается и выглядит хорошо. У нас есть много улучшений и несколько радикальных изменений (вы заметили намек в прошлом блоге?). Я расскажу больше деталей когда мы приблизимся к концу месяца.
Музыка
Я потратил много времени, тестируя музыку на этой неделе и нашел несколько мест, где ощущались изменения в интенсивности, или музыка звучала неправильно на определенных уровнях. Я уже исправил большинство из них, но есть еще несколько мест, где мне нужно написать больше музыкальных дорожек, чтобы заполнить пробелы в новых треках.
Звуки
Мнения по поводу звуков холодного оружия разделились на прошлой неделе, так что я внес некоторые правки и сделал их немного глубже и отчетливей.
Теперь когда мои уши насладились новыми звуками шагов, я проделал еще один шаг для босых ног (и буду работать над ними в отличии от остальных). Большинство из вас, вероятно, этого не заметят, но сейчас они немного чище и естественнее.
Я исправил ошибку, из-за которой звуки иногда прерывались чуть раньше, чем если бы они были разбиты во время рандомизации тона. Это не проблема, потому что у нас была небольшая задержка между остановкой и повторным использованием звука. Мы устранили эту задержку, и, хотя в большинстве случаев это было не заметно, вы иногда слышали слабый щелчок в конце звука, если он был разбит, потому что мы не учитывали изменения длительности, вызванное отладкой звука при принятии решения о его повторном использовании.
Я также создал новый звук для дропбокса\почтового ящика, а также добавил микширование и громкости горстке звуков.
Список изменений:
- Новые звуки для дропбокса и почтового ящика
- Добавлена ступень загрузки скинов в экран загрузки
- Добавлена ступень закачки и обработки скинов в экран загрузки
- Добавлен инстенсинг, оптимизирующий листву
- Добавлена функция контактных теней в настройки игры
- Длина звука теперь определяется случайно
- Исправлены звуки полета самолета
- Исправлена ошибка, когда животные создавали кучу невидимых следов
- Исправлены декали, у которых был отключен инстансинг
- Коллайдеры деревьев теперь просчитываются как земля на стороне сервера во время ходьбы игроков
- Доработаны следы босых ног
- Доработаны уровни звучания различных звуков
- Доработаны звуки оружия ближнего боя
- Обновлен EAC
- Изменено значение maxrpcspersecond по умолчанию на 200
- Применяемые предметы сразу ложатся в быстрые слоты при собирании
- Стакаемые предметы теперь складываются в уже ранее созданные стаки
- Добавлено сглаживание рельефа в дали на высоком уровне качества шейдеров (600)
Комментарии