Klatch.media

Создание игр

Roblox расширила EditableMesh пакетными операциями и параллельными запросами

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

Roblox расширила EditableMesh пакетными операциями и параллельными запросами
Roblox / DevForum

Roblox добавила в EditableMesh пакетные операции и поддержку параллельных запросов. Первое объявление появилось 6 августа как бета Roblox Studio. В дополнении от 15 сентября компания подтвердила доступность пакетных API в опубликованных играх после периода тестирования и сбора замечаний.

Запросы к сетке теперь разрешено выполнять из параллельного Luau. Это касается трассировки лучей, поиска ближайшей точки на поверхности, ближайшей вершины и методов чтения. Разработчик может разделить большую нагрузку между Actor, например при процедурном размещении объектов или обработке множества лучей по одной геометрии.

Изменение сетки остаётся последовательным. Перед добавлением, удалением или записью атрибутов требуется вернуться из параллельного режима через task.synchronize(). Roblox отдельно подчёркивает эту границу: возможность параллельного чтения не делает безопасной одновременную запись нескольких потоков в общие данные.

Пакетные методы позволяют создавать, читать и изменять много элементов одним вызовом. Вместо отдельных операций для каждой вершины автор передаёт массив идентификаторов и значений. Enum.MeshAttribute определяет нужный тип данных: вершины, нормали, UV, цвета или грани. Смешивать разные типы идентификаторов в одном вызове нельзя.

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