Перейти к содержимому

Собираем играбельную игру с ИИ-агентом за час: one-shot кейсы

5 августа 2026 года Simon Willison — автор инструмента Datasette и, по собственному признанию, заядлый вайбкодер — запустил эксперимент: отправил в Claude Fable 5 внутри Claude Code для браузера два скриншота четырёхлетней давности и короткую спецификацию, после чего не вмешивался. За одну сессию в ветке GitHub оказалась играбельная 3D-игра про енотов-грабителей: 7 коммитов, процедурный джазовый саундтрек, сгенерированные текстуры, управление с тач-джойстиком. Два дня спустя он скормил тот же самый промпт Codex Desktop на GPT-5.6 Sol Ultra — и получил игру заметно лучше, за 52 минуты и $23,28 по API-ценам. Разбираем оба кейса по шагам: что было в промпте, как агент тестировал сам себя, какие баги ловил и какие пропустил, и что из этого переносится на обычную разработку.

Как собрать игру одним промптом: спецификация → агент → артефакт

Суть one-shot подхода: вы не пишете код, а один раз описываете желаемый результат и правила работы, дальше агент сам читает репозиторий, пишет код, генерирует картинки, запускает тесты и коммитит. Уиллсон назвал это «one-shotting» — игра получается из одного захода, без итераций с человеком.

Спецификация для Fable 5 уместилась в один абзац (перевод — наш):

Собери эту 3D-игру для браузера. Этот репозиторий настроен на раздачу статики, так что сделай index.html, который подтягивает всё остальное. Убедись, что игра mobile-friendly (touch-управление, хорошо работает на маленьких экранах). У тебя есть OpenAI API-ключ и доступ к их моделям генерации изображений — используй их для текстур своих 3D-моделей. Доки здесь: […] — используй gpt-image-2. Работай самостоятельно — не задавай мне вопросов по дизайну. Сделай игру весёлой, немного неожиданной, в духе ограбления енотов, и чтобы она радовала глаз. Коммить и пушить как можно чаще, чтобы я мог смотреть прогресс — начни с index.html с титульным экраном, дальше развивай. По ходу работы дописывай в notes.md всё, что меняешь, и включай это в каждый коммит. (полный промпт в блоге)

Схематично весь конвейер выглядит так:

Схема one-shot пайплайна: спецификация → агент → ветка GitHub → GitHub Pages → играбельная игра
One-shot пайплайн из обоих кейсов: один промпт-спецификация, агент сам пишет код и текстуры, гоняет Playwright и коммитит, превью подтягивается на GitHub Pages за ~30 секунд.

В промпте четыре слоя, и они же — рецепт для любой агентской задачи:

  • Контекст задачи: «3D-игра в браузере, статический репозиторий, index.html, мобильные экраны».
  • Доступные инструменты: агенту явно сказали, что есть OpenAI API для генерации текстур. Fable оказался хорош в составлении промптов для генераторов картинок — Уиллсон называет это способом закрывать пробелы в возможностях агента.
  • Правила поведения: «работай самостоятельно, не задавай вопросов», «коммить и пушить как можно чаще», «веди notes.md».
  • Критерий качества: «весёлая, немного неожиданная, в духе ограбления, радует глаз». Никаких решений по технологиям — Уиллсон намеренно ничего не выбирал: агент сам остановился на Three.js, как и в прошлых экспериментах.

Дальше всё делал агент. Единственная ручная настройка — трюк с предпросмотром: Claude Code для браузера работает в ветке репозитория, и увидеть результат до конца сессии сложно. Уиллсон включил для репозитория GitHub Pages («Deploy from a branch») и через ~30 секунд после каждого пуша свежий билд появлялся по адресу yourname.github.io/repo. Весь проект он вёл с телефона, промпт набрал в заметках.

Кейс 1: Raccoon Heist на Claude Fable 5 — впечатляюще, но скучно

Отправной точкой стал твит от 5 августа 2022 года: тогда GPT-3 дописал описание игры «Raccoon Heist» по началу «Write a detailed product description of a computer game where a team of raccoons go on heists», а DALL-E нарисовал концепт-арт. В четвёртую годовщину Уиллсон отдал оба скриншота Fable 5 с инструкцией построить игру по ним.

