Z3oM

Z3oM

Что ты тут делаешь пикабушник?
Пикабушник
10К рейтинг 18 подписчиков 18 подписок 70 постов 7 в горячем
Награды:
Пикабу 17 лет! Самый большой торт 10 лет на Пикабу За контакт с инопланетным разумом С Днем рождения, Пикабу! За подвиги в Мире PlayStation 5
6

Два года назад я решил написать свою голосовую платформу. Кажется много увлекся⁠⁠

Всем привет!

На Пикабу я давно. Раньше что-то сюда писал, комментировал, да и в целом довольно активный пользователь.

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

Началось всё в 2024 году.

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

А я человек такой - постоянно бросаю себе вызовы. Чего-то не хватает? Блин, ну возьми и скачай! Да зачем?! Я сам сделаю! Своё! День-два посидел, потыркался, сделал, пользуюсь довольный. У меня всегда так. Люблю я изобретать велосипеды, в хорошем смысле этого слова.

Ну так вот, сидели мы с друзьями в Телемосте и обсуждали, как быть дальше. А я, как всегда, в свойственной мне манере:

— ДОКОЛЕ! Сделаем свой, и дело с концом!

Друзья поржали, а я в тот день не смог уснуть.

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

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

Ранний прототип

Ранний прототип

Прошу прощения за шакальные скрины, добывал из переписок с друзьями.

Тогда это была просто залепуха без лишнего функционала - чисто собранное на коленке решение. И в целом мы ушли с Телемоста на моё решение.

Уже в тот момент я понял, что мне, блин, супер интересно! Идея не отпускала меня ни на день. Множество мыслей, задумок, вариантов реализации. Прошли праздничные дни, и друзья меня потеряли, потому что я нашёл себе вторую работу.

Раньше вторая работа - это гринд мобов в MMO или PoE, а теперь - гринд строчек в IDE (редакторе для написания кода). Понятное дело, сам я айтишник, тусовка соответствующая, поэтому постепенно подтянулись ещё ребята. В целом двигалось отлично! И все мои друзья постепенно перешли на наш сайт.

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

Ой, про шумоподавление есть отдельная история.

Решил я прикрутить шумоподавление на основе обученной нейросети. Да, работает она круто! Пхахахаха. Но как я её тестировал - это нужно было видеть.

Я прикрутил два аккаунта, расшарил доступ на два компа в локальном девелоп-окружении (в режиме разработчика), потыркал параметры, покрутил пресеты. И вот стою я с беспроводными наушниками на кухне, включаю кран с водой и ору жене:

- Зай! Ну что? Слышно воду?

- Нееее! - доносится в наушниках.

- Шикарно!

Стою дальше, мою посуду и рассказываю ей всякую чушь в ноут ))) Она смеётся, я смеюсь, воду не слышно )) Вот так и настроил шумоподавление )))

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

Потом мы ещё долго сидели с друзьями и тестировали. Кто на воде, кто на пылесосе, кто во время похода в туалет )) В итоге вышло приемлемо.

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

Пхаха, это было очень приятно!

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

А ещё была забавная история, как мы тестировали трансляции.

Это было ужасно )))

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

- АААААА!

- УУУУУ!

- ДАААА!

- МЕЕЕЕ! БЕЕЕЕ!

- АЛЛО! АЛЛО! АЛЛО!

- ДАДАДАДАДАДАДАД!

Пхахахаха!

Блин, эти моменты возникают как флешбэки в моей памяти, пока пишу этот длиннопост.

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

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

Проект был некоммерческий, всё за свой счёт, без всякой денежной дичи и клянчания бабок.

Хотя и с инвесторами были разговоры )) Но об этом ниже.

К середине 2025 года портал был хоть и стремный, но рабочий.

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

Прототип колхозного интерфейса

Прототип колхозного интерфейса

Долгие месяцы поиска красивого дизайна, отбрасывания идей и переделок.

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

А друзья постоянно писали:

- Проблема со входом!

- Меня выкидывает из комнаты!

- У тебя на портале пользователи-невидимки появились!

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

