Что бывает, когда в настольный футбол играют разработчики: проапгрейдили не только игру, но и корпоративную культуру
Теперь голы считаются автоматически, соперника вызывают на бой через телеграм-бота, а система оповещает звуками «Мортал Комбат» Fight! Расскажу, как провели цифровую трансформацию настольного футбола.
Привет, я Иван Григорьев, управляющий партнер LARD. В офисе между рабочими задачами мы с коллегами любим поиграть в настольный футбол. Игра здорово разгружает голову, после нее легче придумывать решения в наших digital-проектах.
Однажды нам пришла мысль модернизировать игру. В коллективе много разработчиков, и мы подумали: почему бы не сделать любимый футбол современнее? Например, автоматизировать процесс подсчета голов и вести статистику игр.
В статье рассказываю, как реализовали эту идею и как автоматизация настольного футбола повлияла на нашу корпоративную культуру.
Что и как автоматизировали в игре
Автоматизацией игры мы занимались в свободное время. Через два месяца была готова MVP-версия с подсчетом голов и визуализацией основных игровых моментов в режиме реального времени, а также с последующим сохранением этих данных для статистики. Затем постепенно дорабатывали и улучшали «умный» настольный футбол.
Вот что появилось в нашей игре в результате:
1. Вызов соперника через телеграм-бота. В боте есть список пользователей, зарегистрированных в системе. Из списка нужно выбрать, с кем хотите поиграть, и «бросить вызов». Выбранный пользователь получает сообщение от бота с приглашением — он может его принять или отклонить.
Один игрок выбирает соперника, а второму приходит приглашение на игру
2. Визуализация данных текущей игры. К мини-компьютеру Raspberry Pi, который также является сервером «умного» футбола, мы подключили сенсорный дисплей. Во время игры на нем отображаются имена игроков, время с начала тайма и текущий счет.
3. Расчет текущего счета игры в режиме реального времени. Чтобы система автоматически определяла, когда мяч попадает в ворота, мы установили датчик прерывания на основе светодиода и датчика ИК-диапазона.
Когда мяч попадает в ворота, возникает препятствие между ИК-датчиком и светодиодом — свет излучателя на доли секунды прерывается. Датчик прерывания регистрирует событие, а затем информацию о нем обрабатывает Raspberry Pi. После анализа данных информация выводится на дисплей, и мы понимаем, кто забил гол. Так мы регистрируем каждое попадание мяча в ворота.
В качестве программного стека используется Laravel и Vue, а для передачи данных в режиме реального времени — WebSocket.
Сначала датчики регистрировали ложные голы, но мы нашли решение.
Ворота технически не идеальны. Ось излучателя двигалась, и луч не всегда попадал в принимающий диод. Были помехи, и система засчитывала нелегитимные голы.
Сначала мы добавили функционал, который сбрасывает такие голы, а затем сконструировали крепления для датчиков и напечатали их на 3D-принтере. Теперь считаем только реальные голы, а заодно избавились от дребезга ворот во время игры.
4. Звуковое сопровождение. Каждое попадание мяча в ворота, будь то гол или два подряд, сопровождается звуковым сигналом. Для вывода звука использовали обычные колонки, которые подключили к «сердцу» системы — Raspberry Pi. Причем для каждого события можно установить разные звуки, например фанфары для победного гола.
5. Персонализация. Мы спроектировали личный кабинет, в котором пользователь может настроить свой профиль: выбрать аватарку, задать звуки для событий, посмотреть историю игр. Бросить вызов можно прямо из личного кабинета, а еще он привязан к телеграм-боту, чтобы данные о вызовах синхронизировались.
6. Статистика на основе истории игр. После каждого состязания система сохраняет данные об игре, из них формируется статистика. В личном кабинете можно посмотреть не только историю своих игр, но и общую турнирную таблицу: сколько всего игр у каждого игрока, сколько из них поражений и побед, какой рейтинг.
Мы придумали свою формулу для расчета рейтинга: кто часто выигрывает — забирает баллы оппонента.
«Умный» настольный футбол — часть нашей корпоративной культуры
Мы и так любим настольный футбол, а после модернизации интерес к игре у коллектива вырос еще больше.
За игрой мы расслабляемся. Добавили интерактива, и играть стало увлекательнее. В любое время можно отвлечься и пойти поиграть, главное — найти соперника. Подавляющее большинство сотрудников играет, и отдых помогает нам перезагрузиться, легче переключаться на разные темы в рабочих проектах.
Совместные активности, игру в настольный футбол, различные разработки для себя можно назвать нашей корпоративной культурой.
Общаемся без формальностей. Нередко в компаниях люди общаются сухо и формально на «вы», и за обедом нечего обсудить с коллегой, не считая рабочих вопросов. В таком коллективе скучно и неинтересно работать. У нас всё иначе, и во время футбола мы можем посмеяться, выразить эмоции.
Непринужденная обстановка помогает нам генерировать новые идеи и создавать крутые digital-решения. Это еще сильнее сплачивает наш коллектив.
Придумываем новые идеи
Несмотря на уже немалый функционал, хотим реализовать в игре следующие идеи:
- Регистрировать больше событий. Например, с помощью датчика силы и шкалы измерений оценивать силу удара, чтобы знать, был ли это обычный или суперудар. А затем сделать разную озвучку для разных по силе ударов.
- Приглашать не зарегистрированного в системе пользователя. Сейчас телеграм-бот приглашает только зарегистрированных.
- Увеличить число игроков. Например, чтобы могли играть четыре человека, то есть двое на двое.
- Запустить турниры. Всё, как в настоящем футболе, согласно турнирной таблице: есть много команд, система распределяет соперников, победители разных команд играют друг с другом.
- Добавить достижения игрока. Разные ачивки и анимации. Например, забил пять голов подряд — дается медалька, присваивается статус какого-нибудь известного футболиста вроде Месси.
Так мы сочетаем отдых с работой. После автоматизации настольного футбола игра с расширенным функционалом и интерактивом стала более интересной. Теперь мы чаще играем и тусуемся вместе в неформальной обстановке, после чего придумываем классные решения в разработке проектов.
Автоматизируем не только настольный футбол, но и многие процессы в различных отраслях бизнеса — медицине, строительстве, ретейле, консалтинге, производстве и других.
Об интересных проектах я рассказываю у себя в телеграм-канале. Поделитесь в комментариях, какая корпоративная культура есть в вашем коллективе. Может, тоже во что-то играете или автоматизируете?
Крутая идея, крутая реализация! В офисе видимо скучно не бывает)
Осталось дисплей малинки заменить на экран телевизора)
Еще есть предложение, добавить анимацию (также с персонализированной настройкой в личном кабинете) при забитом голе (как в боулинге) ;)
Идей сейчас очень много, накидывайте, мы обязательно возьмём на вооружение)
По поводу дисплея, телевизор был на первых тестах, от него отказались и пока сделали вот такой маленький дисплей с тачем. Но сейчас у нас появились 19 дюймовые дисплеи с тачскрином, возможно заменим
А отказались в связи с отсутствием органов управления (напр. для начала матча)?
Да, именно так и ещё есть идея сделать гостевой режим с управлением через дисплей.
Ну и телевизор мы поставили на 65 дюймов, был слишком большой))
Ух как. Но можно было поставить телевизор, а органом управления оставить сам Распберри. Но по-скольку у вас там на готове лежит дисплей с тачскрином, то идея уже не имеет смысла)
Да, у нас как раз остался дисплей от терминала электронной очереди. Нужно только корпус изготовить)
Судя по табличке, у вас активно играют три-четыре человека... по сути все сделано для них, а не для коллектива
Корректировали формулу расчёта рейтинга и обнуляли статистику. Было бы значительно больше ))
Но да, есть несколько самых активных игроков, а многие собираются и следят за ходом матчей
Как у вас весело! :)
Спасибо!)
Ахахахха, круто получается, вы там работаете вообще?)
Даже лучше стали работать )
Нет ничего лучше чем подобные интерактивы, чтоб на работе могли немного передохнуть от задач и после продолжить с новыми силами)
Полностью согласен:) Да и сама разработка была очень увлекательна ))
Отличный способ расслабиться на работе и получить положительные эмоции!)
Спасибо!
блин это гениально! ребята вы крутые))
мы когда играли в офисе тоже бывало что забывали в процессе, а рейтинг - это прям топ.
а нет проблем что датчик не всегда успевает считать? потому что там скорость иногда прям нормальная бывает
Спасибо)
Нет, все хорошо, забития все регистрирует) были раньше ложные срабатывания, пришлось напечатать крепления на 3d принтере для диодов
Отдых тоже должен быть, не возможно продуктивно работать полный рабочий день без перерывов, а смена деятельности ещё лучше даёт отдохнуть
Полностью согласен!)
Крутая тема)
Спасибо)
Как-то это всё уныло. Банально. Депрессивно
Есть идеи, как сделать менее уныло?)
считаю это идеально
где купить?
Для себя делали, не думали над коммерциализацией)
пора задуматься над коммерческой реализацией)
Столкнулись с тем, что желающих играть много, поэтому начали играть 2х2. Ваши алгоритмы это учитывают?)
Планируем реализовать в будущем )
Комментарий удален автором поста
Настраиваемые звуки это прекрасно)) А штуками для ручного подсчёта голов по привычке пользуетесь?
Нет, просто не стали снимать, чтобы не заделывать отверстия )
Есть исходный код?
Нет, не публиковали )
Лишь бы не работать, хах
Ну вообще на самом деле классная штука, офис для того и нужен, чтобы можно было нормальную атмосферу создавать ))
Согласен) наш главный актив - это люди. Талантливых ребят тяжело найти, им должно быть комфортно)
Laravel с Vue на малинке - это амбициозно)))
С другой стороны, если это ваш основной стек, то другие фреймворки лень искать, понимаю.
Да, использовали свой основной стек для решения задачи )