Твит Simon Willison от 2022 года: описание игры от GPT-3 и концепт-арт от DALL-E
Отправная точка эксперимента: описание игры, дописанное GPT-3, и картинка от DALL-E в твите от 5 августа 2022 года. Источник: simonwillison.net.

Агент пошёл своим путём: завендорил Three.js (без CDN), написал собственный скрипт gen_textures.py, сгенерировал текстуры через gpt-image-2 и проверил их глазами, собрал первый билд и устроил «дымовой тест» в предустановленном Chromium через Playwright — то есть делал скриншоты своей работы и сам их разглядывал, на десктопной и мобильной ширине. Так он поймал первый баг: на мобильной ширине енот был невидим. Починил и закоммитил:

«Енот, укрытие в мусорном баке и оба енота из команды теперь отлично видны на мобильных. Коммичу этот критичный фикс». (лог сессии)

Титульный экран агент сгенерировал отдельным скриптом gen_title.py с промптом для gpt-image-2 — «no text, no words, no logos», чтобы не получить логотип вместо арта:

Титульная арт-иллюстрация Raccoon Heist, сгенерированная агентом через gpt-image-2
Ключевой арт титульного экрана: агент сам составил промпт для gpt-image-2 и получил «полигонального енота с золотой монетой у опрокинутого бака». Источник: simonwillison.net.

Дальше агент добавлял механики сам. Самая интересная — сторожевой пёс с третьей ночи: он ловит запах в радиусе 12 юнитов, линия видимости ему не важна, а сдаётся, если игрок оторвался на 17 юнитов. Уиллсон приводит запись из notes.md как пример того, как агент описывает собственную работу:

«Новая эскалация: с третьей ночи во дворах появляется патрульный пёс — низкополигональный коричневый пёс с шипастым красным ошейником и виляющим хвостом. Бродит между случайными точками, а в пределах 12 юнитов ловит ваш запах и идёт по следу (линия видимости не важна — всё на носу, над головой — 👃 и лай). Сдаётся, если вы открываете разрыв в 17 юнитов». (notes.md)

Игровой скриншот Raccoon Heist: ночь 3, енот пересекается со сторожевой собакой, экран покраснел
Реальный геймплей: ночь 3, надпись «Busted! The Guard shooed you off!» и красная тонировка экрана. Источник: simonwillison.net.

Итог первого кейса — семь коммитов в ветке claude/3d-raccoon-heist-game-50n293, все «проверены автоматическими Playwright-прохождениями на десктопе, вертикальном и горизонтальном телефоне», как отчитался сам агент. Игра: маскированный енот вылезает из мусорного бака, собирает монеты, самоцветы, пончики и рыбу (они складываются на спине и замедляют), уносит добычу в бак до рассвета. С каждой ночью растёт цель и сложность: первый охранник с фонарём, два охранника, потом пёс. Полицейская машина шарит фарами, соседи выглядывают из окон, чайка пикирует на неубранную добычу, пицца даёт шестисекундный спринт, редкий золотой телевизор стоит 120 очков. Звания: TRASH PANDA → CAT BURGLAR → MASTER OF DISGUISE. Весь звук — процедурный WebAudio: «тихий джаз шагов на контрабасе плюс все эффекты, ноль аудиофайлов».

Самотестирование поймало два настоящих бага: канвас рендерился в двойном размере на реальном телефоне (назначение cssText затирало инлайн-размеры Three.js, а десктопные тесты с DPR-1 это маскировали) и экран победы глотал тапы по кнопке «следующая ночь» (блок звёздного рейтинга унаследовал полноэкранный CSS титульника). Оба исправлены с регрессионными тестами.

Сам Уиллсон итог оценил честно:

«Это впечатляющая отправная точка, но не хорошая игра». (перевод цитаты)

Кейс 2: Moonlight & Mayhem от Codex — тот же промпт, 52 минуты, $23,28

7 августа Уиллсон отдал тот же промпт Codex Desktop на GPT-5.6 Sol Ultra — в режиме, где модель активно использует субагентов. Разница вышла показательной: Fable построил игру про одного енота во дворе, а Sol прочитал фразу «you and your team of thieving raccoons» из исходного описания GPT-3 буквально и сделал командную механику.

Версия Fable была про одного енота, бегающего по заднему двору за монетами и рыбой. GPT-5.6 Sol помещает вас в музей, где вы спасаете двух енотов из вашей команды, чтобы затем встать друг другу на плечи и выбить золотую сардину из витрины. Гораздо более «ограбительская»! (Moonlight & Mayhem)

