Grabbit 2: как превратить физику в надёжный тул для левел-дизайна — Game Design Radar
← Все посты

Grabbit 2: как превратить физику в надёжный тул для левел-дизайна

04.08.2026
Grabbit 2: как превратить физику в надёжный тул для левел-дизайна

Автор рассказывает о проблемах первой версии плагина Grabbit для Unity и о том, как они были решены в Grabbit 2. Grabbit — это редакторский инструмент: он временно добавляет физику к объектам в сцене, позволяет их «ронять» и симулировать, а затем убирает физику, оставляя результат как финальное расположение для левел-дизайна и сет-дрессинга.

Основные проблемы Grabbit 1

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

Мусор после сбоев. Модель работы: «добавить временную физику, симулировать, удалить». Если Unity Editor перекомпилировал скрипты или падал во время сессии, финальный этап очистки мог не выполниться. В сцене оставались лишние Rigidbodies и изменённые настройки объектов.

Проблемы с производительностью на больших сценах. Не было пространственной структуры, поэтому стоимость операций росла плохо с размером сцены. При большом количестве объектов инструмент начинал заметно тормозить.

Ненадёжный Undo. Изменения, сделанные физикой, не всегда корректно откатывались. Для редакторского инструмента это критично: дизайнер должен уверенно жать Ctrl+Z.

Неудобная интеграция в рабочий процесс. Grabbit 1 жил в отдельном Editor Window. Каждый раз приходилось переключаться из сцены в окно инструмента, что ломало поток работы и стоило времени.

Что изменилось в Grabbit 2

Надёжная очистка после сбоев. Grabbit 2 записывает достаточно состояния, чтобы распознать прерванную сессию. При следующей загрузке он находит оставшуюся временную физику и автоматически восстанавливает объекты. Дополнительно есть кнопка однокликовой очистки на случай, если что-то всё же пропустили.

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

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

Интеграция в сценовый тулбар. Вместо отдельного окна Grabbit 2 встраивается в Scene Toolbar. Его можно закрепить рядом с основными инструментами, не теряя контекст сцены и не переключаясь между окнами.

Автор подчёркивает, что эти улучшения не выглядят эффектно, но именно они превращают «классный прототип» в инструмент, которому можно доверить реальный продакшен-проект.

Выводы

  • Монолитные, органически выросшие тулзы приводят к хрупкости и сложным отказам — архитектура важна даже для «внутренних» инструментов.
  • Для редакторских плагинов критична надёжная очистка состояния после падений и перекомпиляций.
  • Производительность на больших сценах требует пространственных структур, пулов и параллельной обработки.
  • Интеграция со стандартным Undo — обязательное условие доверия к любому инструменту редактирования.
  • Встраивание в основной UI (Scene Toolbar) снижает трение и повышает реальное использование тулза в пайплайне.
check_circle Факт-чекинг
Статья прошла проверку. Фактологических ошибок не выявили.