Как через ChatGPT создать игру и чем он полезен в этом деле?

Это превью сгенерировала Midjourney, а запрос для нее помог написать ChatGPT
Это превью сгенерировала Midjourney, а запрос для нее помог написать ChatGPT

Вероятно, ты слышал, читал забавные и пугающие новости о ChatGPT, и наверно, уже устал от этого. Думаешь, это очередной хайп и ChatGPT это аналог Алисы на стероидах? А что если он может помочь тебе во многих задачах в разработке твоих инди-игр? !

Теперь ты не один, у тебя есть оно!

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

Для программирования я буду использовать Unity и C#. Создать игру от и до chatgpt не сможет, для этого ему нужен кожаный мешок, т.е. ты, который соберет плоды его работы в одно целое — в игру!

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

ChatGPT
Как через ChatGPT создать игру и чем он полезен в этом деле?

А что он умеет-то?

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

  1. Локализация на разные языки.
  2. Программирование, вплоть до сложных вещей.
  3. Тестирование, написание тестов.
  4. Документирование.
  5. Маркетинг.
  6. Генерация идей и контента для игры.

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

Вы говорить по-русски?

Локализация терминов.

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

Рассмотрим пример со словом «Back", которое часто переводят в играх как "Спина», ибо на английском это также спина:

Как через ChatGPT создать игру и чем он полезен в этом деле?

Неплохо да? Но что, если нам нужно получить этот перевод сразу в каком-то удобном формате, например для CSV файла, чтобы вставить в файлы перевода. Это не проблема, не выходим из чата и делаем еще запрос.

Взял по умолчанию разделитель запятую, вы можете уточнить формат.
Взял по умолчанию разделитель запятую, вы можете уточнить формат.

Я художник, программировать не умею

Написание кода для C#, Unity.

Насколько он хорош? Лучше чем вы думаете, намного лучше! Я программист с 13+ стажем, chatgpt пишет код на уровне middle программиста, если хорошо формировать ему запрос и поправлять его.

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

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

Чтобы этот компонент работал, вам понадобится создать менеджер всплывающих подсказок, который будет отображать и скрывать текст подсказки. Вот пример такого менеджера:
Чтобы этот компонент работал, вам понадобится создать менеджер всплывающих подсказок, который будет отображать и скрывать текст подсказки. Вот пример такого менеджера:
Чтобы использовать этот компонент, добавьте компонент Tooltip на объект, для которого вы хотите создать всплывающую подсказку, и установите свойство tooltipText на желаемый текст. Также не забудьте добавить текстовое поле и панель на вашу сцену и связать их со свойствами tooltipText и tooltipPanel соответственно в компоненте TooltipManager.
Чтобы использовать этот компонент, добавьте компонент Tooltip на объект, для которого вы хотите создать всплывающую подсказку, и установите свойство tooltipText на желаемый текст. Также не забудьте добавить текстовое поле и панель на вашу сцену и связать их со свойствами tooltipText и tooltipPanel соответственно в компоненте TooltipManager.

В целом, неплохой стартовый код. Неиспользование всяких [SerializableField] и т. п. не проблема, cможете напрямую попросить его исправить это. Я пойду дальше и попрошу добавить некоторые фичи:

Код он написал полностью, с ним всё хорошо, он просто не влезает в статью. 
Код он написал полностью, с ним всё хорошо, он просто не влезает в статью. 

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

ChatGPT прекрасный учитель, вы не останетесь наедине с непонятным кодом.
ChatGPT прекрасный учитель, вы не останетесь наедине с непонятным кодом.

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

А что с качеством игры?

Автоматическое тестирование.

Баги, баги, баги, Вьетнам...
Баги, баги, баги, Вьетнам...

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

Просим написать его юнит-тест на предыдущий класс, который он сгенерировал. Запрос следующий: "напиши юнит тест для Tooltip на Unity".

Я не буду вставлять весь код, тестов очень много и они проверяют достаточно правильные вещи.
Я не буду вставлять весь код, тестов очень много и они проверяют достаточно правильные вещи.

А что, если у меня уже есть свой код и я хочу для него написать юнит тест? Легко! ChatGPT прекрасно умеет понимать чужой код и делать с ним что угодно, в том числе писать юнит-тесты. Давайте попробуем.

Я откопал у себя в игре простой компонент для уничтожения объектов по таймеру и событиям:

Компонент просто уничтожает любой игровой объект после N секунд + можно навесить callback.
Компонент просто уничтожает любой игровой объект после N секунд + можно навесить callback.

Вот что выдал ChatGPT:

Весь кусок кода не вмещается, но там всё отлично.
Весь кусок кода не вмещается, но там всё отлично.

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

Сделай мне хорошо!

Пытаюсь разобраться в чужом коде...
Пытаюсь разобраться в чужом коде...

А знаете что, про чужой код, попробуем найти что-то на просторах интернета для Unity и попросим как ChatGPT улучшит этот код.

Я нашел на stackoverflow код для прыжка персонажа, в целом, он нормальный, но в нем есть ряд недостатков. Как перепишет его chatgpt? Код следующий, а просьба такая: "улучши этот код: …здесь код…"

https://stackoverflow.com/a/58378912 - ссылка на код.
https://stackoverflow.com/a/58378912 - ссылка на код.

Результаты поражают. Улучшения кода от ChatGPT:

Очень много мелких и полезных улучшений.
Очень много мелких и полезных улучшений.

Посмотрим что он сделал:

  • Переместил все поля в [SerializeField] как делают хорошие программисты.
  • Вынес значение по умолчанию свойства jump,чтобы его можно было настраивать через инспектор. В предыдущем коде была ошибка — мы могли менять направление прыжка в инспекторе, но это бы не работало.
  • Расширил метод OnCollisionStay, чтобы более точно определять, находится ли игрок на земле. Это позволяет исправить сразу группу багов с логиком прыжков в платформерах.
  • Сделал красивое форматирование и добавил private полю rb, что не влияет на логику, но делает код безопаснее и понятнее.

Мы видим, что ChatGPT верно исправил код, исправил несколько багов и улучшил качество. А это, между прочим, ответ со stackoverflow с хорошим рейтингом. Людям лень писать и объяснять, а еще они ошибаются.

И конечно же, вы можете попросить его объяснить, что он исправил и спросить любые детали как у человека. Это можно использовать для самообучения.

Человек учил, учил и учил нейросеть, теперь она учит его!

Дмитрий Зайцев.

Мой отдел маркетинга это я и мой кот

У маленьких начинающих инди-команд или инди-авторов нет денег и возможностей проводить грамотный маркетинг своей игры. Конечно, вы можете очень много и подробно спрашивать у chatgpt как раскручивать игру и следовать этим советам, и это будет неплохо. Однако, есть ряд задач, где эта нейронка может быть особенно полезна!

Как через ChatGPT создать игру и чем он полезен в этом деле?

У вас есть Твиттер игры?

Многие инди-авторы пиарят свои игры в twitter, но многие не знают, как добиться хорошего результата от своих твитов. В этом нам будет помогать ChatGPT.

Допустим, вы разрабатываете игру и у вас вышла недавно демо-версия игры, вы хотите об этом сообщить в своём twitter. Хороший текст уже половина успеха. Давайте попросим chatgpt сделать красиво:

Выбирай вариант, который нравится.
Выбирай вариант, который нравится.

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

Давайте выберем 4 вариант и попросим сделать его немного иным, добавим красок:

Сарказм на месте, эмодзи тоже, в целом неплохо. 
Сарказм на месте, эмодзи тоже, в целом неплохо. 

Явно не хватает контекста, кому интересна абстрактная игра? Давайте представим, что это какая-то игра про пришельцев, где строишь поселение для инопланетян:

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

Это мы пока балуемся с twitter, но можно проделывать всё то же самое и для Reddit, YouTube и др. У каждой социальной сети своя аудитория и свои порядки, где-то работают одни заголовки, где-то другие и ChatGPT это учитывает. Обязательно указывайте для какой социальной сети вы хотите сгенерировать контент.

Хочу, чтобы Куплинов поиграл в мою игру!

Вот ключ, играй!
Вот ключ, играй!

Если ChatGPT умеет генерировать тексты, то почему бы ему не генерировать уникальные письма для каждого ютубера и стримера с просьбами поиграть в вашу игру. Это особенно полезно, когда вы пишете письма не на своём родном языке. Письмо будет грамотным, будет использованы естественные выражения для языка. Это сможет повысить шансы на успех.

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

Давайте попробуем:

В целом, довольно сухо и обыденно. 
В целом, довольно сухо и обыденно. 

Давайте попробуем улучшить текст.

Конечно, это ничего не гарантирует. 
Конечно, это ничего не гарантирует. 

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

Где идеи, Лебовски! ?

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

Ролевые игры

Возможно вы уже видели новости, про то как ломают ChatGPT и что-то заставляют его делать. Обычно, это происходит через навязывание роли боту, а он прекрасно умеет это делать. С ним можно играть в ролевые игры даже в интерактивном виде.

Даю роль ChatGPT...
Даю роль ChatGPT...

Давайте сразу начнем с чего-то очень сложного:

Продолжаем диалог...
Продолжаем диалог...
Продолжать можно бесконечно.
Продолжать можно бесконечно.

Для чего это можно использовать? Неплохой генератор сценариев или кусков сценариев, где важны диалоги. Думаю, можно заставить его генерировать сценарии в паре, вы ему строчку, он вам 2 строчки в ответ и так далее. Словно теперь у вас есть живой напарник.

Хотите продолжения?

  1. Поставьте лайк, не скачивание!
  2. Есть вопрос или мнение? Напишите в комментариях.

Если будет большой отклик, я напишу еще одну статью на эту тему. Могу рассмотреть какой-то пункт более подробно или вы можете предложить свои идеи в комментариях.

363363
149 комментариев

Как же вы заебали

19

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

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

189

засунь своё мнение себе в одно место

29

Не заёбывайтесь, изи же. А статья полезная.

3

ну ты и додик, конечно

2

как же вы заебали ныть что вас ебут

1

Вообще выглядит прикольно, но рекомендовать использовать чатгпт тем кто не умеет в программирование я бы не стал. Скорее наоборот, чтобы контролировать и понимать результат выдаваемый гптшкой желательно быть программистом который умеет читать и понимать чужой код + умеет хорошо формулировать ТЗ. Я пробовал обучать человека который вообще 0 в программировании. Лучшее что он сможет - безыдейно копипастить код и не понимать почему он не работает.

17