У нас огромный девблог на этой неделе: первый взгляд на лицевую анимацию, расширение применения воды, и возможность делиться результатами бенчмарков в игре. Ну и, как обычно, балансировка, фиксы, одежда, предметы, рвота, шаги и многое другое.
Всем привет, ребята, с вами Алекс Б.! Я только что доделал полный перевод девблога 107 и, как обычно, предлагаю краткий обзор для тех, кто не любит много букв:
Если жаждете подробностей — их есть у меня, ниже под катом.
Лицевая анимация (Taylor Reynolds)
Я занялся процессом придания моделям в Rust вида живых людей, которые дышат, живут и испытывают эмоции (тут подробнее о переходах лицевой анимации). Эти переходы комбинируют карты нормалей и меняют цели для придания реалистичного вида кожи и мускулам, двигающимся поверх костей.
Первоначально это будет применяться для индикации состояния игрока — голод, холод сделают игрока угнетённым и несчастным, в темноте и одиночестве они будут выглядеть напуганными. Здесь ещё много возможностей, например, отображение эмоций, выражаемых вами через слова в чате.
Волосы (Taylor Reynolds/Matt Isaac)
Это как раз то, что идёт рука об руку с работой над переходами лицевой анимации. Да, это не необходимо для отображения бороды или волос прямо сейчас, но нужно, чтобы в будущем не пришлось работать над совместимостью модели игрока с вышеупомянутой растительностью. Всё это ранние тесты, в основном для проверки отработки лицевой анимации и на растительности на лице, особенно при комбинировании вариация головы с анимациями эмоций.
Солёная вода (Maurino Berry)
Продолжая изменения прошлой недели, я расширил систему работы с водой — добавил солёную воду, которая, что очевидно, берётся из океана и непригодна для питья. Вы по-прежнему можете тушить ей огонь, но попытка выпить её приведёт к получению урона здоровью, рвоте и потере части показателей сытости/жажды.
Пресная вода (Maurino Berry)
Пресную воду можно найти в озёрах, ручьях… в общем, в любом месте выше уровня моря. Работает она так же, как старая вода — утоляет жажду, даёт немного прибавки к здоровью, но теперь поменьше, чтобы не восполнять до 40 единиц здоровья. Мы также добавили новый предмет, фляжку для воды, которая вмещает в себя больше жидкости, чем бутылка.
Аспекты выживания (Maurino Berry)
В связи с изменениями применения воды, нужно было сделать некоторые изменения в метаболизме, в частности при беге и использовании предметов вы теперь будете терять больше калорий. вы также сможете использовать воду для увеличения уровня высокой активности и оставаться полными сил. Если же уровень воды в организме упадёт слишком низко, вы не сможете быстро бегать до тех пор, пока не попьёте пресной воды и не собьёте температуру тела.Возможно, всё это потребует временного отключения и балансировки, но для вас не должно составить проблем найти источник пресной воды и попить её прямо из водоёма, просто нажав E, находясь рядом с ним (за исключением воды из океана, конечно же!).
Бурдюк для воды (Maurino Berry)
Я привёл функциональность бурдюка к единому знаменателю с ведром — это значит, что вы сможете набирать в него воду в любом источнике и пить её прямо из него же по щелчку левой кнопкой мыши, а также сможете выплеснуть содержимое на огонь. Естественно, у бурдюка есть пробка, так что можно без проблем запасти воду в инвентаре! Я также понизил стоимость крафта до 15 ткани (вместо 100 ткани и 30 животного жира). Так что будет нетрудно найти ресурсы для его крафта и быть всегда при воде.
Уменьшение кровопотери (Maurino Berry)
Мне всегда не нравилось в кровотечении слишком быстрое убийство раненого игрока. Истекание кровью за секунды — это нереалистично, поэтому я понерфил кровотечение до четверти урона наносимого каждый момент времени (в сравнении с первоначальным). Так что теперь у вас будет время для нахождения ресурсов для бинта и его крафта, прежде чем вы истечёте кровью. И, конечно, по итогам следующей недели последуют изменения с целью балансировки.
Вместимость ёмкостей для воды (Maurino Berry)
Вместе с введением в игру фляжки и бурдюка я удвоил ёмкость бочек для воды и вёдер, чтобы они больше подходили для переноски/хранения больших объёмов воды. Это пригодится в скором времени, когда мы начнём добавление опреснителей в игру.
Бенчмаркинг (Garry Newman)
Когда нам кажется, что мы увеличили производительность, мы не имеем способов проверить это. Поэтому мы тукаемся в темноте вслепую, надеясь угадать и попасть в нужную точку. Я потратил много времени на осознание необходимости бенчмарков и необходимости запуска их на одних и тех же компьютерах, каждую версию, снова и снова. Так мы сможем сравнить изменения и выявить, насколько эффективны они оказались, а это позволит уточнить и ускорить написание программного кода.
Итак, вот с чего мы начали: мы подняли несколько серверов с разной конфигурацией оборудования: у нас есть слабенький ПК, середнячок, а ещё iMac и парочка других конфигураций для тестирования каждой версии Rust, которую мы создаём Результаты бенчмарков публикуются на веб-сайте. Ну а потом мы сможем заняться анализом полученных данных.
Так что, если мы обновим unity, не будет необходимости спрашивать на reddit об изменениях в производительности у пользователей после каждого обновления.
Делитесь результатами своих тестов
Чтобы запустить тест на вашем компьютере, достаточно, находясь в игре, открыть внутриигровую консоль, и набрать «benchmark». Он произведёт набор тестов и затем отобразит интернет-страничку с результатами. Вот мой рабочий ПК. Вы также можете делиться своими результатами с друзьями, сравнивать их и подмечать эффекты от наших изменений.
Результаты тестов отображаются в миллисекундах, а значит, что более низкие значения означают более хорошие результаты. Со временем мы добавим ещё несколько разновидностей тестов. А пока что — вот краткаое объяснение назначения уже существующих:
Модель игрока
Рендерит и анимирует сотни моделей игроков. Это тест на скорость работы анимации и скининга.
Перепостройка модели игрока
Когда модель игрока показывается первый раз, или игрок меняет одежду, приходится заново строить модель. Это потенциально медленный процесс, особенно при высоком количестве спящих
Procmap.Gen
Сколько времени занимает процедурная генерация мира? Это один из самых ресурсоёмких моментов в Rust на сегодня. Нужно срочно всё это улучшать, а не ждать, пока станет ещё хуже. Этот тест также весьма зависит от железа, на котором он запускается, всё занимает от 30 секунд до 3 минут.
ProcMap.Normal
Рендеринг процедурной карты с с травой и декорациями, но без деревьев. Этот тест удивил меня тем, насколько эти операции оказались медленными. Если всё будет так же медленно и без отрисовки построек, то у нас проблемы.
ProcMap.noGrass
Многие считают, что трава сильно снижает производительность. Этот тест призван доказать обратное.
ProcMap.NoDecor
Декорации, это, например, кусты, цветы, древесные обломки на берегах. Этот тест похож на тест без травы, нам интересно, насколько весь декор меняет производительность, и нужно ли будет сделать его отключаемым.
ProcMap.Rain
Дождь понижает fps? Так сложилось исторически и продолжается до сих пор? Тест позволит выявить зависимость производительности от дождя… или всё же от тумана.
SkinnedMeshCollider
В этом тесте выстрелливается множество невидимых пуль во множество моделей игроков для проверки производительности генерации хитбоксов. Это потенциально медленная операция, и будет совсем нелишним протестировать её производительность.
Производительность (André Straubmeier)
Я немного поработал над производительностью на той неделе. Была исправлена экстремально низкая производительность при взгляде на рядом стоящих игроков в некоторых ситуациях, что случалось даже на расстояниях больших, чем допустимая дистанция взаимодействия. Есть ещё некоторые проблемы в оптимизации текстурированных коллайдеров объектов, используемых для игроков, но эта — наиболее сильно влияет на производительность. Я также устранил провалы по частоте кадров при построении объектов игрока и инициализации коллизий при передаче данных о спящих и игроках от сервера к клиенту, что случалось постоянно при ходьбе около них.
Меню самовзаимодействия (André Straubmeier)
Таким заковыристым именем я назвал концептуальное меню,которое будет отвечать за взаимодействие игрока со статичными объектами, на которые нет необходимости прицеливаться, например — чтобы попить воды из водоёма, причём для его использования достаточно будет подойти к объекту и нажать «E». До этого такое меню использовалось лишь при взаимодействии с некоторыми динамическими объектами, такими, как ящики, печи, двери и т.д.
На данный момент это меню используется исключительно для взаимодействия с водой, но не исключено, что в будущем мы найдём ему ещё несколько областей применения.
Трудности с размещением объектов (André Straubmeier)
Я исправил несколько проблем в системе размещения объектов, самой раздражающей из которых была проблема с экстремально трудным размещением некоторых объектов в правильное положение, например, ящики при размещении их на полках.
Эксплоиты лутания (André Straubmeier)
Были исправлены эксплоиты, позволявшие игрокам лутать объекты через промежутки между строительными блоками.
Изменение направления полёта пуль и снарядов (André Straubmeier)
Я хотел добавить эту фишку в игру уже очень давно, и наконец-то добился этого за прошедшую неделю. Теперь снаряды (или пули, или стрелы) при проникновении через стены меняют свою траекторию наиболее реалистичным путём. Насколько существенными будут изменения траектории, зависит от типа поверхности и снаряда (пули или стрелы).
Несовпадение коллайдеров ресурсов (André Straubmeier)
Была исправлена проблема, когда коллайдеры ресурсов на клиентской и серверной стороне не совсем совпадали, что особенно сильно было заметно на примере разнообразных руд.
Проблемы с чатом (André Straubmeier)
Была найдена пара проблем при рендеринге и удалении сообщений в чате. Это могло серьёзно просаживать производительность в моменты большого оживления в чате, и на некоторых модифицированных серверах люди использовали эту уязвимость для интенсивной просадки производительности у других игроков, вплоть до вылета игры. Всё это теперь исправлено.
Звуки рвоты (Alex Rehberg)
Я сделал данную озвучку на случай, если у вас хватит ума попить солёной водички.
Работая над этими звуками, я смог добиться того, чтобы они звучали по-настоящему неаппетитно и отбивали напрочь желание поесть.
Доработка озвучки шагов (Alex Rehberg)
На этой неделе я записал несколько разных звуков шагов и закончил с обновлением звуков шагов в обуви. На очереди звуки шагов босиком.
Микширование и сведение звука (Alex Rehberg)
Работа над микшированием постепенно движется к завершению, и меня реально радует, как всё звучит уже сейчас, так что, я думаю, есть большие шансы увидеть обновлённую озвучку к следующему вайпу.
Здания в данжах (Vincent Mayeur)
Я только что завершил здания и они выглядят хорошо! Я заменил целый набор моделей зданий без текстур на уже завершённые версии. Осталось доделать парочку зданий, например, водонапорную башню и среднеразмерные постройки. Всё это поможет данжам выглядеть просто здоровски.
Переработка анимации игроков. (Mihn Le)
Я завершил конвертацию всех старых анимаций игроков, которую начал на прошлой неделе. Новые анимации используют меньше памяти и весьма заметно оптимизированы в сравнении со старыми. Также это исправит отсутствие отображения прицеливания игрока со стопроцентной точностью.
Наконечники стрел (Mihn Le)
Я настроил отображение стрел с разными наконечниками при использовании арбалета/лука. Наконечники были смоделирована Tom Butters в пяти различных вариациях. Вот образец того, как они будут выглядеть.
Улучшения анимации лошади и медведя (Mihn Le)
Я внес некоторые изменения в анимацию лошадей и медведей с целью сделать их более плавными и гладкими.
Диспенсер и опреснитель (концепты) (Howard Schechtman)
Я поработал над несколькими концептами для будущих объектов для работы с водой.
Диспенсер (Tom Butters)
На этой неделе я поработал с диспенсером, который нарисовал Хоуи. Это очередной устанавливаемый игроком объект, позволяющий хранить столько воды, сколько вам потребуется. Спасибо Винсенту за его отличные текстуры.
Вы тоже можете полюбоваться результатом:
Концепт пояса для инструментов/оружия (Paul Bradley)
Я поработал над примитивным решением для размещения инструментов и оружия на игроках. Считаю, что игроки должны спавниться с простеньким поясом, таким образом, со стороны будет видно, что у них есть с собой, например, копьё.
Концепт женской одежды (Paul Bradley)
Теперь у нас есть офигенные женские модели за авторством Тейлора, а следовательно, было бы неплохо их и приодеть во что-нибудь особенное. Начнём, пожалуй, с самой примитивной одежды низшего уровня, которая крафтится на скорую руку из простой ткани.
Список изменений
Добавлены бенчмарки Добавлено изменение траектории снарядов и пул при проходе через препятствия Добавлены меню самовзаимодействия игрока (пока что только для питья) Улучшена производительность стриминга игроков и спящих с сервера Исправлены большие проседания производительности при взгляде на рядом стоящих игроков в некоторых ситуациях Исправлено удобство при установке динамических объектов пользователем (ящики, бочки и т.д.) Исправлены некоторые размещаемые объекты, устанавливавшиеся под нереалистичными углами Исправлена редкая проблема, при которой кодовый замок повисал в воздухе при открывании двери Исправлены возможность лутать через стыки коллайдеров в строительных блоках Исправлена проблема некорректного размещения пользовательских коллайдеров Исправлено прилипание C4 друг к другу с последующим повисанием в воздухе Исправлены некорректные масштабы костей в превью модели и самой модели игрока Исправлена проблема с поеданием чатом больших объёмов памяти Объекты из интерфейса чата теперь группируются (остаётся меньше мусора при работе игры в памяти) Исправлены глюки, вызывавшее свечение монументов при работе под OpenGL Исправлена неправильная палитра солнечных бликов на горизонте при работе под OpenGL Максимальное количество влаги в организме игрока уменьшено вдвое Максимальный уровень сытости (каллорий) уменьшен вдвое Вчетверо уменьшено повреждение от кровотечения Бурдюк можно наполнять водой отовсюду Стоимость бурдюка снижена до 15 ткани Вода больше не восстанавливает здоровье до 40 единиц Передвижение расходует больше каллорий/воды При обезвоживании теперь невозможно быстро бежать Увеличена вместимость ведра и бочки Добавлена солёная вода Можно пить воду из любого водоём нажатием клавиши Е Огнемёт "находит" пламя, если размещён на поясе
P.S. Похоже, что разработчики взялись за игру более-менее всерьёз, что не может не радовать ?
А у меня на этом всё, друзья, ухожу допиливать задержавшийся перевод обновления сообщества за номером 83, и обкатывать изменения на практике ?
P.P.S. Если вы желаете поддержать мои труды по переводу — вы можете узнать, как это сделать, здесь.