Получайте Бонусы за статьи
12 января 2026
Как сделать игру в нейросети: эксперимент
3 2 1 90 19 мин

Как сделать игру в нейросети: эксперимент

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

Содержание

Задача и условия эксперимента

Идея проста: попросить нейросеть сделать игру вроде «Динозаврика» из Google — ту самую, где герой прыгает через кактусы, пока не упрется в препятствие. Минималистично, понятно и идеально для эксперимента: без сложных уровней, но с базовой механикой, которую легко проверить.

Знаменитый «Динозаврик» от Google Chrome

Мы хотим понять, как качество результата зависит от того, как именно общаться с ИИ. Для этого используем три подхода: сначала дадим примитивный промпт («Сделай игру»), потом уточним задачу и структуру, а в финале попробуем поработать с нейросетью как с полноценным напарником по коду. Инструмент — ChatGPT 5. Оценивать будем по трем критериям: работает ли игра, понятен ли код и получается ли в это играть.

Примитивный промпт: «Сделай игру»

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

«Сделай игру типа „Динозаврика“ Google Chrome. Используй для реализации связку HTML+JS».

Промпт и код в GPT

ChatGPT 5 выдал аккуратную страничку: HTML-разметка есть, стиль приятный, canvas, счетчик, кнопка перезапуска, модель игрока описана, даже пары вспомогательных переменных (скорость, гравитация, таймер спавна, частицы) присутствуют. Но при внимательном разборе становится ясно: это не «игра», а каркас с подозрительно пустыми ходами. Ниже — подробный анализ того, что конкретно не так и почему получился такой результат.

Готовая игра в GPT

Главные недостатки и почему они критичны

  • Логика не доведена до конца. Самая заметная проблема — отсутствуют ключевые части: генерация препятствий, движение «карты» (смещение объектов по X), полноценный игровой цикл и корректное обновление счета. В итоге на странице — статичная сцена: динозаврик подпрыгивает, но «мир» не реагирует и не разворачивается в игру.
  • Фрагментарность: вызовы без определения. В коде есть вызов loop (), но в поставленном фрагменте тела игрового цикла нет — это объясняет, почему ничего не двигается. Такое «пропущенное» место характерно для сгенерированного кода: ИИ знает, что нужен цикл, но путается в переменных.
  • Все в одном файле — плохая масштабируемость. HTML, CSS и JS смешаны в одном документе. Для небольшого прототипа это терпимо, но при отладке и развитии игры это усложняет навигацию: нет модульности, нет разделения логики, сложнее тестировать и повторно использовать части кода.
  • Проблемы со значением счета (NaN). Видимый эффект — NaN в счете — указывает на то, что где-то производится арифметика с undefined или null (например, добавление deltaTime, которого нет) либо присвоение строкового значения. ИИ сгенерировал элемент счета, но не сделал корректную инициализацию и стабильное обновление числовой переменной.
  • Отсутствие масштабирования под устройства. Canvas задан фиксированными width/height — это делает игру неудобной на экранах с другим соотношением сторон. Управление через касание упомянуто в тексте, но на деле реализации touch-обработчиков в фрагменте нет.

Стартовый экран тоже кривоват

Почему нейросеть дала такой результат

  • Модель «знает» стандартные паттерны игры: canvas, игровой цикл, сущности. Поэтому она сгенерировала «скелет» — набор ожидаемых блоков.
  • Но модель не выполняет код и не отлаживает его. Она не видит NaN на экране и не пробегает тест-кейсы, поэтому оставляет дырки в логике.
  • Автогенерация склонна к шаблонам: многие мелкие детали (корректная инициализация, edge-case поведение, порядок отрисовки) легко упускаются.

То есть на первый взгляд все выглядело обнадеживающе: ИИ выдал аккуратный код с разметкой, игровым окном, героем и даже счетчиком очков. При запуске на экране действительно появлялся динозаврик, реагирующий на нажатие клавиши «Вверх» — он подпрыгивал, как положено. На этом, правда, «игровая магия» заканчивалась. Карта не двигалась, препятствия не генерировались, а счетчик показывал NaN. Получилась скорее заготовка, чем игра: интерфейс есть, логика отсутствует.

Часть кода игры

Мини-вывод: без подробного ТЗ нейросеть делает лишь каркас. Код выглядит живым, но за ним нет поведения. ИИ словно «знает», как должна выглядеть игра, но не понимает, что она должна работать.

Структурированный промпт: «Сделай игру на JS с уровнями и механикой»

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

«Сделай игру типа „Динозаврика“ Google Chrome. Используй HTML+JS. Чтобы динозаврик двигался, за движение начислялись очки, появлялись препятствия, при столкновении игра завершалась, а рекорд сохранялся в памяти».

Более продуманный промпт для GPT 5

На этот раз ChatGPT 5 выдал куда более собранный проект: полноценная страница, стили, рабочий canvas, движущийся персонаж, система счета, генерация препятствий, экран «Игра окончена» и даже кнопка «Играть снова». В целом код выглядит как настоящая мини-игра, и при запуске действительно создается ощущение, что все работает с первого раза. Но если присмотреться, то видно, что механики функционируют не идеально — временами препятствия появляются слишком часто, из-за чего их невозможно перепрыгнуть, а скорость игры и набор очков зависят от производительности устройства.

Сама игра

