Найти тему
Nukus Games

Как мы разрабатывали интерактивный игровой пол для игры "Матрица"

С чего началось?

Когда мы рассказываем про наш проект людям, часто слышим: «О, я видел это в Инстаграм!». И мы это взяли оттуда.

Год назад мой друг прислал мне видео из соц. сетей канадской команды, где люди прыгали по светящимся плиткам, нажимали разные кнопки и при этом выглядели безумно увлеченными. К сожалению, самим туда попасть не удалось: канадцы все еще не вылезли за пределы своего континента, а перелет через Атлантику в ближайшие планы не входил.

Пришлось думать, как сделать это самим.

Суть проекта

Что представляет собой игра? Пол, состоящий из ячеек, соединенных в единую сеть. Система подключена к “головному” компьютеру, который получает сигнал о том, что на ячейку наступили и отдает сигнал, нужно ли ей светиться и как.

Внешне - набор "плиток" размером с ботинок человека с диодами внутри и полупрозрачной поверхностью. Изнутри - электроника и датчики, которые должны отслеживать нажатие на плитку, передавать эту информацию в компьютер и принимать обратный сигнал.

Большое количество ячеек (256+ в нашем варианте) позволяет сделать различные игры. От динамических: побегать/попрыгать, до логических и игр на память. “Игра в кальмара” еще свежа в памяти, так что и оттуда мы пару идей прихватили.

О себе

Основа команды - бывшие однокурсники - физики, неудавшиеся кандидаты наук. Основная наша деятельность - IT и все что рядом; Этим же проектом мы занимались изначально как хобби: после основной работы выделить 2-4 часа на нашу идею. Сейчас проект перерос в нечто большее: и нам стало понятно, что у нас получается, и появился интерес от окружающих.

Начало работы. Китай

Сначала посмотрели, что есть похожего в мире, помимо канадских ребят. Оказалось, есть у китайцев: диодные панели любых размеров и форм, на емкостных и тензодатчиках, и, по их словам, все, что нам нужно.

За несколько месяцев мы получили изделия от 8 различных (или нет) производителей в Китае.

К чему мы пришли с китайцами:

• Самая простая проблема - отсутствие обратной связи в устройстве у многих производителей: нажатие считывается, но информация об этом не передается

• Низкая (неравномерная) чувствительность из-за ограничений ёмкостной системы

-2
-3

Рисунок 1. Внутренний вид одной из китайских плиток на емкостном датчике (слева) и внешний вид рабочей плитки (справа)

• Монолитная система. Любая неисправность приводит к замене всей ячейки

• Много мелких проблем, от которых хотелось бы избавиться

Так мы отказались от идеи простой реализации чужими руками и перешли к разработке.

Разработка

На первом этапе в команду разработки вошли: конструктор, электронщик и полтора программиста.

Предстояла работа, которую мы видели так:

• Протестировать различные датчики касания

• Придумать конструкцию самих ячеек, подобрать материалы и формы

• Написать взаимодействие между плитками

• Написать связь с компьютером

• Игры, дизайн, музыка и остальное

Как считать касание

Основная часть работы первое время легла на конструктора. Начали с главного вопроса: «как считывать касание?». Сразу в голову приходят несколько вариантов:

1. Кнопки. Вариант простой и дешевый, но кнопки недолговечны. Мы закупили много разных, но после тестов отказались от этой идеи

2. Тензодатчики - наиболее логичный на первый взгляд вариант, канадские ребята его используют. По нажатии получаем сигнал на компьютер. Ложные нажатия от вибрации, а также ограничения функционала, который мы хотели добавить заставили идти дальше

3. Емкостной датчик, по стопам друзей-китайцев. Считывает не нажатие, а изменение поля вблизи антенны. Сложность в том, что датчик должен срабатывать на нажатие в обуви, но при этом не реагировать, если человек проносит ногу близко, но не касается. Эту границу четко установить не получается

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

Конструкция:

Наша цель - самостоятельные ячейки со всей электроникой, стеклом и разъемами для подключения к общей системе. Металлический корпус, закрытый каленым стеклом толщиной 1 см. Внутри - диоды по периметру, всего 48 диодов. От китайских диодных лент отказались сразу из-за их ненадежности в пользу алюминиевых плат с хорошими диодами.

Основа устройства - плата «мозгов». В первые образцы основных плат закладывали много дополнительных компонентов, в том числе рассматривали разные протоколы взаимодействия между устройствами. В итоге остановились на CAN-шине, как наиболее быстром и надежном варианте, а лишнее - убрали.

Корпус и стекла заказывали поблизости, все компоненты для плат и диоды везли из США/Китая, а собирали уже тут.

Первая большая партия

Непрерывные доработки, попытки остановить конструктора в реализации новых и новых задумок, потому что они "именно то, что нужно", а все, что было до этого - "тоже хорошо, но совсем не то" наконец приводят к первой закупке большой партии компонентов. Размер пола нам показался оптимальным - 16x16 плиток. Вероятно, основное значение сыграла степень двойки, а не какие-то реальные ограничения.

В момент получения компонентов все программисты, электронщики и менеджеры резко становятся грузчиками и носильщиками под надзором конструктора. Далее - проверка всех компонентов, отбраковка нерабочих/кривых/косых частей и гневные письма поставщикам.

-4
-5

Сборка

Организовали первый сборочный цех, который до этого выступал лабораторией для разработки и тестирования, постепенно наладили конвейерный процесс сборки панелей. Резюме по отладке процессов сборки: закладывать нужно минимум 50% запас по срокам и стоимости, т.к. слишком много возникает различного рода неожиданностей, особенно когда ты без опыта таких процессов.

Это одна из самых приятных частей проекта: довольно быстро твоими руками собирается полноценная система, на которую было затрачено весьма много времени и сил.

-6

Игры и интерфейсы

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

1. Мы сделали простой браузерный интерфейс управления, который умеет выставлять длительность сессии, выбирать сеты игры, переключать и останавливать игры

-7

2. Игры. Начинали с любимых играм каждого из членов команды, но поняли, что такой формат работы особенно ни к чему не приводит: каждый хочет своё, а общая концепция не прослеживалась. Кто-то видел это только как динамичные игры для детей, кто-то - как полноценный “Escape room” с головоломками… Подключили к работе гейм дизайнера, который уже полноценно продумал и общую структуру, и логику с учетом возрастов, типов игр. Составил палитры цветов и в целом сделал все, что делают дизайнеры.

Дальше - первый коммерческий опыт, о котором обязательно напишу.

Выводы

• Китайские решения нам не подошли

• Классические тензо- и ёмкостные датчики не оптимальны

• Разработка - это довольно дорого

Результаты

• Близкое к идеальному считывание касания: как на детях, так и на взрослых

• Высокая скорость передачи цветов, не заметна глазу

• Сборка системы 16х16 за 4 часа

Текущий этап

В декабре 2023 наша команда Nukus Games открыла первое пространство совместно с партнерами - Парком развлечений «Погружение» в Москве под названием «Матрица». На ней отлаживаем все процессы, тестируем игры, собираем отзывы посетителей. А параллельно с этим собираем новые системы для наших новых партнеров.