Разработчики игр не нужны

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

С появлением больших языковых моделей, таких как ChatGPT, и инструментов на базе ИИ процесс создания игр стал доступен практически каждому. Для разработки игр достаточно иметь VS Code и установленное расширение Codex. Не требуются навыки ни в программировании, ни в создании графики. В эпоху развития LLM достаточно уметь использовать естественный язык — и смело называть себя промт-инженером.

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

Разберёмся, как шаг за шагом создать собственную игру с помощью ИИ, используя только умение правильно формулировать запросы.

Подготовка

Для начала убедимся, что у нас уже установлен необходимый текстовый процессор (он же редактор, а для кого-то — IDE) и установлено соответствующее расширение.

При желании, можно воспользоваться и десктопной/веб-версией ChatGPT, но Codex больше подходит для нашей задачи.

После выполнения этих действий мы получим доступ к ИИ-агенту прямо из редактора.

Разработчики игр не нужны

Стоит отметить, что ввиду ограничений для полноценного доступа может потребоваться VPN.

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

Первые шаги в роли разработчика игр

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

Вся логика, составляющая нашу игру, будет расположена в файле game.html. Рассматривать его содержимое мы не будем, пусть этим занимается ИИ.

Кроме самой игры, нам необходимо составить текст описывающий правила нашей игры(в моём случае это solo-game-rules.md), а также описать, что мы хотим получить в результате (для себя Я также вынес это в отдельный файл ui.md, но вы можете сразу описывать это в чате ИИ).

Разработчики игр не нужны

Правила игры

Исходно игра "За бортом!" предлагает группе игроков добраться до берега, параллельно строя козни своим внутриигровым врагам, стараясь при этом не отправиться на корм акулам.

В виду того, что первая версия нашей игры будет рассчитана на одного игрока, нам требуется обновить некоторые игровые механики. Чтобы не ломать голову над тем, как подстроить игровой процесс под синглплеер, смело поручаем эту задачу нашему всезнающему ИИ. Возьмём предложенный ИИ вариант и сохраним его в solo-game-rules.md, попутно дополнив или исправив его на свой вкус. В моём случае, было предложено для персонажей не управляемых игроком, перед стартом новой игровой сессии, случайным образом выбирать один из четырёх характеров(Агрессивный, Эгоистичный, Защитник, Хаотичный) и в процессе пользоваться предлагаемыми приоритетами действий:

Агрессивный - Если Враг-персонаж рядом — атакует. - Если Врага нет рядом — атакует самого слабого соседа. - Если атаковать нельзя — гребёт. Эгоистичный - Если есть возможность восстановить здоровье — восстанавливает. - Если есть полезный предмет — использует. - В остальных случаях гребёт. Защитник - Если Друг-персонаж ранен — лечит его (если возможно). - Если Друга атакуют — атакует нападавшего. - Иначе гребёт. Хаотичный Бросьте кубик: - 1–2: атакует случайного соседа; - 3–4: гребёт; - 5–6: восстанавливает здоровье (если есть Аптечка).

Кроме этого, для упрощения и более быстрой реализации мной было решено оставить только наиболее критичные предметы и немного изменить порядок действий для достижения финальной цели:

Предметы: - Весло: в фазу событий, если персонаж с веслом выбрал действие "Гребля", увеличивает количество случайных событий, многоразовое использование. - Аптечка: восстанавливает 1 единицу здоровья персонажу, одноразовое использование. - Вода: позволяет игнорировать события "Жажда", одноразовое использование. - Драгоценности: в финале игры добавляет +5 очков персонажу. События: Случайным образом выбирается событие, которое влияет на всех игроков. Это могут быть: - Жажда: снижает здоровье персонажей на 1 единицу, если у них нет предмета "Вода"; - Находка предметов: между персонажами распределяются случайные предметы; - Приближение к берегу: лодка приближается к берегу на 1 единицу расстояния (может произойти только один раз за всю фазу событий, если хотя бы 1 персонаж использовал действие "Гребля"); - Шторм: отдаляет лодку от берега на 1.

Также несколько изменил исходную игровую механику с грабежом, убрал возможность просить помощь и победы игрок только получает предмет цели:

Если персонажи используют атаку, сравнивается их сила: - при равном значении силы оба персонажа теряют 1 единицу здоровья; - персонаж с меньшей силой теряет 1 единицу здоровья и атакующий получает случайный предмет из его инвентаря; - наличие весла даёт персонажу +1 к силе.

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

Этого достаточно, чтобы ИИ понял какой результат мы будем ожидать увидеть. Конечно что же здесь представлена не полная версия правил. Чтобы не копировать их целиком, Я выложил правила в общий доступ.

Игровой интерфейс

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

Для этого нам необходимо объяснить ИИ (составить промт) с описанием того, каким мы хотим видеть нашу игру. Заполним ранее созданный файл ui.md.Так как мной было выбрано решение в виде браузерной версии, описывать интерфейс буду в соответствующем стиле:

## Игровой интерфейс ### Карточка персонажа: - Имя - Здоровье | Сила - Друг | Враг - Предметы ### Доступные действия: - Грести - Восстановить здоровье(кнопка активна, если у персонажа в инвентаре есть аптечка) ### Положение лодки: - 4 блока, иллюстрирующие текущее положение лодки(крайний левый блок начало, крайний правый берег) ### Лодка: - список персонажей: расположение слева-направо в виде блоков Имя:Здоровье; - при нажатии на Персонажа, появляется модальное окно с полной информацией(Имя, Здоровье, Сила), поля Предметы, Друг, Враг - скрыты для игрока и кнопка Атаковать. - блок с персонажем игрока выделен цветом. ### История действий: История действий игрока и неигровых персонажей. - События из соответствующей фазы; - Действия персонажей(атака и результат, лечение, получение урона); Формат: - Ход N - список действий - разделитель ## Дополнительно ### Завершение игры: Модальное окно: - с результатами подсчёта очков и объявление победителя ИЛИ - уведомление о проигрыше, если Игрок оказался за бортом; - предложение начать игру сначала.

Финальный шаг

По итогу мы имеем описание правил игры solo-game-rules.md, описание игрового интерфейса ui.md и пока что пустой файл game.html.Всё что нам осталось сделать отправить в чат ИИ всю собранную нами информацию и указать куда сохранить результат. В этом есть некоторое преимущество того, что пользуемся VSCode. Чтобы не копировать содержимое каждого файла с нашими запросами и после не копировать результат из чата, достаточно прямо в чате указать желаемые файлы напрямую:

Возможность указать желаемые файлы значительно упрощает работу
Возможность указать желаемые файлы значительно упрощает работу
На основе solo-game-rules.md, используя ui.md, сгенерируй игровой интерфейс(с адаптивным дизайном для мобильных устройств) и соответствующие игровые механики в game.html, используя HTML, CSS, JS.

После некоторых раздумий, наш незаменимый ИИ помощник выдаст готовое решение, обновив содержимое game.html, а нам останется только открыть этот файл в любом современном браузере.

Разработчики игр не нужны

Готовый результат можно увидеть по ссылке.

Вместо заключения

А теперь — неудобный вопрос: если игру можно собрать, не зная ни HTML, ни CSS, ни JavaScript, то что вообще сегодня значит «быть программистом»?

Мы только что прошли путь от идеи до рабочего прототипа, не написав код вручную. Мы не гуглили синтаксис, не читали документацию, не спорили с компилятором. Мы формулировали мысли — и получали результат.

Это не означает, что разработчики больше не нужны. Это означает, что порог входа рухнул. Что теперь ценится не умение помнить методы API, а умение мыслить системно, проектировать механику и задавать правильные вопросы.

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

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

И вот там станет по-настоящему интересно: потому что ИИ поможет и в этом. Вопрос только в одном — готовы ли вы перестать наблюдать за технологической революцией и начать пользоваться ею?

P.S. Формулирование запросов на естественном языке — это тоже программирование, просто на другом уровне абстракции. Мы по-прежнему задаём логику, определяем входные данные, описываем ограничения и ожидаемый результат — только вместо строгого синтаксиса используем человеческий язык. Хороший промт так же требует структурного мышления, декомпозиции задачи и понимания системы, как и любой код. Разница лишь в том, что теперь компилятором выступает ИИ. Но стоит заметить, что в случае использования языковых программирования, результат зависит от уровня ваших знаний, а в случае использования ИИ - вам нужно доказать ему, что вы знаете лучше.

54
7
5
3
54 комментария