Приложение Т—Ж
В нем читать удобнее
Может ли​ GPT-⁠5​ создавать приложе­ния за один запрос? Я проверил
Нейросети
18K
Сгенерированное изображение — Таня Бронникова / Midjourney

Может ли​ GPT-⁠5​ создавать приложе­ния за один запрос? Я проверил

Попробовал сделать браузерную стрелялку в духе Hotline Miami, но с эстетикой российских 90-х
29
Аватар автора

Алексей Захаров

разработчик

Страница автора

По словам разработчиков, нейросеть может собрать приложение по одному промпту — сразу с дизайном и рабочим кодом. Я решил проверить это и попросил ее сделать игру в стиле Hotline Miami, но перенесенную в российские 90-е.

Расскажу, что из этого вышло.

УЧЕБНИК Т—Ж
Как нейросети могут изменить жизнь

От рецепта ужина до изучения языков — собрали десятки рабочих и бытовых сценариев в бесплатном курсе

Баннер

Хватит ли одного промпта, чтобы собрать приложение

Это был один из главных акцентов презентации GPT-5. Разработчики показали, что нейросеть по одному запросу может собрать рабочий прототип разнообразных приложений и игр. В качестве примеров они сделали игру с прыгающим мячиком, простой графический редактор, тренажер для скорости печати.

В соцсетях особенно завирусился пример с аналогом Duolingo для изучения французского языка, который открывался прямо в браузере.

Отрывок из презентации OpenAI, в котором разработчик создает по одному промпту прототип аналога Duolingo для изучения французского

Такой результат стал возможен за счет того, что модель умеет:

  • Выполнять многоступенчатые задачи. Нейросеть совершает несколько действий подряд. Например, можно попросить сделать для калькулятор расходов: сначала дизайн сайта, потом форму для ввода, функцию сохранения данных в файл и возможность экспорта в Excel. Раньше модель могла потеряться или сделать только половину, а GPT-5 должна довести задачу до конца.
  • Использовать внешние инструменты. Нейросеть умеет подключать то, что сама по себе не умеет делать. Например, обращаться к базам данных, использовать калькуляторы, запускать код.
  • Чувствовать стилистику. ИИ не только выдаст рабочий сайт, но и подберет оформление, аккуратные отступы, удобное расположение элементов, чтобы все выглядело красиво и уместно.

После этого в сообществе вайбкодеров  появилось множество экспериментов с генерациями по одному промпту. Пользователи просили GPT-5 собрать веб-сайт, игру или даже клон «Твиттера». Часто модель справлялась уже с первого раза либо с минимальной доработкой.

Пользователь YouTube пытается создать приложение по одному промпту

Может ли ChatGPT сделать игру по одному запросу

Чтобы проверить идею, я использовал ChatGPT с платной подпиской за 20 $⁣ (1 605 ₽)  и работал в режиме «Холст». Он позволяет запускать код прямо в интерфейсе чат-бота. Справа остается чат с нейросетью, а слева — рабочее поле для кода. Чтобы открыть режим, нужно выбрать «Холст» в настройках под полем для ввода запроса.

ChatGPT умеет генерировать код целиком только в одном файле. Таким же способом действовали и разработчики из OpenAI, когда показывали свои примеры. Я тоже попросил модель создать такое приложение, надеясь, что получится сгенерировать его по одному промпту.

За основу я взял игру Hotline Miami — атмосферный и кровавый шутер с видом сверху. Воссоздавать всю механику целиком я не собирался, это слишком трудоемко. Поэтому я сосредоточился на ключевых элементах: вид сверху, несколько уровней, на каждом — своя миссия. Чтобы проверить, насколько хорошо GPT-5 справится с сюжетом и антуражем, я предложил перенести действие в Россию 90-х.

Обычному разработчику на такой объем работы потребовалось бы несколько часов, а то и целый день — в зависимости от опыта и заготовок. Нейросеть же размышляла всего 34 секунды, после чего около семи минут писала код. В результате получилось чуть больше 600 строк на JavaScript.

Результат после первого промпта. Я нажал кнопку «Запустить код» в интерфейсе — и игра сразу заработала. Красивой ее назвать сложно. Графика бедная, анимации почти нет. Нейросеть нарисовала серый асфальт с разметкой, персонажа одела в красный спортивный костюм. Первый уровень, как я и просил, оказался на парковке. На ней стояли странные серые квадраты — вероятно, грузовики.

Так выглядел мой прототип внутри интерфейса ChatGPT
Так выглядел мой прототип внутри интерфейса ChatGPT

Управление реализовано с клавиатуры, прицеливание — мышкой. В целом механика игры оказалась такой, как я и задумывал. Враги реагировали на появление персонажа у границы экрана. Нейросеть бонусом добавила нескольких видов оружия, хотя я об этом не просил.

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