В какой-то момент у нас даже родился локальный мем — Мишаня-невидимка.

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

А все остальные приседали на очко, пытаясь понять, что это такое, у кого там шумит и кто кряхтит )))

В итоге я пофиксил эту проблему.

И в один прекрасный день залил фикс и говорю:

- Пацаны, Мишаня сейчас зайдёт. Не подаём виду, что он с нами.

Сидим, общаемся.

Заходит Мишаня и в свойственной ему манере начинает пукать и срекать.

А мы минут через десять ему:

- Прекращай, дебил, тебя все видят!

Пхахахаха!

В моменте это было очень прикольно и весело.

Ой, а как я боролся с зависающими трансляциями - это просто пипец.

Я, наверное, недели три потратил только на изучение вопроса с трансляциями в веб-версии.

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

И даже с какой-то ностальгией.

Корявая формочка

Корявая формочка

Да, тогда стандартная форма, заполненная от балды, приносила какое-то внутреннее блаженство.

Ну прикиньте, на твоём горе-сайте кто-то взял и заполнил профиль о себе!

Понятное дело, что всё это необязательная дичь и нафиг для общения не нужно.

Но оно было. И грело душу )))

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

Страница с друзьями и личными сообщениями, настройки приложения

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

Без необходимости использовать обходные пути, без лагов по связи, с нормальным сервером на территории РФ и гигабитным каналом.

Ой, что я только что вспомнил! Это ужас!

Связала меня жизнь с одним хостером. Это кринж. Имён называть не буду.

Суть в том, что в какой-то момент мы поняли: трансляции лагают. Уже и так, и сяк пробовали. Ничего не помогает. В итоге пишу хостеру. А он мне на полном серьёзе:

- У вас тут это... То самое... Трафик летит бешеный! Вы там чё, обалдели? Мы вам лимиты впаяли!

В итоге возможности быстро уйти не было. И это было одновременно смешно и неприятно. Мы сидели и не могли стримить сразу несколько трансляций. А ведь по вечерам мы любили залипать на чемпионатах по CS. Как только пинг поднимался, все сразу тушили трансляции, смотрели по отдельности и просто сидели в голосовой комнате. Пинг поднялся?

- Оооо, лимиты ввели! Туши трансляцию, пока вообще всё не отвалилось!

Окно настроек трансляции

Окно настроек трансляции

В какой-то момент я понял, что одного портала уже недостаточно. Нужно пилить полноценную десктопную версию.

Как вспоминаю - меня в дрожь кидает!

Я начинал её делать раз пять!

И каждый раз начинал, а потом дропал, потому что мне не нравилось, как получилось архитектурно, визуально, как это работало и вообще как всё это жило.

Шикарное поле для ввода

Шикарное поле для ввода

В итоге оно заработало. И в целом результат был!

А какие просторы для творчества открыло настольное приложение?

Да множество!

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

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

Ну и самая главная мечта - шикарные трансляции в FHD (Full HD).

Ноооо...

C++-разработчик из меня такой себе. А именно этот путь я и выбрал.

Ой, какой же я был дурак!

Тут я впервые понял, что не везде можно сделать всё своими силами. Даже если ты упорный как носорог.

Но в итоге я написал!

Да, коряво.

Да, работало через раз.

Но работало!

И грело душу.

Помню, когда я впервые завёз трансляции в десктопную версию, все просто обалдели! Мы перешли от говяного браузерного решения к шикарнейшим трансляциям в FHD и 60 FPS! Потом последовали месяцы усердной стабилизации функционала и исправления багов. Даже сейчас нет-нет да и находятся какие-нибудь ошибки, которые приходится править. Но это уже рутина. Я к ней привык. Помню, как я радовался первому баг-репорту от пользователей!

Страница жалоб

Страница жалоб

Их было много!

И каждый я досконально разбирал: смотрел код, делал фиксы, разбирался в разросшейся логике. А иногда просто заходил в голосовые комнаты к пользователям со словами:

- Будьте добры, не соизволите ли вы этим чудным томным вечером показать мне, что у вас не работает?

Да, это было весело.

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

