Как я делал САМОСБОР ВЕБ: от идеи до релиза в VK
Привет, DTF. Хочу подробно рассказать, как я сделал игру САМОСБОР ВЕБ — браузерный survival horror про бесконечную панельку, голод, NPC и, конечно, Самосбор. Без команды, без бюджета, без опыта в геймдеве. Только идея, ноутбук и AI-инструменты.
Эта статья — не про «успешный успех». Это честный разбор того, как вайб-кодинг превращается в работающий продукт, какие решения пришлось принимать и где я конкретно облажался.
Часть 1. Откуда взялась идея
Самосбор — это интернет-феномен. Гигахрущ, панельки, бесконечные этажи, странные соседи. Тема живая, у неё есть аудитория, и она идеально ложится на сеттинг хоррора.
Я не придумывал вселенную с нуля — я взял готовый культурный контекст и спросил себя: какой жанр сюда просится?
Вариантов было несколько:
- Хоррор с прятками. Классика: ходишь по этажам, тебя ищут, ты прячешься. Но это уже было.
- Симулятор выживания. Готовишься к Самосбору, спускаешься вниз, торгуешься.
- Roguelike с процедурной генерацией. Каждый заход — новый лабиринт, новая смерть.
Я выбрал второй вариант, но с элементами третьего. Не чистый выживач, а цикл подготовки и спуска, где каждый этаж — это риск, а смерть — часть процесса.
Почему не мобильная игра
Мобильная разработка — это отдельная вселенная. Unity, билды, публикация в RuStore и Google Play, обновления. У меня не было ни времени, ни желания разбираться с этим.
Браузерная игра — другое дело. HTML, CSS, JavaScript. Работает везде. Не нужны установки. И главное — VK Mini Apps даёт доступ к аудитории ВКонтакте напрямую.
Почему именно VK
Самосбор — это в первую очередь аудитория ВКонтакте. Тематические паблики, мемы, обсуждения. Люди там уже знают, что такое Гигахрущ. Мне не нужно объяснять контекст — нужно просто дать им игру.
Часть 2. Вайб-кодинг: как это работает
Вайб-кодинг — это подход, при котором ты не пишешь код руками, а описываешь, что хочешь получить, и AI генерирует реализацию. Ты выступаешь в роли архитектора, режиссёра и тестировщика.
Стек
- Frontend: чистый JavaScript + Canvas для рендера игрового поля
- Состояние игры: объект в памяти + localStorage для сохранений
- Сборка: Vite (быстро, просто, работает из коробки)
- VK SDK: VK Bridge для интеграции с платформой
Никаких React, Vue или тяжёлых движков. Для игры такого масштаба они не нужны.
Как выглядел процесс
Я описывал AI-инструменту (в моём случае — Google Gemini) конкретные задачи:
«Сделай функцию генерации этажа. Этаж — это сетка 20x20. Игрок стартует в центре. В случайных клетках размещаются: 2 NPC, 3 предмета, 1 выход на следующий этаж. Стены — по периметру.»
AI генерировал код. Я запускал, смотрел, что не работает, и просил исправить:
«Игрок застревает в стенах при движении вправо. Проверь коллизии.»
И так по кругу. Не «напиши мне игру», а «сделай вот эту конкретную вещь». Это ключевое отличие работающего вайб-кодинга от фантазий.
Где вайб-кодинг ломается
AI не понимает контекст всего проекта. Он видит только тот кусок, который ты ему показал. Поэтому:
- Функции дублируются, если не следить
- Переменные называются по-разному в разных местах
- Логика расползается, если не держать архитектуру в голове
Я вёл простой файл NOTES.md, где записывал структуру проекта и ключевые решения. Это спасало.
Часть 3. Механики: что вошло в игру
Ядро геймплея
Игрок находится на этаже. У него есть голод, запас еды и талоны (внутриигровая валюта). Цель — спуститься как можно глубже.
Каждый спуск — это риск. Чем глубже, тем опаснее NPC, но тем ценнее лут. Смерть обнуляет прогресс, но сохраняет часть талонов — это мягкая рогалик-механика, которая не бесит.
NPC и торговля
На этажах встречаются NPC. С ними можно торговать: обменять еду на талоны, купить информацию о следующем этаже, получить предмет.
Торговля — это не просто «нажми кнопку». NPC могут обмануть, отказаться, предложить странную сделку. Это создаёт напряжение.
Самосбор как событие
Периодически на этаже случается Самосбор. Это не скриптовая сцена, а таймер. Игрок знает, что через N секунд начнётся движение, и должен решить: спрятаться, бежать к выходу или рискнуть и дособрать лут.
Это самая сильная механика в игре, потому что она создаёт истории. Игрок не просто проходит уровень — он переживает событие.
Что я вырезал
- Крафт. Слишком сложно для браузерной игры, отвлекает от ядра.
- Диалоговые деревья. Много контента, мало пользы. Заменил на короткие реплики.
- Мультиплеер. Отдельный проект, не для одиночного разработчика.
Вырезать механики так же важно, как добавлять. Каждая лишняя система — это баг, который придётся ловить.
Часть 4. Разработка по этапам
Этап 1. Прототип на коленке
Первая версия — это HTML-файл на 300 строк. Игрок — квадрат. Стены — прямоугольники. NPC — другие квадраты. Никакой графики, только логика.
Цель прототипа — проверить, что ядро работает. Движение, коллизии, генерация этажа, спуск вниз. Всё остальное — потом.
Этап 2. Визуал
Когда логика заработала, я начал добавлять картинки. Спрайты рисовал сам в Aseprite — простые пиксельные модели. Это не AAA-графика, но она работает.
Важный момент: визуал не должен мешать геймплею. Если игрок не понимает, где выход — это плохой визуал. Поэтому выход всегда подсвечен, NPC всегда отличаются от стен.
Этап 3. Звук
Звук в хорроре — это 50% атмосферы. Я использовал бесплатные библиотеки и генерировал простые эффекты. Шаги, скрипы, шёпот — всё это создаёт напряжение.
Отдельная история — тишина. Иногда отсутствие звука пугает сильнее, чем скример.
Этап 4. Сохранения и прогресс
localStorage — простое решение. Игрок закрывает браузер, открывает — прогресс на месте. Никаких серверов, никаких баз данных.
Минус: если игрок чистит кэш, всё теряется. Но для бесплатной браузерной игры это приемлемо.
Этап 5. Интеграция с VK
Здесь началось самое интересное. VK Bridge, авторизация, платежи, модерация. Об этом — отдельный раздел ниже.
Часть 5. Интеграция с VK: что нужно знать
VK Bridge
VK Bridge — это мост между твоим приложением и платформой ВКонтакте. Через него ты:
- Получаешь информацию о пользователе
- Отправляешь уведомления
- Инициируешь платежи
- Управляешь жизненным циклом приложения
Инициализация простая:
javascriptimport bridge from'@vkontakte/vk-bridge';bridge.send('VKWebAppInit');
Но есть нюансы. Например, при сворачивании приложения нужно останавливать звук. Это требование модерации:
javascriptbridge.subscribe((e)=>{if(e.detail.type ==='VKWebAppViewHide'){pauseAudio();}if(e.detail.type ==='VKWebAppViewRestore'){resumeAudio();}});
Платежи
Платежи в VK — это отдельная головная боль. Нужно:
- Заполнить URL для платёжных уведомлений
- Создать товары в панели управления
- Настроить обработку платежей на сервере
- Указать тестировщиков
Я сделал 4 товара:
IDСтоимостьЧто даётdonate_1_vote1 голос50 талоновdonate_3_votes3 голоса200 талоновdonate_5_votes5 голосов450 талоновdonate_10_votes10 голосов1000 талонов
Важно: ID товаров должны точно совпадать с тем, что написано в коде. Одна лишняя буква — и оплата не сработает.
Модерация
Модерация VK — это не формальность. Модераторы реально тестируют приложение. Что они проверяют:
- Обработка персональных данных. Нужны политика конфиденциальности и пользовательское соглашение. Игрок должен явно их принять.
- Удаление аккаунта. По запросу — полное удаление данных.
- Локализация. Все тексты на русском, включая ошибки.
- Защита от нагрузки. Rate limiting, ограничение размера запросов.
- VK Bridge. Корректная обработка событий жизненного цикла.
Срок проверки — 7-14 дней. Могут вернуть на доработку, это нормально.
Часть 6. Что я понял
1. Вайб-кодинг работает, но требует дисциплины.AI не заменит архитектора. Ты должен понимать, что строишь, и держать структуру в голове.
2. Вырезать важнее, чем добавлять.Каждая лишняя механика — это баг. Лучше сделать одну вещь хорошо, чем пять плохо.
3. Модерация — это фильтр качества.Требования VK заставляют писать код аккуратнее. Это больно, но полезно.
4. Аудитория важнее технологии.Я мог сделать игру на Unity и выложить в Google Play. Но аудитория Самосбора — во ВКонтакте. Идти туда, где люди, — правильное решение.
5. Игра — это истории.Самая сильная механика — не графика и не звук. Это момент, когда игрок переживает что-то, чего не ожидал. Самосбор даёт такие моменты.
Что дальше
Сейчас САМОСБОР ВЕБ проходит модерацию для публикации в каталоге VK. Параллельно я работаю над:
- Новыми типами NPC
- Событиями на этажах
- Системой достижений
Если у вас есть вопросы по технической части, вайб-кодингу или интеграции с VK — пишите в комментариях. Отвечу всем.
Игра доступна по ссылке: ссылка на приложение VK
Спасибо, что дочитали.