Тут я выяснил, что коллизии тоже не работают. Препятствия не блокируют движение, урон по врагам не проходит. Это еще один критичный баг. Кроме того, модель промахнулась с видом сверху: персонажи отрисованы в боковой проекции, а не как в оригинальной Hotline Miami. В итоге с одного промпта рабочего прототипа не получилось: базовая механика не работает.

Персонажи ходят сквозь стены
Персонажи ходят сквозь стены

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

В итоге нейросеть просто вывела мой запрос, а старый код удалила из «Холста». Я расстроился: начало было многообещающим. Попробовал уговорить нейросеть все-таки вернуть код и исправить баги, но поначалу мои запросы заканчивались ошибками.

Нейросеть стерла весь код
Нейросеть стерла весь код
ChatGPT предлагает исправить код, но почему-то не может
ChatGPT предлагает исправить код, но почему-то не может

В итоге мне удалось уговорить нейросеть исправить баги, но она отказывалась запускать код внутри интерфейса. Пришлось делать это вручную — открыть его в браузере.

Рабочим прототип назвать все равно сложно. На этот раз сломалась ходьба. Персонаж просто не двигался. Из-за этого проверить урон по врагам не вышло. Одну ошибку ChatGPT все-таки исправила — у удара появилась анимация. Но только на первый раз.

Теперь персонаж не ходит
Теперь персонаж не ходит

Что в итоге. Я попробовал получить рабочее приложение по одному промпту, но результат оказался далеким от ожидаемого. Баги, сломанное управление, бедная графика. Исправления тоже не помогли.

Каждый фикс занимал по несколько минут ожидания, и довольно быстро стало понятно, что такой способ не работает. Я предположил, что проблема именно в интерфейсе на сайте ChatGPT, и решил попробовать другой подход.

Может ли ChatGPT сделать игру по одному запросу в Cursor

Я предположил, что лучшего результата можно добиться в Cursor. Это программа для работы с кодом, которая выглядит как обычный редактор, но в нее встроены ИИ-⁠помощники, в том числе GPT-5. В отличие от веб-⁠интерфейса ChatGPT, там можно разбивать проект на несколько файлов, а генерация занимает куда меньше времени.

Вообще, работать с кодом в одном файле тяжело. Сложно ориентироваться в большом полотне текста без структуры. В нормальной работе код приложения разбивается на модули, каждый из которых отвечает за определенную задачу. Например, один файл отвечает за карту, другой — за персонажей, третий — за управление. Так проще находить ошибки, исправлять баги или добавлять функции.

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

Результат после первого промпта. Игра сгенерировалась очень быстро: на первый черновик кода ушло около семи минут.

Нейросеть создала десять файлов — это полноценная структура проекта с классами и папками. Там есть отдельные файлы для персонажей и врагов, уровней, физики, управления, подсказок на экране и собственных спрайтов. Некоторые заготовки вроде набора SVG-графики в итоге так и не пригодились.

Код для проекта написан в разных файлах
Код для проекта написан в разных файлах

Исправление багов. При первом запуске экран оказался полностью черным: стены и фон сливались в один цвет и было непонятно, где можно пройти, а где нет. Я поправил это одним промптом.

После этого игра встретила начальным экраном с легендой о том, за кого мы играем, — мелком дилере на подхвате. Интересно, в запросе этого не было. Также сразу заметно, что визуальный стиль получился куда лучше, чем в интерфейсе ChatGPT. Графика все еще очень простая, но хотя бы цвета подобраны со вкусом, а грузовики на первом уровне похожи на самих себя.

Замечательная легенда в начале игры
Замечательная легенда в начале игры
Этот текст нейросеть придумала сама
Этот текст нейросеть придумала сама

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

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

На исправление основных багов ушло около пяти минут. Для сравнения — в ChatGPT каждая правка занимала столько же времени.

Области видимости у врагов, которые смотрят сквозь стены
Области видимости у врагов, которые смотрят сквозь стены

При этом проблемы с видом сверху так и не получилось решить. Нейросеть упорно не хотела его генерировать. Я формулировал запросы максимально прямо: «Давай сделаем вид строго сверху. Сейчас все нарисованы в боковой проекции, а нам нужен именно сверху: голова, плечи, ноги только при ходьбе».

Но персонажи только становились шире, а не меняли ракурс.

Не получается добиться вида сверху
Не получается добиться вида сверху

Что в итоге. В Cursor получилось сделать игру, которую можно пройти от начала до конца и не столкнуться с критическими багами.