- Какая у вас ОС? Установлены ли сторонние программные средства? А вот это пробовали?

- Да, да, нет, нет.

Ой, отдельная проблема была вообще...

Суть в том, что Windows 10 у некоторых пользователей гасила звук микрофона при включённом приложении.

Грёбаные виндовые приоритеты...

Пришлось заводить для отдельных пользователей специальный переключатель в настройках.

И так практически со всем.

Казалось бы, починил одну проблему - появляется другая. Потом третья. Потом выясняется, что в каком-нибудь совершенно неожиданном окружении всё работает вообще не так, как ты рассчитывал. Но постепенно я всё-таки вышел на некое плато стабильности. И понял: а было бы круто попробовать как-то двинуть продукт дальше.

Но условия у меня были конкретные.

  1. Я не хочу продавать рекламу. Это дичь!

  2. Я не хочу делать платными внутренние функции портала: количество комнат, количество пользователей в канале, внутренние фишки каналов и так далее.

  3. Я не хочу урезать качество трансляций. Ведь это функция, которая нужна большинству пользователей.

Кто-то вместе смотрит фильмы, кто-то наблюдает, как друзья играют, кто-то проходит квизы, а кто-то даже преподаёт уроки.

Я максимально убежден как в играх так и в продуктах, что система Pay to Win (купи и побеждай) - это полная дичь. Для меня концепция Габена самая крутая. Хочешь зарабатывать? Зарабатывай на тех вещах которые не влияют на геймплей. Как в КС или Доте. Хочешь выделиться, купи скин. А функционал и механика у всех должна быть идентичная.

Да, и такие есть! Пхахаха.

В итоге друг нашёл инвесторов.

Ой, ребят, что это за дичь!

DAU, MAU, FAU, SHAU, FAU!

Я чуть с ума не сошёл, пока готовил презентацию. В итоге диалог сложился примерно такой:

- Ой, ребят, вы крутые! (Да-да, крутые, подумал я про себя). Но в целом чего вы хотите?

- Да чего хочу... Просто хочу заниматься своим любимым делом 24/7!

И вот тут я понял, что сам себе толком не могу ответить на вопрос:

А чего я вообще хочу?

Вроде бы того, чего хотел, я уже добился.

Я создал альтернативу тому, что существует на зарубежном рынке.

И не просто слизал, а написал с нуля!

Своими знаниями, своим опытом.

Как разработчик, как архитектор, как обычный пользователь.

И вот вроде бы можно успокоиться.

Но нет )))

В итоге я сам пользуюсь Emotify не только для общения с друзьями но и для игры со своими детьми. И даже отдельные фишки для них прикрутил. Например, игрового ассистента

Ассистент Моти

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

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

Пример работы ассистента с распознаванием речи (иногда выдает дичь, но ИИ понимает что я срёкнул в микрофон и выдает инфу которую я ищу)

Пример работы ассистента с распознаванием речи (иногда выдает дичь, но ИИ понимает что я срёкнул в микрофон и выдает инфу которую я ищу)

И этим пользуемся мы с детьми )) Но и этого мне показалось мало.

Потом я замутил полезную штуку уже для работы — саммарайзер.

Это функция, которая позволяет после разговора составить краткое изложение того, что обсуждалось.

В итоге, во что это все превратилось

В итоге, во что это все превратилось

И вот сижу я сейчас, пишу этот длиннопост и вспоминаю, с чего всё начиналось.

С обычного вечера в Телемосте.

С друзей, которые поржали над моей идеей.

С первой кривой комнаты, собранной на коленке.

С жены, которая слушала, как я мою посуду и тестирую шумоподавление.

С Мишани-невидимки, который пугал народ в голосовых комнатах.

С десятков переделок, багов, трансляций, которые зависали в самый неподходящий момент.

И понимаю, что банальная идея:

«Ребят, да я сделаю место, где нам общаться!»

Превратилась в проект длиной почти в два года.

Спасибо всем, кто дочитал до конца!

Мне действительно стало легче, когда я поделился с вами этой историей.

Это важно для меня!

Показать полностью 13
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества