Расскажите о себе и сути проекта?
Привет, я Кирилл, амбассадор $mol'a.
Giper Balls — каталог браузерных игр. PWA, ставится на телефон как обычное приложение, работает в fullscreen. Сейчас три игры:
Lines — классические пятёрки в ряд. Двигаешь шарики по сетке 8x8, собираешь линии из 5+ одного цвета, они исчезают и дают очки. Очки растут экспоненциально —
2^(длина - 5). Собрал линию из 7? Получи 4 очка. Из 10? 32. Каждый ход на поле появляются 3 новых шарика, плюс 3 "призрака" — полупрозрачные превью, где появится следующая партия. Стратегия в том, чтобы планировать на ход вперёд.Crowd — шарики лезут со всех краёв поля и двигаются к центру. Каждые 250мс поле обновляется — всё ползёт внутрь. Нажимаешь на группу из 2+ одноцветных — они исчезают. Счёт:
2^размер_группы - 3. Группа из 5 шариков = 29 очков. Из 10 = 1021. Лавинный эффект, если дождаться большого скопления — но рискуешь, что поле заполнится.Шахматы — полноценная реализация с AI. Доска на Uint8Array, 64 клетки + байт стороны. Фигуры закодированы по 4 бита: тип (пешка/ладья/конь/слон/ферзь/король) + цвет. AI считает материальный баланс и мобильность, выбирает лучший ход через minimax с мемоизацией. Есть режим "Автобот" — AI играет сам с собой, можно смотреть.
У шариков есть "настроение" — эмодзи-мордочки, которые меняются в зависимости от количества соседей того же цвета. Одинокий шарик грустит, окружённый друзьями — радуется. Мелочь, а приятно)
Сами игры написал Дима Карловский — автор $mol. Они давно существовали как демо фреймворка. Я взял готовые игры и превратил их в продукт: система жизней с регенерацией, магазин, оплатой через ЮKassa.
Как появилась идея? Что вдохновило?
Игры Димы лежали в открытом доступе. Решил их монетизировать, что бы найти деньги на развитие экосистемы мола, ну и самому подзаработать
Идея в том, чтобы взять работающий продукт и монетизировать его минимальными усилиями.
Что вошло в прототип и сколько времени на него было потрачено?
Сделал за два вечера. Добавил в игры:
Систему жизней. 5 жизней, в localStorage.
Регенерация. 1 жизнь раз в 30 минут, максимум 5. Для этого не нужно держать приложение открытым. При потере жизни сохраняю timestamp в localStorage. При следующем открытии считаю, сколько прошло времени. Если прошло 2 часа — получи 4 жизни сразу.
Cloudflare Worker — два эндпоинта:
POST /create-payment— принимаетproduct_id, создаёт платёж через YooKassa API, возвращаетconfirmation_tokenGET /check-payment?id=xxx— проверяет статус платежа
Воркер конечно для меня открытие, я просто очень не хотел гемороится с бэком
Магазин. Три тарифа: 1 жизнь за 200₽, 3 за 400₽ (133₽/шт), 5 за 500₽ (100₽/шт — лучшее предложение). Виджет ЮKassa рендерится прямо на странице магазина, без редиректов. После оплаты фронт поллит статус каждую секунду, и когда видит succeeded — начисляет жизни и перезагружает страницу.
Какой технологический стек вы использовали? Почему?
$mol на нём я пишу всё. Реактивность из коробки: пометил метод @$mol_mem — и он автоматически кеширует результат, пересчитывается только когда зависимости изменились. Стили типизированные — CSS-in-TS через $mol_style_define(), нельзя написать color: 'redd', TypeScript поймает. View.tree — декларативный DSL вместо JSX: описываешь структуру, а фреймворк делает DOM.
Cloudflare Workers — бесплатно (100k запросов в день)
ЮKassa — embedded widget. Виджет рисуется внутри div'а на странице.
GitHub Pages — бесплатный хостинг.
Весь стек — 0₽ в месяц.
Как вы запускались и искали первых пользователей?
Только доделал, попробуйте )
С какими самыми неожиданными трудностями пришлось столкнуться?
Купил одну жизнь, получил 6)
Сколько потратили и заработали? Есть идеи как это можно монетизировать?
Потратил: 0 Заработал: 0 :)
Какие планы на будущее?
Онлайн-мультиплеер для шахмат — через Giper Baza. Синхронизация между клиентами из коробки, end-to-end шифрование by default. Два игрока открывают ссылку — и играют. Без сервера и регистрации.
Добавить больше игр
Разные визуальные темы — сейчас шарики и шахматные фигурки в виде эмодзи. Хочу добавить скины: другие формы, цвета, анимации. Хотел бы это тоже монетизировать.
Рейтинги и таблицы лидеров — глобальную таблицу.
Обратная связь — компонент для багрепортов и предложений прямо из приложения.
Нужны ли какие-то советы или помощь Клуба?
Стоит ли делать рекламную модель вместо покупки жизней? Или и то и то и рекламу, и покупки?
Еще как то нужно донести ценность жизней, думаю рядовому пользователю будет не понятно
Какой совет вы бы сами могли дать идущим по вашим стопам?
Если хотите попробовать добавить монетизицию к себе то советую Cloudflare Workers + ЮKassa

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

Пишу как человек сделавший больше десятка гиперказуальных прототипов игр в прод за деньги. Про рекламную монетизацию: она будет работать только на очень больших цифрах посещаемости и при очень аддиктивном геймплее. Тебе надо будет придумать как встроить рекламу в геймплей чтобы пользователю хотелось самому запустить эту рекламу чтобы за неё начислить себе жизни / внутри игровые бонусы. Последний гораздо более эффективно. Потому что если пользователь придется смотреть рекламу для покупки жизни когда он уже расстроился что проиграл, ему нужно будет ещё раз расстроиться посмотрев рекламу...
Короче gamedev - это больно. По возможности избегайте.
P. S. Лучше поучаствуй в каком-нибудь популярном open source на том стеке на котором мы тебе внутри Рика ищем работу. И open source будет полезно и мне для твоего резюме :)
Всегда очень радостно видеть людей с горящими глазами и руками из нужного места.
Но весь этот холивар наводит на мысль, что все-таки, может не стоит изобретать велосипед? Не пишу веб уже лет 8, и может чего-то не понимаю, но тут ощущение ситуации, когда желание упростить себе жизнь в деталях, приводит к усложнению в общем.
--
Формулировка "что бы конкурировать с гугл могла" добила)