В Moonlight & Mayhem вы пробираетесь по ночному музею, находите напарников Пикл и Дот, собираете восемь «блестяшек», строите шатающуюся енотскую лестницу и удираете в мусорный бак. Охранник с индикатором подозрения, камеры, мусорные баки как укрытия, рывок и «лапа» — вплоть до звания «CLEAN(ISH) GETAWAY». Стоило это 52 минуты работы агента. Оценка AgentsView для сессии по полным API-ценам (Уиллсон работал по ежемесячной подписке Codex, так что для него вышло дешевле):

Оценка стоимости сессии Codex от AgentsView: $23,28, 700,7K входных и 32,5M кэшированных токенов, 148K выходных
AgentsView: $23,28 за сессию по полным API-ценам. Входные токены 700,7K плюс 32,5M кэшированных, выходные — 148K. Источник: simonwillison.net.

Единственный заметный дефект версии из one-shot промпта — баг с «глазными шарами»:

Скриншот бага Moonlight & Mayhem: над енотом висит огромная чёрная сфера-глаз
One-shot версия: у каждого енота глаз раздулся в гигантскую сферу с зрачком над головой. Codex не заметил баг, хотя смотрел скриншоты по ходу работы. Источник: simonwillison.net.

Показательно, что агент не заметил этого сам: он же просматривал скриншоты на каждом этапе. Починка заняла два промпта — буквально диалог с кодом:

Почему у енотов огромные чёрные сферы?
Исправь

Фикс лёг одним коммитом. В репозитории Codex оставил полный транскрипт сессии transcript.md — Уиллсон отдельно отмечает, что хотел бы такого же «копировать как Markdown» в Claude Code.

Сравнение двух кейсов

Параметр Raccoon Heist (Claude Fable 5) Moonlight & Mayhem (Codex + GPT-5.6 Sol Ultra)
Дата 5 августа 2026 7 августа 2026
Интерфейс Claude Code для браузера, с телефона Codex Desktop
Время за сессию (точное время не указано) 52 минуты
Коммиты 7 транскрипт сессии в репозитории
Стоимость в рамках подписки Claude $23,28 по API-ценам (оценка AgentsView)
Промпт один, тот же текст тот же текст
Геймплей один енот во дворе музей, команда из трёх енотов
Самотестирование Playwright-скриншоты, поймал 2 бага скриншоты, баг с глазами пропустил
Вердикт автора «впечатляющая отправная точка» «гораздо более ограбительская»

Чему это учит для обычной разработки

Игры тут не главное — это полигон. Четыре вещи из обоих кейсов переносятся на обычную разработку напрямую.

1. Агент сам себя тестирует — и это работает. Fable гонял Playwright-прохождения на трёх вьюпортах и поймал два реальных бага (двойной размер канваса на телефоне, мёртвая кнопка на экране победы). Цикл «написал → запустил → посмотрел скриншот → исправил» — это и есть агентный кодинг в действии: не генерация кода, а генерация кода плюс проверка результата. Подробнее про сам цикл — в статье «Что такое агентный кодинг».

2. Скриншот-обратная связь ловит то, что не ловит компилятор. Баг с невидимым на мобильных енотом — классика: на десктопе всё ок, на телефоне пусто. Агент увидел это на собственном скриншоте. Если ваша задача — интерфейс, заложите в промпт «проверяй результат скриншотами на мобильной и десктопной ширине», это дешевле любого ручного QA.

3. Даже с самопроверкой нужен человек. Баг с глазными шарами Codex не заметил, хотя смотрел скриншоты. Модель не знает, как выглядит «нормальный» енот в её собственном рендере. Через 30 секунд после финального промпта вы получаете игру, а через два коротких уточняющих промпта — исправленную. «Почему у енотов огромные чёрные сферы?» — это дебаг-режим агента, и он стоит копейки.

4. Промпт — это не только «что сделать», но и «как работать». Строки про «коммить как можно чаще» и «веди notes.md» превратили сессию в понятный процесс: превью обновляется каждые 30 секунд, а журнал notes.md позволяет разобраться, что агент делал. Просить агента вести журнал изменений — дешёвый способ сохранить контроль над задачей, которую делает машина. Практика из кейса «агентство собрало сайт с Claude Code» того же автора показывает то же самое: процесс и журналы важнее отдельных генераций — см. кейс «сайт на Claude Code».