Персонаж бегает и стреляет, враги адекватно реагируют и отбиваются, коллизии есть, дизайн уровней — тоже. Это можно назвать полноценным прототипом.

Полное прохождение игры

Общие наблюдения после разработки в ChatGPT и Cursor

Вайбкодить в интерфейсе ChatGPT мне не понравилось — и вот почему.

Не удалось собрать полностью рабочий прототип. Большинство требований модель реализовала, но багов оказалось слишком много. Два из них — критические. После генерации по одному промпту игра не заработала.

🐞 Баги возникли сразу, а исправлять их нейросеть почти не умеет. Приходится ждать по несколько минут и снова пытаться придумать, как решить ошибки. Иногда программа не запускается вовсе, и тогда остается только генерировать все заново.

⚠️ Код получился в виде одностраничного приложения без четкой архитектуры. Не было классов, которые позволили бы разделить проект на модули, все держалось на глобальных переменных. Такая схема подходит только для маленьких проектов, но делает развитие и поддержку игры крайне сложными.

Тем не менее GPT-5 вполне подходит для быстрого чернового прототипа прямо в чате, даже если нет опыта программирования. Это уже немало. Модель учитывает требования к дизайну, механике и отдельным деталям, а по сравнению с предыдущими версиями есть значительный прогресс.

Cursor с GPT-5 куда эффективнее, чем сайт ChatGPT.

Удалось собрать прототип игры. После нескольких исправлений приложение заработало. Механики — на месте, а игру можно было пройти целиком. Код аккуратный, хорошо декомпозирован, разбит по каталогам на подсистемы и классы.

📚 GPT-5 все равно ограничена рамками обучения. То есть нейросеть уверенно работает с типовыми задачами. Но как только нужно сделать что-то непривычное или нестандартное, она начинает выдавать странные решения, зацикливаться или вовсе не справляться. Например, GPT-5 так и не смогла корректно сгенерировать спрайты с видом сверху.

🖥️ Cursor снимает проблемы интерфейса ChatGPT. Если пользоваться только ChatGPT, приходится вручную копировать сгенерированный код, тестировать его, возвращать ошибки обратно в модель и снова вставлять результат в проект. При большом объеме кода такой текстовый пинг-понг становится неудобным и практически неконтролируемым.

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

⚒️ Работать с проектом без навыков программирования непросто. Нужно ограничивать контекст конкретными файлами, корректировать стиль кода, следить за версиями библиотек. Кроме того, важно не допускать, чтобы нейросеть испортила проект. Нередко при попытках исправить баги возникают новые или появляются случайные ненужные изменения.

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

Мы рассказываем разные истории о популярной культуре и тех, кто ее создает. Подписывайтесь на наш телеграм: @t_technocult

