Услуги
Июнь 2024
Целью проекта было создать новую игровую механику, в основе которой лежит физический бросок костей в игровой башне. Система должна была решать полный цикл обработки результата: зафиксировать бросок, распознать номиналы выпавших костей, определить итоговую комбинацию, рассчитать коэффициент выигрыша, передать результат в SAS-модуль и вывести итог на экран.
Ключевое требование — распознавание должно происходить мгновенно и без единой ошибки, поскольку результат напрямую влияет на финансовые расчёты выигрышей игроков. Это делало систему не вспомогательным инструментом, а вычислительным ядром всей новой игры, где любая ошибка распознавания означала бы некорректный расчёт выплаты.
Проект осложнялся тем, что работать приходилось в реальной физической среде — с бликами, стеклом и переменными углами падения света, — а система должна была уметь отличать реальную кость от её отражения, синхронизировать данные с трёх независимых камер и обрабатывать результат в реальном времени с прямой интеграцией в финансовую логику игры, не оставляя права на ошибку.
В основу системы легла архитектура с тройным резервированием: каждый бросок костей фиксируется тремя независимыми камерами, каждая запись обрабатывается отдельной нейросетью и создаёт свою запись в базе данных. Итоговый результат принимается только через majority-валидацию — если минимум 2 из 3 независимых распознаваний совпадают, результат подтверждается, иначе фиксируется ошибка. Такой подход существенно повысил надёжность системы в условиях, где цена ошибки — некорректный финансовый расчёт.
Для распознавания разработали, обучили и протестировали три отдельные нейросетевые модели: детекцию костей, распознавание номинала и классификацию итоговой комбинации. Процесс включал сбор датасета в реальных условиях эксплуатации, разметку, аугментацию данных, обучение моделей, оптимизацию под инференс на GPU и стресс-тестирование перед запуском в промышленную среду.
Отдельно проработали игровую логику для двух режимов. В основной игре на трёх костях система распознаёт комбинации — от троек одного номинала с коэффициентом ×1000 до различных числовых сочетаний с понижающимися коэффициентами вплоть до ×0 — и считает итог по формуле суммы коэффициентов костей, умноженных на ставку игрока. В суперигре на шести костях, запускаемой через 12-гранный кубик, распознаются более сложные комбинации — три пары, шесть разных значений, повторяющиеся кости — с отдельной сеткой множителей.
Интеграцию с игровым оборудованием реализовали через SAS-модуль: система получает данные игрока, определяет сценарий (основная игра или суперигра), распознаёт результат броска, рассчитывает коэффициент, передаёт итог обратно в SAS и выводит визуализацию результата на экран рядом с игровой башней. Инференс моделей выполняется на GPU на стороне заказчика, что обеспечивает работу в реальном времени без задержек.
Система вышла в промышленную эксплуатацию с точностью распознавания 99% и нулевым количеством ошибок за время реальной работы. Задержка обработки — мгновенная, в режиме реального времени, что критично для игры, где результат броска сразу конвертируется в финансовый расчёт выигрыша.
Тройная схема с камерами и majority-валидацией показала себя надёжной в сложных условиях реальной физической среды: система корректно игнорирует отражения костей в стекле и справляется с бликами и переменным освещением, не теряя точности. В результате AI стал не вспомогательным модулем, а полноценным вычислительным ядром новой игровой механики — финансово-критичной real-time системой, которая напрямую участвует в расчёте выигрышей и обеспечивает надёжность игры в промышленных масштабах.