Как стать автором
Обновить

Что бывает, когда в настольный футбол играют разработчики: проапгрейдили не только игру, но и корпоративную культуру

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.3K

Теперь голы считаются автоматически, соперника вызывают на бой через телеграм-бота, а система оповещает звуками «Мортал Комбат» Fight! Расскажу, как провели цифровую трансформацию настольного футбола.

Привет, я Иван Григорьев, управляющий партнер LARD. В офисе между рабочими задачами мы с коллегами любим поиграть в настольный футбол. Игра здорово разгружает голову, после нее легче придумывать решения в наших digital-проектах.

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

В статье рассказываю, как реализовали эту идею и как автоматизация настольного футбола повлияла на нашу корпоративную культуру.

Что и как автоматизировали в игре

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

Вот что появилось в нашей игре в результате:

1. Вызов соперника через телеграм-бота. В боте есть список пользователей, зарегистрированных в системе. Из списка нужно выбрать, с кем хотите поиграть, и «бросить вызов». Выбранный пользователь получает сообщение от бота с приглашением — он может его принять или отклонить.

Один игрок выбирает соперника, а второму приходит приглашение на игру
Один игрок выбирает соперника, а второму приходит приглашение на игру

2. Визуализация данных текущей игры. К мини-компьютеру Raspberry Pi, который также является сервером «умного» футбола, мы подключили сенсорный дисплей. Во время игры на нем отображаются имена игроков, время с начала тайма и текущий счет.

Для старта ждём "Play"
Для старта ждём "Play"
Игра в самом разгаре
Игра в самом разгаре
На 3D-принтере напечатали корпус и крепление для дисплея
На 3D-принтере напечатали корпус и крепление для дисплея

3. Расчет текущего счета игры в режиме реального времени. Чтобы система автоматически определяла, когда мяч попадает в ворота, мы установили датчик прерывания на основе светодиода и датчика ИК-диапазона.

Когда мяч попадает в ворота, возникает препятствие между ИК-датчиком и светодиодом — свет излучателя на доли секунды прерывается. Датчик прерывания регистрирует событие, а затем информацию о нем обрабатывает Raspberry Pi. После анализа данных информация выводится на дисплей, и мы понимаем, кто забил гол. Так мы регистрируем каждое попадание мяча в ворота.

Светодиод и датчик ИК-диапазона расположены друг напротив друга на воротах
Светодиод и датчик ИК-диапазона расположены друг напротив друга на воротах

В качестве программного стека используется связь Laravel и Vue, а для передачи данных в режиме реального времени — WebSocket.

Сначала датчики регистрировали ложные голы, но мы нашли решение.

Ворота технически не идеальны. Ось излучателя двигалась, и луч не всегда попадал в принимающий диод. Были помехи, и система засчитывала нелегитимные голы.

Сначала мы добавили функционал, который сбрасывает такие голы, а затем сконструировали крепления для датчиков и напечатали их на 3D-принтере. Теперь считаем только реальные голы, а заодно избавились от дребезга ворот во время игры.

4. Звуковое сопровождение. Каждое попадание мяча в ворота, будь то гол или два подряд, сопровождается звуковым сигналом. Для вывода звука использовали обычные колонки, которые подключили к «сердцу» системы — Raspberry Pi. Причем для каждого события можно установить разные звуки, например фанфары для победного гола.

«Ловкость рук, и никакого мошенства!»
«Ловкость рук, и никакого мошенства!»

5. Персонализация. Мы спроектировали личный кабинет, в котором пользователь может настроить свой профиль: выбрать аватарку, задать звуки для событий, посмотреть историю игр. Бросить вызов можно прямо из личного кабинета, а еще он привязан к телеграм-боту, чтобы данные о вызовах синхронизировались.

В личном кабинете можно посмотреть историю своих последних игр со счетом и добавить любые звуки для разных событий 
В личном кабинете можно посмотреть историю своих последних игр со счетом и добавить любые звуки для разных событий 

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

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

«Умный» настольный футбол — часть нашей корпоративной культуры

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

За игрой мы расслабляемся. Добавили интерактива, и играть стало увлекательнее. В любое время можно отвлечься и пойти поиграть, главное — найти соперника. Подавляющее большинство сотрудников играет, и отдых помогает нам перезагрузиться, легче переключаться на разные темы в рабочих проектах.

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

Общаемся без формальностей. Нередко в компаниях люди общаются сухо и формально на «вы», и за обедом нечего обсудить с коллегой, не считая рабочих вопросов. В таком коллективе скучно и неинтересно работать. У нас всё иначе, и во время футбола мы можем посмеяться, выразить эмоции.

Непринужденная обстановка помогает нам генерировать новые идеи и создавать крутые digital-решения. Это еще сильнее сплачивает наш коллектив.

Придумываем новые идеи

Несмотря на уже немалый функционал, хотим реализовать в игре следующие идеи: 

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

  • Приглашать не зарегистрированного в системе пользователя. Сейчас телеграм-бот приглашает только зарегистрированных. 

  • Увеличить число игроков. Например, чтобы могли играть четыре человека, то есть двое на двое.

  • Запустить турниры. Всё, как в настоящем футболе, согласно турнирной таблице: есть много команд, система распределяет соперников, победители разных команд играют друг с другом.

  • Добавить достижения игрока. Разные ачивки и анимации. Например, забил пять голов подряд — дается медалька, присваивается статус какого-нибудь известного футболиста вроде Месси.

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

Поделитесь в комментариях, какая корпоративная культура есть в вашем коллективе. Может, тоже во что-то играете или автоматизируете?

О некоторых наших проектах я пишу у себя в телеграм-канале, если интересно, подписывайтесь.

Теги:
Хабы:
Всего голосов 6: ↑6 и ↓0+6
Комментарии7

Публикации

Истории

Ближайшие события

22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
2 – 18 декабря
Yandex DataLens Festival 2024
МоскваОнлайн
11 – 13 декабря
Международная конференция по AI/ML «AI Journey»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань