Вайб-кодинг. Делаем игру «Золотая жила»
Обновлено 30.10.2026
Вайб-кодинг. Делаем игру «Золотая жила»
Что такое вайб-кодинг
Вайб-кодинг — это способ писать программы, когда код пишет ИИ, а вы ставите задачи обычным языком и проверяете результат. Вам не нужно знать язык программирования: ваша задача — чётко объяснить, что нужно сделать, и проверить, что получилось.
Главное правило: ИИ работает тем лучше, чем точнее задача. Размытая просьба «сделай игру» даёт непредсказуемый результат. Короткий план и маленькие шаги с понятной проверкой дают рабочую программу даже на простой и быстрой модели.
В этой инструкции мы по шагам соберём браузерную игру «Золотая жила»: бур копает шахту вниз, собирает руду, продаёт её на поверхности и покупает улучшения. Игра получится в одном файле index.html, без библиотек и установки. Открывается двойным кликом в браузере.
[Скриншот: готовая игра]
Какой инструмент нужен
Пример в инструкции показан на VS Code + Claude Code. Как их установить и подключить — в инструкции Установка VS Code и Claude Code.
Инструмент не важен. Те же шаги работают в любом ИИ-помощнике для кода: Cursor, Windsurf, Copilot, Cline и других. Нужно только, чтобы инструмент умел читать и редактировать файлы в папке проекта.
Какую модель выбрать
Конкретная модель тоже не важна. Важно подбирать модель под задачу:
Задача | Какая модель | Пример из сценария |
|---|---|---|
Фаза 0: продумать архитектуру | Сильная модель с рассуждениями (effort | terra |
Фазы 1–6: писать код по готовому плану | Простая и быстрая модель (effort | luna ( |
Сильная модель один раз продумывает план. Дальше простая модель пишет код короткими правками по этому плану: так быстрее и дешевле. Если простая модель не справилась с фазой за 2 попытки, отправьте тот же промпт сильной модели.
Названия моделей в вашем инструменте могут отличаться. Как выбрать модель под задачу — в инструкции Какую выбрать модель.
Подготовка
Создайте пустую папку, например
gold_miner.Откройте её в VS Code: меню File → Open Folder.
Откройте Claude Code (или другой ИИ-помощник) в этой папке.
Совет: после каждой удачной фазы копируйте index.html в отдельную папку, например backup/phase1a/. Если следующая фаза что-то сломает, можно вернуть рабочую версию.
Как работать с промптами
Игра собирается за 8 фаз. Для каждой фазы:
Откройте новый чат. В Claude Code — команда
/clear. Новый чат на каждую фазу нужен, чтобы модель не путалась в прошлых разговорах. Всё, что ей нужно знать, лежит в файлахARCHITECTURE.mdиindex.html.Выберите модель для фазы (см. таблицу выше). В Claude Code — команда
/model.Скопируйте промпт целиком и отправьте.
Дождитесь ответа «Готово: …». Если инструмент спрашивает разрешение на изменение файла, разрешите.
Проверьте результат: откройте
index.htmlдвойным кликом или обновите страницу в браузере (F5).Сохраните копию
index.html, если фаза прошла успешно.
Не меняйте промпты без необходимости: в них специально заданы лимиты строк и правила. Почему промпты написаны именно так — в разделе «Техники промптинга» в конце.
Фаза 0. Архитектура
Модель: сильная (в примере — terra), effort medium.
Ты — архитектор браузерных игр.
<context>
Делаю браузерную игру «Золотая жила». Код по фазам будет писать
простая быстрая модель, поэтому нужен короткий и однозначный план.
</context>
<game>
Drill-down как Motherload. Бур копает вниз, собирает руду, тратит топливо,
на поверхности продаёт руду и покупает улучшения.
- Управление: ←→↓ / A D S — ехать или бурить, ↑ / W — лететь вверх,
Space — динамит, клавиши 1–8 — покупки на поверхности.
- Мир: сетка 40×300, блок 32px. Слои: земля → камень → базальт.
Генерация: Math.random() с вероятностями по глубине.
- Движение ПО КЛЕТКАМ, без физики: пустая клетка — переход, блок — бурение
за время по твёрдости, падение на клетку вниз, если под игроком пусто.
Плавность — только анимация отрисовки 0.1 с.
- Руды: медь $5, серебро $15, золото $50, самородок $200, алмаз $500.
- Опасности: газ (взрывается цепочкой), лава глубже строки 150.
- Ресурсы: топливо, HP, трюм на 10 слотов. Улучшения: бур, бак, трюм, корпус, динамит.
- Цель: «Сердце горы» на дне.
- Эффекты: темнота с фонарём (один радиальный градиент), частицы (простой массив),
тряска экрана, всплывающие «+$50», combo, звуки через WebAudio.
</game>
<constraints>
- Один файл index.html, vanilla JS, Canvas 2D, без библиотек и ассетов.
- Модули-объекты: CONFIG, World, Player, Camera, FX (частицы, тряска, всплывающий текст),
Light, Audio, UI (HUD, магазин, экраны), Game.
- Все числа — в CONFIG. Итоговая игра — около 600 строк JS.
</constraints>
<task>
Создай ARCHITECTURE.md, НЕ БОЛЬШЕ 80 строк:
1. Таблица модулей: модуль | ответственность (1 строка) | публичные методы и поля.
2. Типы блоков: таблица id | имя | твёрдость | цвет | цена.
3. Порядок update и render в Game.loop (5–8 строк).
4. Фазы: 1a мир и камера, 1b бур, 2 руды и HUD, 3 магазин и экраны,
4 свет и частицы, 5 динамит и звук, 6 финал. По одной строке на фазу.
Без пояснительного текста и без кода.
</task>Проверка: в папке появился файл ARCHITECTURE.md, в нём меньше 80 строк, есть таблицы модулей и блоков. Это «контракт», по которому дальше будет работать простая модель.
Фаза 1a. Мир и камера
Модель: простая (в примере — luna), effort low. Откройте новый чат.
Следуй ARCHITECTURE.md. Создай index.html.
<task>
Фаза 1a — только мир и камера:
- CONFIG, World (сетка 40×300; строки 0–2 небо, 3 трава, до 60 земля,
до 150 камень, дальше базальт; пустоты Math.random() < 0.05);
- отрисовка только видимых блоков, тёмная обводка 1px;
- Camera временно двигается стрелками ↑↓;
- requestAnimationFrame с dt (dt ≤ 0.05), canvas на всё окно, resize;
- остальные модули — пустые заглушки.
Не больше 120 строк JS.
</task>
<rules>
- Читай только ARCHITECTURE.md. Других файлов не открывай.
- Не запускай команды и сервер, не создавай других файлов.
- Без объяснений. В конце одна строка: «Готово: <что сделано>».
</rules>
<acceptance>
Двойной клик по index.html: видны небо, трава и слои; стрелки ↑↓ двигают камеру; в консоли нет ошибок.
</acceptance>Проверка: откройте index.html двойным кликом. Видны небо, трава и слои породы, стрелки ↑↓ двигают камеру.
Как посмотреть ошибки: в браузере нажмите F12 (на Mac — Cmd+Option+I) и откройте вкладку Console. Красные строки — это ошибки.
Фаза 1b. Бур по клеткам
Модель: простая. Откройте новый чат.
Следуй ARCHITECTURE.md. Отредактируй index.html.
<task>
Фаза 1b — Player, движение ПО КЛЕТКАМ:
- целые col/row, старт на траве посередине;
- ← → ↓ / A D S (зажата): пустая клетка — перейти; блок — бурить
CONFIG.drillTime[тип] секунд, затем блок исчезает и игрок переходит;
- ↑ / W: подняться, если сверху пусто; если снизу пусто и ↑ не нажата —
падать на клетку каждые 0.1 с;
- отрисовка: lerp позиции за 0.1 с; жёлтый корпус + серое сверло
в сторону последнего движения: влево, вправо или ВНИЗ (при ↑ направление не меняется);
при бурении сверло дрожит;
- клавиши хранить по event.code (ArrowLeft, KeyA…), чтобы работало в русской раскладке;
- Camera плавно следует за игроком, ручное управление убрать.
Добавь не больше 80 строк.
</task>
<rules>
- Читай только ARCHITECTURE.md и index.html. Другие файлы не открывай.
- Вноси точечные правки. НЕ переписывай файл целиком.
- Не запускай команды и сервер, не создавай других файлов.
- Без объяснений. В конце одна строка: «Готово: <что сделано>».
</rules>
<acceptance>
Бур копает вниз и вбок, падает в пустоты, поднимается по ↑, камера едет за ним.
</acceptance>Проверка: обновите страницу, кликните мышкой по игре (чтобы страница получила фокус) и копайте стрелками. Бур копает вниз и вбок, падает в пустоты, поднимается по ↑.
Фаза 2. Руды и HUD
Модель: простая. Откройте новый чат.
Следуй ARCHITECTURE.md. Отредактируй index.html.
<task>
Фаза 2:
- руды (медь, серебро, золото, самородок, алмаз): шанс и цена растут с глубиной;
рисовать как породу с 3–4 яркими квадратиками цвета руды;
- трюм на 10 слотов: в трюм попадает ТОЛЬКО руда (земля, камень, газ — нет);
player.cargoValue — сумма цен в трюме; если трюм полон — текст «Трюм полон!»;
деньги ($) растут только при продаже в магазине (фаза 3);
- топливо тратится за каждую клетку и за каждое бурение; при 0 под землёй — Game Over (просто текст);
- HUD сверху: $ (золотым, крупно, не перекрывается полосками), полоска топлива,
полоска HP, «Трюм N/10 ($сумма)», глубина в метрах.
Меняй только CONFIG, World, Player, UI. Добавь не больше 70 строк.
</task>
<rules>
- Читай только ARCHITECTURE.md и index.html. Другие файлы не открывай.
- Вноси точечные правки. НЕ переписывай файл целиком.
- Не запускай команды и сервер, не создавай других файлов.
- Без объяснений. В конце одна строка: «Готово: <что сделано>».
</rules>Проверка: в породе видны цветные вкрапления руды, сверху панель с деньгами, топливом, HP, трюмом и глубиной. Руда попадает в трюм, топливо убывает.
Фаза 3. Магазин и экраны
Модель: простая. Откройте новый чат.
Следуй ARCHITECTURE.md. Отредактируй index.html.
<task>
Фаза 3:
- когда игрок на поверхности (row ≤ 3), справа показывается панель магазина:
1 — продать руду, 2 — заправиться, 3 — починиться,
4 — бур, 5 — бак, 6 — трюм, 7 — корпус (по 3 уровня, цена ×2 за уровень),
8 — динамит ×3. Первая строка панели: «МАГАЗИН: нажми цифру 1–8».
Нажатие цифры (event.code Digit1–8 или Numpad1–8) сразу покупает; недоступные пункты серые;
при продаже: «+$сумма» над игроком и золотые искры;
цифра под землёй — текст «Магазин — только на поверхности»;
- одна функция overlay(title, subtitle): затемнение экрана + крупный текст по центру;
- стартовый экран: overlay("ЗОЛОТАЯ ЖИЛА", "Нажми Enter");
- Game Over: overlay с деньгами и рекордом (localStorage в try/catch), Enter — заново.
Стиль: тёмная полупрозрачная панель, золотой #FFC83D, моноширинный шрифт.
World не меняй. Добавь не больше 90 строк.
</task>
<rules>
- Читай только ARCHITECTURE.md и index.html. Другие файлы не открывай.
- Вноси точечные правки. НЕ переписывай файл целиком.
- Не запускай команды и сервер, не создавай других файлов.
- Без объяснений. В конце одна строка: «Готово: <что сделано>».
</rules>Проверка: появился стартовый экран (нажмите Enter). Накопайте руды, поднимитесь на поверхность, нажмите 1 (продать), затем 4 (улучшить бур). Деньги должны вырасти, а потом уменьшиться.
Фаза 4. Визуальные эффекты ⭐
Модель: простая. Откройте новый чат. Это самая эффектная фаза: игра из набора квадратов превращается в атмосферную шахту.
Следуй ARCHITECTURE.md. Отредактируй index.html.
<task>
Фаза 4 — визуальные эффекты, простыми средствами:
1. Light: если игрок ниже строки 8 — после отрисовки мира залить экран
радиальным градиентом с центром на буре: 0–120px прозрачный,
к 260px — rgba(0,0,0,0.95), дальше чёрный. Один createRadialGradient, без offscreen canvas.
Руда рисуется с shadowBlur 12 своего цвета, чтобы светиться в темноте.
2. FX.particles: обычный массив {x,y,vx,vy,life,color}, максимум 400.
Крошка цвета блока при бурении (3 шт/кадр), 20 золотых искр при подборе руды.
3. FX.shake(power, time): случайный сдвиг камеры, затухает.
Сдвиг ПРИМЕНЯЙ в Game.loop: прибавь к camera.x/y перед отрисовкой мира и вычти после.
4. FX.text("+$50", x, y): плывёт вверх и тает за 1 с.
5. Combo: подборы подряд за 1.5 с → множитель ×2, ×3…,
по центру «COMBO ×N!», увеличивается и тает.
Множитель умножает цену руды, которая идёт в cargoValue, и число во «+$».
Добавь не больше 90 строк.
</task>
<rules>
- Читай только ARCHITECTURE.md и index.html. Другие файлы не открывай.
- Вноси точечные правки. НЕ переписывай файл целиком.
- Не запускай команды и сервер, не создавай других файлов.
- Без объяснений. В конце одна строка: «Готово: <что сделано>».
</rules>Проверка: обновите страницу и копайте вниз. Под землёй темно, вокруг бура светит фонарь, руда светится, при бурении летит крошка, при подборе руды — искры и «+$».
Фаза 5. Динамит, газ, лава и звук
Модель: простая. Откройте новый чат.
Следуй ARCHITECTURE.md. Отредактируй index.html.
<task>
Фаза 5:
- на старте у игрока 3 динамита (CONFIG.START_DYNAMITE); в HUD «Динамит: N [Space]»;
если динамита нет — текст «Нет динамита: купи «8» на поверхности»;
- Space: положить динамит (мигающий красный квадрат), взрыв через 1.5 с:
убрать блоки в радиусе 2, урон 30, если игрок в радиусе;
60 частиц оранжевых и серых, FX.shake(12, 0.4), белая вспышка 0.1 с;
- газ (зеленоватый блок, генерируется с шансом 3% ниже строки 30):
если взрыв задел газ — setTimeout(взрыв в этой клетке, 100);
- лава (ниже строки 150, шанс 4%): оранжевая и пульсирует; войти в неё — урон 30;
- Audio: ленивое создание AudioContext при первом нажатии клавиши;
beep(freq, dur, type) — oscillator + быстрое затухание;
noise(dur) — буфер белого шума с затуханием;
бурение: beep(80, 0.05, 'sawtooth') раз в 0.1 с; подбор: beep(400 + цена, 0.15, 'sine');
взрыв: noise(0.5).
Добавь не больше 80 строк.
</task>
<rules>
- Читай только ARCHITECTURE.md и index.html. Другие файлы не открывай.
- Вноси точечные правки. НЕ переписывай файл целиком.
- Не запускай команды и сервер, не создавай других файлов.
- Без объяснений. В конце одна строка: «Готово: <что сделано>».
</rules>Проверка: включите звук. Найдите зелёный газ (глубже 30 метров), положите рядом динамит (Space) и отойдите — должна пройти цепная реакция взрывов с тряской экрана.
Фаза 6. Финал
Модель: простая. Откройте новый чат.
Следуй ARCHITECTURE.md. Отредактируй index.html.
<task>
Фаза 6:
- на дне блок «Сердце горы» 3×3 в центре: пульсирует золотым, $10000;
когда его добыли — overlay("ТЫ НАШЁЛ СЕРДЦЕ ГОРЫ!", "$ итог, Enter — заново")
и салют: каждые 0.3 с 40 разноцветных частиц в случайной точке экрана;
- клавиша G (для демо): +$5000 и полный бак;
- баланс в CONFIG: топлива хватает примерно на 40 строк вглубь и обратно.
Добавь не больше 40 строк.
</task>
<rules>
- Читай только ARCHITECTURE.md и index.html. Другие файлы не открывай.
- Вноси точечные правки. НЕ переписывай файл целиком.
- Не запускай команды и сервер, не создавай других файлов.
- Без объяснений. В конце одна строка: «Готово: <что сделано>».
</rules>Проверка: нажмите G несколько раз, купите улучшения на поверхности и спуститесь к лаве. Клавиша G — «чит» для проверки, чтобы не копить деньги долго.
Готово
Игра собрана: один файл index.html, ноль зависимостей. Его можно отправить коллеге — откроется в любом браузере.
Что получилось: сильная модель потратила один запрос на архитектуру, а простая модель написала весь код короткими точечными правками. Чем точнее план и чем меньше лишнего мы просим, тем быстрее и надёжнее работает даже простая модель.
Дальше игру можно развивать своими промптами по тому же шаблону: новый чат, «Следуй ARCHITECTURE.md», задача в <task>, те же <rules> и лимит строк. Например, добавить новый тип руды, врагов или таблицу рекордов.
Техники промптинга
Техника | Зачем | Где |
|---|---|---|
Роль и контекст | Модель понимает, кто она и для чего план | Фаза 0 |
Теги | Задача, ограничения и критерий готовности не смешиваются | Все промпты |
Общий контракт в файле ( | Каждая фаза опирается на один и тот же план | Фазы 1–6 |
Лимит объёма («не больше 80 строк») | Модель не добавляет лишнего | Все промпты |
Точечные правки вместо переписывания файла | Не ломается то, что уже работает | Фазы 1b–6 |
Конкретная реализация («один createRadialGradient») | Модель не выбирает сложный способ сама | Фазы 4–5 |
Узкий скоуп («меняй только X») | Изменения не затрагивают другие части | Фазы 2–3 |
Новый чат на каждую фазу | Модель не путается в старом контексте | Все фазы |
Подробнее о том, как писать промпты, — в инструкции «Как написать промпт».
Если что-то пошло не так
Ситуация | Что делать |
|---|---|
Ошибка в консоли браузера (F12 → Console) | В том же чате: «Исправь эту ошибку точечной правкой, больше ничего не меняй: <текст ошибки>» |
Модель переписывает файл целиком | Добавьте первой строкой промпта: «ВАЖНО: только точечные правки» |
Сломалось то, что раньше работало | Верните |
Простая модель не справилась за 2 попытки | Отправьте тот же промпт сильной модели |
Ответ генерируется больше 3 минут | Остановите генерацию (кнопка ■ или Esc), верните |
Игра не реагирует на клавиши | Кликните мышкой по игре. Если не помогло: «храни клавиши по event.code, а не event.key» |
Дата обновления: 16 октября 2026
Не нашли ответ? Гена поищет по всей базе знаний или заведёт обращение на консультанта