Запилил небольшой профайлер для ECS систем в Bevy Engine

Для чего это нужно? Можно быстро находить медленные системы и другие узкие места. Этот плагин конечно пока не дает такой подробной диагностики как offline профайлеры вроде superluminal или tracy, но зато работает в реальном времени и дает быстрый сигнал, который дальше уже можно изучить в более продвинутом софте. Идея в том чтобы оптимизировать UX именно под структуру внутренностей движка Bevy.

Пример как установить плагин в проект из исходников.

Как это работает? В движок Bevy ставится плагин с агентом. Агент перехватывает события диагностики из tracing-core которыми про-инструментирован движок (span traces из tracing-core) и кладет во временный буфер. Этот буфер потом раздается по HTTP на запущенном на фоне сервере (actix). На другом конце клиент в виде VSCode плагина принимает диагностику, обрабатывает и визуализирует в виде дерева со средним временем выполнения для каждого узла. Пока что узлы это ECS системы, потоки ОС или узлы рендер графа.

Поставить плагин и расширение для VSCode пока можно только из исходников. Как только код будет добавлен в main, я выложу их в маркетплейс и crates.io соответственно.

Ссылка на Pull Request (код пока еще находится в процессе ревью):

Если знакомы с Bevy, Rust или плагинами для VSCode – буду рад обратной связи в PR или здесь.

7.4K7.4K показов
740740 открытий
10 комментариев

А почему вывод именно в VSCode, а не в тоже окно egui?
Данные удобнее в VSCode смотреть?

Ответить
Автор

Насчет почему не egui - я с ним совсем не знаком, поэтому даже не рассматриваю. В плане удобства думаю в долгой перспективе у VSCode есть преимущества.

Ответить

Помнится, ты уже смотрел плагин RETRO DIFFUSION. Стоит ли использовать данный плагин для создания мобов и прочей живности? А то как-то маловато информации о нем. Судя по твиттеру автора, всё выглядит вполне неплохо.
Как-то не хочется покупать и разочароваться после.

Ответить
Автор

Я пока не видел примеров моделей AI которые применимы в создании арта для игр.

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

Ответить