Новые ходы

Прокомментировать Просмотры: 4

Обновлённый интерфейс платформы

Мы полностью переработали систему меню в рамках перехода к платформе, ориентированной на Workshop, по аналогии с Garry’s Mod.

При запуске вы попадёте либо в главное меню Sandbox, либо сразу в меню игры, в которую играли в последний раз. Разработчики смогут полностью изменить этот экран и оформить его по своему усмотрению.

Новые ходы

За поиск игр теперь отвечает Steam Workshop. Игры можно добавлять в избранное, подписываться на них и легко переключаться между ними.

Пока это предварительная версия, которая не включена по умолчанию. Мы планируем сделать её основной в следующем крупном обновлении. Чтобы попробовать её уже сейчас, откройте Settings → Game → “New” Menu.

РАЗРАБОТЧИКАМ:

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

Новое меню аватара

Мы полностью переосмыслили меню аватара и объединили его с магазином. Теперь примерять предметы проще, и вы сможете заранее увидеть, как они выглядят.

Интерфейс консоли

Консоль теперь открывается в отдельном окне. Её интерфейс стал проще и удобнее.

Переход на бесплатную модель

Ещё в октябре Гарри объявил, что до конца года s&box станет бесплатной. Теперь известна точная дата: s&box перейдёт на бесплатную модель 10 декабря.

Если вы уже приобрели s&box, спасибо вам. Вы поддержали нас на раннем этапе, и мы об этом помним. Все, кто купит игру до перехода, получат эксклюзивные предметы для инвентаря Steam, которые после 10 декабря станут недоступны. О том, что именно это будет, мы расскажем в ближайшее время.

Отображение тела и тени от первого лица

Если параметр «Hide Body in First Person» отключён, тело персонажа теперь отображается без головы и рук. При желании руки можно включить — это пригодится, например, при использовании сидений или транспорта.

Открыть видео

Также можно включить отображение тени, даже когда тело скрыто.

Управление движением в воздухе

В PlayerController появились настройки движения в воздухе, которые позволяют использовать баннихоп и сёрфинг.

Открыть видео

Значение Air Friction для игрока теперь по умолчанию равно 0, поэтому при включённом управлении в воздухе баннихоп и сёрфинг доступны без дополнительной настройки.

Более быстрая и плавная загрузка

Загрузка стала быстрее, а задержки во время неё возникают реже.

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

Открыть видео

Моделирование звука

 

Мы улучшили моделирование акустики:

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

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

Открыть видео

Встроенный голосовой чат

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

Новый индикатор голосового чата расположен справа на экране и показывает до восьми одновременно говорящих участников. Разработчики могут отключить индикатор или изменить настройки чата в новом разделе Voice Chat настроек платформы проекта.

Открыть видео

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

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

Открыть видео

Наконец, мы добавили режим Streamlined Push to Talk: между нажатиями микрофон остаётся активным, но звук не передаётся. Это должно помочь устройствам, которым требуется время для запуска, особенно Bluetooth-гарнитурам.

AnimGraph 2

AnimGraph 2 — совершенно новая система анимации на базе Esoterica, с нативной средой исполнения и полностью обновлённым набором инструментов для создания анимаций.

Редактор графов поддерживает деревья смешивания, вложенные автоматы состояний, переходы, одномерные и двумерные пространства смешивания, слои, маски костей, IK и root motion. Графы можно отлаживать в реальном времени, наблюдая за изменениями параметров и активностью узлов, записывать и воспроизводить результаты, а также применять горячую перезагрузку во время редактирования.

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

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

Renderer.Animation.ExternalGraphs.Connect( "action", ActionGraph );

Открыть видео

Существующие материалы AnimGraph 1 продолжат работать. Старые API объявлены устаревшими, а прежний редактор графов теперь доступен только для чтения.

Типизированные события анимации

События в клипах AnimGraph 2 теперь могут быть типизированными классами C# с собственными свойствами, а не просто именем и произвольным набором параметров. Создайте класс для хранения данных:

public sealed class ReloadEvent : AnimationEvent
{
[Property] public int Ammo { get; set; } = 30;
}

Добавьте дорожку Animation Events в редакторе клипа, разместите событие, выберите ReloadEvent и настройте его свойства, как в обычном инспекторе. Событие автоматически получит любой включённый компонент, реализующий Component.IAnimationEvent и находящийся на GameObject рендерера или одном из его родительских объектов. Ссылка на рендерер и подписка на событие не нужны:

public void OnAnimationEvent( AnimationEvent data )
{
if ( data is ReloadEvent reload )
Ammo += reload.Ammo;
}

Профилировщик рендеринга

Открыть видео

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

В дальнейшем мы хотели бы сделать такую временную шкалу доступной и для общего профилирования CPU.

Редактор стен

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

Открыть видео

Ускоренная компиляция ресурсов

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

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

На моём компьютере полная сборка основных ресурсов сократилась с 18 минут до менее чем 4, а пиковое потребление памяти снизилось примерно с 30 до 10 ГБ.

Более надёжные P2P-соединения

 

Наши лобби используют полносвязную P2P-сеть: каждый игрок может напрямую отправлять обновления всем остальным. Однако NAT, VPN или ограничения провайдера иногда мешают двум участникам установить прямое соединение.

Из-за этого, например, могло не синхронизироваться движение на стороне клиента: один игрок оставался на точке появления, тогда как остальные двигались нормально.

Теперь хост передаёт обновления между игроками, которые не могут соединиться напрямую, поэтому данные об их движении и другие обновления всё равно доходят до адресатов.

 

Меньше работы для сборщика мусора

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

Пакетная отрисовка текста

Компоненты TextRenderer теперь объединяются в пакеты через систему пакетной отрисовки спрайтов, вместо того чтобы отрисовывать каждую надпись отдельно. В тестовой сцене с большим количеством текста в игровом мире время кадра сократилось с 25 до 3 мс.

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

Захват ввода с клавиатуры

Игры могут захватывать ввод с клавиатуры с помощью Input.Keyboard.Capture. При активном захвате нажатия клавиш передаются игре и не вызывают назначенные действия. Это полезно, например, при переназначении управления.

Нажатие Escape или открытие меню всегда прекращает захват, поэтому игра не сможет заблокировать управление с клавиатуры.

Исправления анимации персонажа

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

Особенно заметно это было при быстром развороте на 180 градусов:

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

Открыть видео

Скорость приседания

Раньше персонаж мгновенно приседал и вставал, без плавного перехода. Теперь можно настроить время приседания и подъёма, а также переназначить соответствующую кнопку.

Открыть видео

Настройки прыжка

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

Также можно включить Hold to Jump: удерживая кнопку прыжка, игрок будет прыгать снова после каждого приземления, не подгадывая момент нажатия. Это особенно удобно для баннихопа.

Источник

Похожие статьи

Поиск по играм, новостям и статьям…

Введите не менее двух символов

Введите не менее двух символов