Тестирование монет в idle-игре с помощью Arduino и гироскопа
🎯 Проблема:
Idle-игра с элементами тайкуна: игрок ставит машинки, которые печатают монеты, монеты скапливаются на полу, оттуда автоматически собираются.
✔️ Задача от продюсера: проверить UX и баги, связанные с физикой монет, когда на сцене их становится от 500 до 10 000 штук одновременно.
💀 Почему руками это не работало:
-
Вручную так долго держать экран включённым и следить за монетами невозможно (по 20–30 минут на одну сессию).
-
При больших количествах монет FPS падал, баги возникали непредсказуемо:
-
Монеты проваливались сквозь пол.
-
Слипались в одну большую.
-
Камера начинала дёргаться.
-
Нужно было зафиксировать точный момент бага.
💡 Нестандартное решение от QA-инженеров:
Инженеры решили подключить Arduino с гироскопом и тач-имитатором для автоматизации запуска сессий.
Как выглядел сетап:
-
Android-девайс лежал горизонтально, запущена игра.
-
Arduino подключено к USB, на нём:
-
гироскоп + акселерометр для определения, если телефон внезапно дёргается (признак фриза или физического бага).
-
самодельный таппер на сервоприводе: раз в 10 минут Arduino касалась экрана, чтобы игра не уходила в сон.
-
Отдельный скрипт снимал видео с экрана устройства.
✅ Что удалось сделать:
-
Прогнали 30 сессий по 1 часу каждая без участия человека.
-
Когда гироскоп фиксировал движение (например, камера в игре начинала дёргаться), Arduino автоматически:
-
Сохраняла временную метку.
-
Отправляла сигнал на скрипт, который сохранял последние 10 минут видео.
-
В результате QA-инженеры нашли редкий баг с тем, что после появления 7800 монет начинался физический конфликт между colliders.
📌 Почему это интересное и применимое решение:
- Такие тесты невозможно провести средствами Unity Test Framework или Appium, потому что речь про поведение внутри физики движка.
- Arduino + гироскоп работает как внешний сторожевой таймер, не вмешиваясь в код игры.
- Подходит не только для мобильных idle-игр, но и для тестов на девайсах с гироскопами (например, игры с контролем наклона).