В какой-то момент просто сидеть и пить пиво в баре перед концертом нам с друзьями надоело, и мы решили добавить развлечений. Началось всё с игры в «Крокодила», где показываешь слова жестами, но потом мне рассказали про «Шляпу».
Расскажите о себе и сути проекта?
«Шляпа» в нашем варианте — это когда вы разбиваетесь на пары (обязательно нужно чётное количество человек). По кругу передаётся телефон с запущенным приложением. Тот, у кого в паре сейчас в руках телефон — объясняет слово, а второй угадывает. Использовать для подсказки синонимы, созвучия и переводы на другой язык считается нарушением.

Как появилась идея? Что вдохновило?
Идея, конечно же, краденая. В апсторах есть «Шляпа», но NIH-синдром сделал своё дело. Во-первых, словарь очень ограниченный. Во-вторых, ну камон, если что-то можно сделать в вебе, то это нужно сделать. В-третьих, давно хотелось что-нибудь навайбкодить, а то токены лишние валяются.
Что вошло в прототип и сколько времени на него было потрачено?
Прототип уже сейчас довольно полнофункциональный. Играть в режиме «один телефон на толпу» точно можно. Из важных элементов:
- словарь существительных русского языка на 55 тысяч слов
- разметка словаря через Wordfreq вайбкожаным скриптом на питоне
- интерфейс, чтобы ничего случайно не нажималось, ну и понятно было, кто загадывает, кто победил и т.д.
- запоминание имён игроков и настроек сессий в Supabase
- туда же в Supabase летит статистика по времени отгадывания слов. Колдовство с частотным словарём — это, конечно, классно, но тут можно развернуться дальше и, предположим, собирать частотность уже исходя из прошедших игр.
Первый коммит был, получается, 1 июля. Но там было немножко уже готового кода, так что потратил где-то месяц.
Какой технологический стек вы использовали? Почему?
Взял TS+React+Mantine+xState. Авторизацию и БД слил на Supabase. Выбор такой, потому что во-первых я люблю реакт, а во-вторых хотелось попробовать, на что вообще похож этот ваш современный фронтенд.
Как вы запускались и искали первых пользователей?
Первые пользователи сами очень обрадовались, когда узнали, что у них теперь будет своё приложение для игры, с мэйнтейнером, которому можно набить лицо купить пива в качестве благодарности.
С какими самыми неожиданными трудностями пришлось столкнуться?

Первые несколько игр, конечно, были не без проблем, потому что сформулировать хорошую формулу сложности слова не так-то просто. Я почему-то думал, что если дать длине слова 40% веса, то будет ок, но не тут-то было:


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

В процессе игры ещё выяснилось, что часто игрок успевает в последнюю секунду ткнуть кнопку «Угадано» и видит следующее слово из шляпы, что портит концепт. Так пришли к идее добавить «финальный» раунд, когда у отгадывающего есть только один шанс.
Сколько потратили и заработали? Есть идеи как это можно монетизировать?
Потратил только время. Монетизацию планирую как минимум бесплатным пивом (пп-чат, камон, я про вас!), но можно попробовать добавить, например, полноценный протестированный мультиплеер за денежку, если я вылезу за пределы ресурсов Supabase (что-то мне подсказывает, что держать кучу открытых вебсокетов может быть недёшево).
Какие планы на будущее?
Есть мысль попробовать таки реализовать и другие три режима игры, но с другой стороны может оно и не надо.
Мультиплеер надо прокачивать. Играть с одного телефона проще и удобнее, но поддерживать случай, когда людям стрёмно давать друг другу телефоны, наверное, надо.
Англоязычная версия вообще не тестировалась. Страшно пробовать.
Ну и ещё надо бы больше ачивок и статы. И разобраться, как привязать профили других игроков к игре в один телефон (но тут есть идейки).
Нужны ли какие-то советы или помощь Клуба?
Любой конструктивный фидбек полезен!
Какой совет вы бы сами могли дать идущим по вашим стопам?
Вайбкодить — хорошо, но нужно давать агенту жёсткие рамки тестов, линта и всего остального. Поначалу я пытался это делать, но в итоге забил. Теперь только с рабочими коммерческими проектами так запариваюсь.
За месяц получилось сделать красиво в основном по той причине, что были частые итерации. Днём подёргал ИИ, чтобы он там всё исправил — вечером в баре с друзьями собрал фидбек и получил звездюлей за слово «льяло» — на следующий день готова новая итерация.
PS. Вся эта шляпа — полный опенсорс, так что запросто кидайте пулреквесты!
PPS. Хонорабл меншн за бета-тестирование уходит белградскому комьюнити «Поесть попить»
у нас в компании друзей практиковался такой вариант:
собственно, предложение, чтобы можно было использовать не только словарь с рандомными словами, а иметь возможность заполнять "банк" своими вариантами перед каждой игрой. с точки зрения реализации будет прикольно, если каждый участвующий сможет делать это со своего телефона — один телефон работает как хост игры, другие скидывают в него варианты перед игрой.
Мы тоже играем с именами и сами накидываем в шляпу варианты, таким образом игра каждый раз кастомная для разной компании, заранее обговариваем, что все должны плюс-минус понимать кто эти люди)
Плюс у нас одна игра делится на три этипа с одним и тем же пулом слов:
Звучит сложно, но к третьему прогону вы уже более-менее запомнили пулл вариантов и угадывается легко
Быо бы здорово увидеть этот вариант как режим игры