getLocus.io — онлайн-комнаты для групповых встреч

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

Всем привет! Наша команда до марта 2020 проектировала, тестировала и проводила деловые игры (иногда больше похожие на хакатоны), и разумеется с началом самоизоляции мы столкнулись с невозможностью проведения наших мероприятий.

Мы пробовали в Zoom, Slack, Discord с параллельными чатами в Telegram, но проблема была в том, что играющие не могли оперативно собираться вместе, расходиться по небольшим группам, потом опять собираться вместе, потом расходиться чуть в другом составе и так несколько раз.

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

Как мы работали

Нас вдохновили истории, когда школьные уроки и рабочие встречи начали проводить в Minecraft или Half-Life. Мы хотели сделать что-то подобное, только более доступное и простое. Посмотрев решения, которые так или иначе нам могут подходить, мы остановились на сервисе Tokbox: он обеспечивал потоковое видео и позволял регулировать громкость звука.

На базе сервиса Tokbox были сделаны spatial.chat, miro.com, remo.co, и нам показалось, что это показатель качества (спойлер: чуть позже мы поняли, что это не совсем так).

В самом начале нам было важно проверить, что:

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

За три недели разработки у нас получилось реализовать задуманное, прототип мы собрали легко и быстро, а вот настоящие трудности начались потом.

getLocus.io — онлайн-комнаты для групповых встреч

Сначала мы боролись с ограничениями сервиса Tokbox

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

В-третьих, почему-то Tokbox не позаботился об организации полноценного механизма администрирования и стать админом в пространстве можно было любому желающему, немного покопавшись в исходном коде клиента.

В-четвертых, и так очень недешевый сервис tokbox’а openTok почему-то насчитывал нам лишние минуты использования, причем настолько ощутимо, что мы приняли решение разрабатывать еще и свой собственный сервис для передачи видеопотока и полностью отказаться от Tokbox.

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

В мае мы занимались

  • разработкой сервиса для передачи видеопотока;
  • оптимизацией существующей системы: рефакторинг, снижение нагрузки на клиента;
  • добавлением новых фич: расширить список того, что пользователь может выложить (картинки, PDF, ссылки, видео), добавить «микрофон» и “mute” для Ведущего;
  • кастомным дизайном интерфейсов.

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

getLocus.io — онлайн-комнаты для групповых встреч

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

Итого, как выглядит работа в getLocus сейчас

  • ‎Под онлайн-встречу, через личный кабинет, организатор встречи создает пространство и рассылает ссылку-приглашение участникам.
  • ‎Для подключения к пространству достаточно ссылки-приглашения, она одинакова для всех гостей. Далее все как в обычных текстовых чатах — придумываешь себе ник и нажимаешь «войти», никаких лишних действий.
getLocus.io — онлайн-комнаты для групповых встреч
  • ‎К пространству можно подключиться с любого устройства, на котором есть браузер. Но, конечно, на планшетах и десктопах работать с пространством куда удобнее.
getLocus.io — онлайн-комнаты для групповых встреч
  • ‎Пространства реализованы как white board, на котором можно свободно размещать медиа-объекты, в том числе доступно свободное перемещение своего аватара с видеосвязью. При этом, чем дальше вы находитесь от других участников, тем меньше вы их слышите, а они вас.
getLocus.io — онлайн-комнаты для групповых встреч
  • Если вы являетесь создателем пространства, у вас есть возможность выдавать/забирать микрофоны всем участникам — эта функция позволяет обойти звуковой барьер, если вам важно, чтобы вас слышали на любом расстоянии.
getLocus.io — онлайн-комнаты для групповых встреч
  • ‎В пространство можно выкладывать изображения размером до 2 МБ, свободно их трансформировать и размещать по пространству. Картинки можно использовать просто как фон или же выкладывать важный контент. Например, размещение скриншотов с текстом для нас оказалось более удобным, чем просто выкладывание текстовых файлов в текстовый чат.
  • ‎Можно синхронно смотреть ролики/трансляции с YouTube — паузой и воспроизведением управляет выложивший ссылку на видео.
  • ‎Можно расшаривать экран, причем не только весь или конкретного приложения, но и даже отдельные вкладки браузера.
  • ‎В пространстве действует ограничение на число активных посетителей, до 50 человек единовременно, для организации более крупных мероприятий мы сделали инструмент для переходов между пространствами, по аналогии с комнатами в чатах. Чтобы перейти в другое пространство, надо «встать» на «переход». Помимо этого, тестируем увеличение лимита до 100 участников на одну комнату.
getLocus.io — онлайн-комнаты для групповых встреч
  • В пространстве также действует чат, в котором можно общаться и скидывать материалы, а также он может быть полезен, если у участников нет микрофона/камеры или слабое соединение с интернетом.
getLocus.io — онлайн-комнаты для групповых встреч

Итого

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

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

2222
27 комментариев

Подскажите Владимир, вы гуглить не умеете, или специально решили делать дубль сервиса https://spatial.chat/ ? Это штука еще в апреле появилась, и на волне стала известна в ивент кругах.

3

Иван,
во-первых мы spatial упомянули в статье и явно указали на него, как на образец.
Во-вторых он нам не подошел по ряду причин:
1. на момент создания не было поддержки мобильных устройств
2. некоторым удалось зайти с ipad, но у них не работл звук
3. не было текстового чата
4. нет возможности отключать звуковой барьер
5. не было административных функций
6. мы ориентированы на другой формат работы, нам нужны шаринг презентаций, белый лист и пр.
В-третьих, один из наших коллег связывался с разработчиком spatial в конце апреля, на предмет возможности сотрудничества - в сотрудничестве нам отказали, сказали сделайте свой чат. Собственно сделали 🤷‍♂️

15

Первый раз в жизни об этом сыпале чате слышу, "ивент круги" это типо ты и ты? Или вас там трое?

Что скажете про вот этот точно такой же сервис? https://spatial.chat/

И вот про этот, в котором тот же концепт чатов? https://connect.club/

1

Спасибо за вопрос, мы их конечно же рассматривали
Spatical - не совсем такой же, чуть выше, в комментариях уже отвечал почему.
А Connect.club еще дальше от наших задач и концепции, во-первых он только для мобильных устройств, во-вторых ориентирован на неформальную коммуникацию, а не на групповую работу.

2

Зачем на мобилке кнопки + и - если можно использовать жесты?
Кнопка «на весь экран» тоже вроде не нужна?
Или я не понял как оно работает?

1

Кнопка «на весь экран» - экономит место и по сути превращает сайт из вкладки в полноценное приложение.
А кнопки "+" и "-", думаю да, на мобильных стоит убрать - спасибо за рекомендацию

2