Больше возможностей для поиска
Главная страница меню обзавелась парой новых инструментов для поиска контента. Во-первых, справа появилась социальная лента, где отображаются действия ваших друзей в игре (при условии, что их профили в Steam не скрыты). Во-вторых, в левом верхнем углу мы добавили блок «В центре внимания»: здесь мы будем выделять новинки или проекты, которые, на наш взгляд, незаслуженно обделены вниманием сообщества.

Раньше вкладка «Игры» вызывала вопросы: она просто показывала список самых популярных проектов, что, как мне кажется, способствует застою. Что должно отображаться по умолчанию? Новинки? Тренды? У каждого подхода есть свои сторонники и противники, к тому же пользователи не всегда знают, как изменить сортировку.
Теперь при переходе в «Игры» вы увидите структурированный список категорий, которыми мы можем гибко управлять со стороны бэкенда.

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

Вы можете свободно использовать эти ресурсы в своих играх и аддонах, в том числе с поддержкой Play Fund. Мне крайне любопытно, удастся ли кому-то применить активы из Rust в необычном ключе или даже попытаться воссоздать Rust на базе s&box. Похоже, с этим можно знатно поэкспериментировать.
Исправления в компиляторе ресурсов
При импорте активов Rust компилятор постоянно выдавал ошибки. Я переработал его работу, исправив ряд критических проблем:
- Устранены вылеты при компиляции текстур, возникавшие из-за проблем с загрузкой
cs_compress_dxt5. - Исправлены ошибки разыменования нулевого указателя, приводившие к аварийному завершению программы при обработке поврежденных
animgraph. - Устранены NRE-ошибки в виджете публикации и контекстном меню списка активов, из-за которых могли возникать дубликаты.
- Исправлены пути поиска материалов, ссылающихся на шейдеры.
- Дочерние ресурсы больше не помечаются ошибочно как сгенерированные.
Массовая публикация контента также вскрыла необходимость улучшения валидации:
- Генерация идентификаторов (ident) теперь преобразует символы с диакритикой в стандартный ASCII, заменяет разделители на подчеркивания (для читаемости) и добавляет хэш пути при обрезке имен.
- Некорректные идентификаторы теперь принудительно пересоздаются.
- Заголовки проходят процедуру очистки: удаляются табуляции и переносы строк, обрезка происходит по границам слов. Максимальная длина заголовка увеличена с 32 до 64 символов.
- Инспектор активов и настройки компиляции звука теперь поддерживают множественное выделение, позволяя пакетно исправлять параметры.
Звуки с лицензией CC0
Поскольку многие искали качественные звуковые наборы для своих проектов, я загрузил их в новую организацию — OpenSound.

Здесь собрана внушительная библиотека звуков с лицензией CC0, готовых к использованию в любых проектах. Также добавлена коллекция музыки от Кевина Маклеода (лицензия CC-BY). Кроме того, теперь доступно предварительное прослушивание прямо на сайте.
Отслеживание лицензий
Страница облачных лицензий помогает отслеживать, какие ресурсы вы используете, но раньше не было понятно, где именно в проекте они задействованы. Теперь можно кликнуть по любому облачному активу в списке и увидеть все локальные файлы, которые ссылаются на него.

Автоматический LOD для материалов
Система Auto LOD теперь может удалять или заменять материалы при генерации уровней детализации (LOD). Полигоны с определенным материалом можно полностью скрыть или заменить на более простые, что помогает снизить количество вызовов отрисовки (draw calls) для объектов на удалении.
Оптимизация выделения памяти
Мы сократили количество операций выделения памяти (аллокаций) на каждый кадр. На наших тестовых стендах это дало снижение потребления памяти в среднем на 100 КБ за кадр. В ряде сценариев это повысило скорость обработки кадра на 30%, а в обычных играх прирост составляет 1-3%. Наиболее заметный эффект почувствуют владельцы слабых ПК.

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

После завершения теста появится окно с краткими результатами и ссылкой на подробный отчет на сайте.

Точки зацикливания спрайтов
В редактор спрайтов добавлены точки начала и конца цикла, что позволяет создавать анимации с начальной фазой, основным циклом и фазой завершения.
Стабильность префабов
Мы устранили ряд ошибок, связанных со сложными вложенными префабами. Основные проблемы были вызваны потерей ID при изменении структуры или разрыве связей, а также некорректной инициализацией вложенных данных при загрузке. Если вы сталкивались с непредсказуемым поведением префабов, теперь это должно быть исправлено.
Улучшения инструментов ландшафта
Мы переработали инструментарий для работы с ландшафтом, чтобы сделать процесс создания уровней быстрее и удобнее:
- Пересмотрен порядок кистей и добавлены горячие клавиши.
- Индикация активной кисти стала нагляднее.
- Добавлен простой режим круговой кисти.
- Добавлена функция поворота кисти.
- Добавлены клавиши быстрого доступа для размера и непрозрачности.
- Максимальный размер кисти увеличен до 2048.
- Больше не нужно обязательно выбирать объект ландшафта, чтобы начать рисовать. Посмотреть демонстрацию
Управление видеоплеером

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


Эта функция была в экспериментальной ветке, а теперь добавлена в основной билд. Она помогает избавиться от артефактов («шума») на каскадных, точечных и прожекторных источниках света.
Анализ производительности шейдеров
Мы начали внедрять инструменты статического анализа шейдеров, используя наработки уровня AMD Radeon Developer Suite. Цель — выявлять узкие места (нагрузку на регистры, лимиты заполняемости и т.д.) без необходимости профилирования каждого прохода вручную на разном «железе».
Первый же результат впечатляет: мы обнаружили неиспользуемый путь расчета света, который нагружал движок в течение года. Его удаление снизило использование регистров (VGPR) в PBR-циклах со 120 до 68, что дало прирост скорости отрисовки 4K-сцены на 26% (с 245.5 мс до 181.7 мс на RX 9070 XT).
Обидно, что такой «мертвый» код оставался незамеченным так долго. Чтобы предотвратить подобное в будущем, мы интегрируем эти инструменты анализа в CI/PR процессы. Теперь каждый запрос на слияние будет проходить автоматический анализ GPU-бенчмарков, проверку на регрессии и оценку использования ресурсов, что позволит ловить такие ошибки еще до их попадания в основную ветку.