Ограничения: игры простые и «одноразовые»

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

«Я вайбкодил уже немало игр. Все они были глубоко разочаровывающими с точки зрения геймплея — оказывается, придумывать весёлые игры остаётся сугубо человеческим умением, требующим заметно больше навыка и опыта, чем есть и у Клода, и у меня». (Simon Willison)

Отсюда ограничения, которые стоит держать в голове:

  • Игры получаются «одноразовыми». Raccoon Heist «очень, очень легко пройти», после сбора всех предметов в течение ночи делать нечего. Годен как прототип и демо-стенд, не годен как продукт.
  • Геймдизайн — пока не агентская задача. Механика, интерес, баланс — всё это требует человека. Агент добавляет охранников и собак, но не может понять, что игре скучно.
  • Стоимость «бесплатной» генерации. С подпиской сессия обходится в рамках ежемесячного тарифа, но по API-ценам та же работа — $23,28 за одну 52-минутную сессию. Для прототипа нормально, для производственного цикла — считайте сами.
  • Доверие к самопроверке агента ограничено. Codex смотрел скриншоты и не увидел гигантские глаза. Автоматические тесты ловят регрессии, но «выглядит ли это правильно» — по-прежнему вопрос к человеку.

Уиллсон сам резюмирует ценность таких проектов:

«Всячески рекомендую возиться с игровыми проектами как способом изучения возможностей агентов. Это весёлый, низкорисковый способ пробовать новое». (там же)

Российские реалии: Claude Fable 5 и Codex из РФ

Оба инструмента из кейсов — зарубежные сервисы с региональными ограничениями, и из России они работают не «из коробки».

Claude Fable 5 (Claude Code). Россия не входит в список поддерживаемых стран Anthropic — ни для API, ни для claude.ai; прямой доступ с российского IP заблокирован, для входа нужен VPN и номер телефона поддерживаемой страны (российские номера не принимаются). Российские карты Visa/Mastercard для оплаты подписки не работают — реальные пути это UnionPay, криптовалюта через посредников или юрлицо в поддерживаемой стране. Собрали все способы и типичные грабли в статье «Как установить Claude Code». Русскоязычного опыта именно «агент собрал игру» на момент публикации не нашлось — тема в рунете пока не освещена, но практические статьи по Claude Code из РФ единичны и в целом есть (пример с Хабра).

Codex (OpenAI). OpenAI ограничила доступ с российских IP ещё в декабре 2022 года («ChatGPT: как пользоваться нейросетью в России») — для входа в Codex нужен VPN со «чистым» иностранным IP. Бесплатный план не требует карты и хватит на десятки небольших задач в неделю. Платные подписки российскими картами не оплатить: рабочие варианты — зарубежная виртуальная карта, карты банков Казахстана/Грузии/Армении или посредники, причём OpenAI отклоняет карты и может блокировать аккаунты при входе с российских IP (личный опыт с суммами). Есть и обходной путь — подключить Codex CLI к российским провайдерам вместо OpenAI (разбор на Хабре). Пошаговую установку и настройку Codex CLI разобрали в статье «Как установить Codex CLI».

Если коротко: повторить оба кейса из РФ можно, но вход и оплата — через VPN и зарубежную карту или посредника. Выбор агента и подписки под бюджет — в сравнении «Лучший ИИ-агент для кодинга в 2026».

Вывод

One-shot кейсы Уиллсона показывают не магию, а границу: из одного продуманного промпта агент сам собирает играбельную игру — код, текстуры, звук, тесты и коммиты. На этом пути агент уже полезен: он умеет гонять Playwright, смотреть свои скриншоты, чинить найденное и вести журнал. Всё, что касается «а будет ли это интересно» — пока за человеком: обе игры Уиллсон называет посредственными. Для практики агентского кодинга это идеальный полигон: дёшево, весело, наглядно, и ошибки не стоят денег. А рецепт — один конкретный промпт вместо команды — переносится с игр на любую задачу, где результат можно увидеть и потрогать.

Дальше по теме: что такое агентный кодинг, кейс: сайт на Claude Code, как установить Claude Code, как установить Codex CLI, лучший ИИ-агент для кодинга в 2026.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка / 5. Количество оценок:

Оценок пока нет. Поставьте оценку первым.

Добавить комментарий

Adblock
detector