Повышение стабильности и ускорение итераций в UEFN: текущие и запланированные изменения

Авторы: Kavita Chodavarapu @CKnew234 и Chris Gagnon

В марте мы поделились планами по развитию двух аспектов, которые напрямую влияют на разработку в UEFN — стабильности и времени итерации.

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

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

Вот последние новости.
Достигнутые результаты

Время итерации

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

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

* пошаговая конвертация: теперь конвертер в формат платформы определяет и обрабатывает не весь проект, а только те ресурсы, которые изменились с момента последней отправки;

* Zen DDC: новая инфраструктура кэша производных данных, которая сокращает время получения и проверки ресурсов, оптимизированных под целевую платформу, и тем самым ускоряет цикл воспроизведения на клиенте;

* дополнительные улучшения конвейера конвертации, загрузки и скачивания: более высокая скорость передачи файлов, сокращение времени ожидания в очереди, улучшенная проверка ресурсов и оптимизация компиляции Verse;

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

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

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

Стабильность
Начиная с версии 39.50, мы значительно сократили количество регрессий высокого уровня критичности. Было расширено тестирование островов, созданных разработчиками, ужесточён процесс регрессивного тестирования для обнаружения критических проблем на ранних этапах и усовершенствован анализ причин. В результате мы добились значительных улучшений в версиях 40.00 и 41.00, измерив стабильность по двум ключевым показателям: анализу пропущенных дефектов и количеству серьёзных дефектов, вышедших в релиз.

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

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

Текущие задачи
Нам удалось улучшить стабильность по наиболее важным показателям, но некоторые области, в частности, Scene Graph, присоединение к уже начатой игре, пользовательский интерфейс/UMG, проверка и публикация, а также подбор игроков всё ещё требуют доработки. Многие из регрессивных ошибок в этих областях связаны с взаимодействием между несколькими системами. Кроме того, проблемы возникают из-за изменений, внесённых неделями или месяцами ранее, или проявляются только во время масштабного тестирования разработчиками на поздних этапах цикла выпуска.
Приоритетные направления:

* расширение автоматизированного тестирования процессов Scene Graph и присоединения к уже начатой игре;
* увеличение масштабов тестирования разработчиками на ранних этапах циклов выпуска;
* ужесточение критериев по проверке версии, если она включает изменения с высоким риском;
* публикация информации об известных ошибках и планируемых исправлениях.

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

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

Спасибо, что продолжаете творить в UEFN. Мы благодарны за отзывы, отчёты об ошибках и участие в опросах о стабильности, которые помогают формировать наши приоритеты.
1 Like