Алексей ЗахаровА вы пробовали вайбкодить в ChatGPT? Что получалось?
  • Anton ZhitarevЯ искренне не понимаю как люди лезут в области в которых ничего не понимают и пытаются там разобраться без первичного обучения. Если вы ничего не понимаете в программировании , то как вы можете принимать проект, в котором вы не можете разобраться?5
  • Мария СимAnton, поддерживаю абсолютно. Ровно то же самое думаю про доверие любым ответам нейросеток, выросшее чуть ли не до небес (при том, что вероятность галлюцинаций всё ещё имеется). Удивительные люди — многие не умеют гуглить и не шарят в теме, по которой что-то спрашивают у нейронки, зато ответы принимают за истину в последней инстанции. Потрясающая беспечность, имхо. )4
  • BalconAnton, ну во-первых, это весело. Игра. Эксперимент. Каков будет результат? Во-вторых, набив руку, можно понимать, как делать простые приложения, которые пригодятся в работе. Например, я сделал бота для организации рабочего процесса (замеров) чисто вайбкодингом.1
  • BalconМария, мне кажется беспечность это игнорирование новых возможностей и инструментов. Они есть, и уже никуда не уйдут.7
  • Я тебе завидуюДа, пытаюсь наплывами завайбкодить мобильную игру на flutter. До начала использования курсора, пытался делать комбинацией из разных нейросеток, каждая была хороша в чем то одном. Сейчас в основном это cursor + gpt5. Игру я делаю уже месяца 4 суммарно(но растянулось на год уже), при этом программировать я умею и понимаю более или менее в архитектуре. (но игра первая) Вывод такой: Без глубокого погружения в программирование, архитектуру игр/приложений, знаний игровых механик вам будут доступны игры уровня змейка и аналогичных браузерных примитивов. Как только появляется несколько механик и сложная логика нейросеть не может поддерживать проект без стройной архитектуры которы ВЫ САМИ должны придумать и постоянно следить за ней. Ну и еще в моем случае я по полной ощутил боль от испльзования flutter, к сожалению при выборе фреймворка я по неопытности не понимал как важно иметь большое комьюнити и много ПОДДЕРЖИВАЕМЫХ библиотек.4
  • Дмитрий ФроловЯ что-то неправильно понял или вы хотели шутер с видом сверху? Так какой же это прототип? В этом часто и проблема обсуждения Ии - его возможности демострируются на задачах, которых на практике не существует. Если вам дали задачу сделать шутер с видом сверху, а вы сделали сайдскроллер, то в реальной жизни вас просто уволят.2
  • Дмитрий ФроловBalcon, каких инструментов? Нет никаких инструментов. Ии выдает случайный результат в зависимости от фазы луны и положения юпитера. Молоток - это всегда молоток, он гвозди заколачивает. А если сегодня он их заколачивает, завтра гнет, послезавтра вкручивает, а через неделю красит в зеленый, то это не инструмент.2
  • BalconДмитрий, а удочка вам рыбу выдаёт гарантировано и моментально? Ну и у всс , видимо, неверное представление о работе и, самое главное, о результате. Если я получаю на выходе рабочий код, пусть после энного количества правок, но рабочий. Значит, вполне инструмент. Остальное софистика от ретроградов1
  • Anton ZhitarevBalcon, нет вы не поняли. Вы создали приложение, которое не можете поддерживать, потому что не знаете ни синтаксиса операторов ни алгоритмов ни правил. Как туземец с карго культом. Если в автомат закинуть блестяшку то он даст еду. И всё туземец думает что он создал еду.2
  • Mark NeumannAnton, легко. Есть способы. Если есть мозги.0
  • Anton ZhitarevMark, нельзя. Есть тз. И лучше для кого? Для личинки вайбпрограммиста, который гадает на кофейной ии-гуще?2
  • Anton ZhitarevMark, если.1
  • Серёга КутинИгра в один промт - https://kutinpost.github.io/WeAreLinked/0
  • МаксимAnton, ему его не надо поддерживать. Оно работает. Я с помощью гпт быстро написал программу, чтобы в бейджи данные вписать. И почему я не имел на это право?1
  • Anton ZhitarevМаксим, а вас этого права кто-то лишает?1
  • Обычный человекMark, сейчас как придёт модератор2
  • ДмитрийЕсли у вас платная подписка, попробуйте Codex, который встроен в ChatGPT, возможно там с одного промта будет поинтереснее на порядок.0
  • Мария СимBalcon, пссст, товарищ, вы это сейчас промт-инженеру говорите. Я не игнорирую, я использую, причём с учетом всех минусов этих инструментов и всех их возможностей перекосячить вам всю работу одним движением так, что вы и не заметите. ) Упс, вы максимально не по адресу попытались выпендриться. )))0
  • Мария СимMark, товарищ, просто погуглите, почему вероятность галлюцинаций у нейронок всегда и абсолютно неизбежно есть, какие бы прямые руки ни были. Может, хоть поймете, что до этого слепо доверяли рандомайзеру. )))0
  • Мария СимMark, клиент в ресторане заказал вареные овощи, а ему приготовили жареное мясо и убеждают, что так ему лучше. За его же деньги делают не что заказано, а что хотят, ещё и выпендриваются. Замечаете абсурдность ситуации? Нет? Так потому что вы тут в роли убеждающего, который не справляется со своей работой, но почему-то считает себя и свои решения априорно круче, когда его об этом вообще не просят. Не умеете в следование ТЗ — не беритесь: нечего место рабочее занимать да время работодательское отнимать, раз вам за чужой счет не поработать, а поприкалываться и нос позадирать надо. )1
  • BalconМария, я: ни слова о себе. Мария: я промпт-инженер! Также Мария: вы максимально выпендриваетесь))) Щикаарно. Покажете диплом промпт-инженера, кстати?1
  • BalconAnton, как ниже ответили - да, работает и ладно. Однако при этом нет-нет, да вникну в код, пусть поверхностно, но мне станет более понятой та область, которая раньше была но доступна.0
  • Алексей ЗахаровДмитрий, с точки зрения механики прототип ок. Разницы-то нет никакой, она только в спрайтах. Понятно, что это провал с точки зрения дизайна. В миджорни я почему-то тоже не смог с нескольких попыток получить вид сверху, не знаю что у них за прикол такой0
  • Илья ПономаревТак весь функционал Cursor есть в Visual Studio Code, на котором он основан) А если у вас есть студенческий тариф GitHub Pro (бесплатный, если что), то GPT-5 будет вполне себе доступен бесплатно, пускай и с впном0
  • Агафон АгафоновичНесложные коды генерирует вполне нормально.0
Вот что еще мы писали по этой теме
Сообщество