Главные недостатки и почему они критичны

  • Случайный спавн препятствий. Нейросеть выбрала простое условие if (Math.random () < 0.02) — и проверяет его каждый кадр. Из-за этого на быстрых компьютерах препятствия сыплются слишком часто, а на медленных — наоборот, почти не появляются. Баланс игры становится полностью случайным.
  • Очки зависят от fps. Счетчик увеличивается на единицу за кадр, поэтому на устройствах с 144 Гц очки растут почти в три раза быстрее, чем на 60 Гц. Для реальной игры это критичная ошибка.
  • Жесткие константы. Высоты, позиции и размеры заданы вручную (dino.y = 200, y = 240 — height). Это делает игру негибкой — стоит поменять размер окна, и все «поедет».
  • Непроходимые препятствия. Иногда ИИ создает слишком высокие или слишком близкие объекты — даже идеальный прыжок не спасает. Механика превращается в лотерею.
  • Физика завязана на кадровую частоту. Гравитация и прыжок фиксированы, без учета времени. Из-за этого на одних устройствах динозаврик взлетает слишком высоко, на других — еле подпрыгивает.
  • Мелкие UX-проблемы. Пробел не блокирует скролл страницы, на мобильных игра ведет себя нестабильно, canvas не адаптируется под экран. Все это легко исправить, но изначально все эти особенности сильно мешают комфорту.

А еще на некоторых экранах строки текста наезжают друг на друга

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

Мини-вывод: с четким ТЗ нейросеть делает уже не пустой шаблон, а настоящий прототип — рабочий, визуально приятный и даже играбельный. Но без ручной доводки он быстро ломается: где-то препятствия слишком плотные, где-то счет убегает вперед. То есть ИИ научился создавать основу, но по-прежнему не способен на баланс и надежность — ту часть, которую в играх называют «геймдизайном».

Профессиональный диалог: работа «в паре»

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

Подробный промпт с техническими деталями

Результат впечатляет объемом и структурой: ChatGPT 5 выдал готовый проект, разделенный на файлы:

  • index.html — страница и подключение модулей;
  • css/styles.css — стили с медиазапросами и вендорными префиксами;
  • js/utils.js — вспомогательные функции и константы, без жестких значений;
  • js/storage.js — работа с localStorage для рекордов;
  • js/game.js — игровой цикл, генерация препятствий, расчет очков с учетом fps.

Пояснения от ChatGPT к проекту

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

Динозаврик завис в воздухе

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

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

Любое препятствие = автоматический конец игры

В итоге этот прототип получился хуже второго, несмотря на модульность и аккуратное распределение кода. Тем не менее он показывает потенциал: структура проекта, использование Config, отдельные модули для генерации препятствий и работы с DOM — все это можно использовать как основу для рабочей игры. Довести проект до минимально играбельного состояния удалось, но «косяки» GPT иногда нужно править вручную.

Спустя несколько итераций правок получился рабочий прототип

Главный вывод: довести такой прототип до играбельного состояния реально только при условии, что оператор знает JavaScript хотя бы на базовом уровне. Нужно понимать, как устроена физика игрока, как правильно рассчитываются координаты и коллизии. А еще нужно уметь указывать GPT на конкретные ошибки или править код самостоятельно. Без этого нейросеть, даже при детальном промпте, выдает лишь объемный, но нерабочий каркас.

Поиграть

Общее резюме

В ходе эксперимента стало ясно: результаты сильно зависят от того, насколько подробно сформулирован промпт и есть ли опыт у оператора.

  • Первый вариант — примитивный промпт «Сделай игру» — показал, что нейросеть умеет создавать каркас: есть canvas, герой, базовые переменные, счетчик и кнопка перезапуска. Но по сути это не игра: персонаж подпрыгивает, но мир не движется, препятствия не появляются, счет показывает NaN. Минимальная визуальная структура есть, но играбельности нет.
  • Второй вариант — более подробный и структурированный промпт — уже дал рабочий прототип: динозаврик прыгает, препятствия движутся, очки начисляются по дистанции, есть рекорды. Но даже здесь механики требуют доработки: генерация препятствий не всегда корректна, расчеты коллизий и скорости недостаточно стабильны, код все еще работает «с особенностями» на разных устройствах. Играть можно, но «идеальной» игры нет.
  • Третий вариант — профессиональный промпт с модульной архитектурой, адаптивными стилями и разделением кода — показал, что нейросеть способна создавать грамотную структуру проекта. Однако по играбельности прототип оказался даже хуже второго: персонаж иногда «плавает», препятствия некорректно генерируются, коллизии неправильно учитываются. Зато архитектура продуманнее, и при знании базового JS ее реально доработать.

Вывод: пока нейросети не могут создавать полностью играбельные мини-игры без участия человека. Они отлично подходят для обучения, генерации каркасов и рутинных задач, но контролировать процесс должен разработчик с хотя бы базовыми знаниями JavaScript, HTML и CSS. Только так можно получить рабочий и стабильный результат. Нейросеть в таком сценарии превращается в полезный инструмент, а не в самостоятельного создателя игры.

Понравилась статья?

Комментарии

Авторизуйтесь, чтобы иметь возможность писать комментарии:

Похожие статьи

Спасибо, что вам есть что сказать

Попробуйте расширить свою мысль и написать статью — и получите за это Бонусы.

Написать статью Подробнее