Выкладываю пример сценарного творчества от генеративного ии, claude, работающего посредством cursor. (Подробное видео с разбором того, как с ним работать, которое мы делали ранее, я оставлю в комментариях к этому посту.)
На примере диалога с Умной Обезьяной.
Все выложенные ниже файлы (от библии до кода - результат работы нейронки)
3 файла (выложил в build просто чтобы вам показать)
1) библия сценариста
buildin.ai/share/5044e8f0-cf7e-430f-b1bf-f77b02dfded6?code=W2NSM... [BuildIn.AI]Библия сценариста
2) диалог с обезьяной в понятном для человека формате + нарративная информация
buildin.ai/share/5326ab84-f788-4885-8dea-1f2df277c254?code=W2NSM... [BuildIn.AI](сюжет) диалог Умная Обезьяна
3) диалог с обезьяной в конфиге JS
buildin.ai/share/97ac0247-f7ee-41f5-bbe1-0e5830e34fae?code=W2NSM... [BuildIn.AI](конфиг) диалог Умная Обезьяна
небольшая аннотация
правда в моём случае он шёл от обратного: по запросу о диалоге с умной обезьяной сделал сам конфиг, а потом я попросил по этому конфигу добавить информацию в библию сценариста и сделать понятный формат для сценариста в .md.
некоторые poi с диалогами он придумывает сам с нуля, как и персонажей к ним, а для некоторых я подкидываю тему с минимальным описанием.
И ещё как бонус, клод по моему запросу написал программу, которая анализирует конфиги и выдаёт статистику по ним (в каком диалог сколько слов, реплик и т. д.)
Саму механику диалога клод тоже написал сам с нуля, я просто временами через запросы просил кое о каких модификациях.
В конфигах у каждой реплики можно указывать:
callFunction: function(extraData) {}
callFunction: function(extraData) {}
кусок кода, который должен выполниться при активации данной ноды диалога. Например, в одном из диалогов, когда игроку подсунули чай, оказывающий наркотическое воздействие, через реплику отпития чая на карте некоторые персонажи заменились на изображение единорога и феи.
А чтобы использовать диалоговую систему, была реализована другая система - POI
poi - отдельный объект, содержащий набор параметров и функций.
Так, например, если игрок заходит в локацию, в которой находится poi monkeyCharades - то после генерации на локации домов запускается её функция functionOnGenerateLocation, согласно которой:
poi - отдельный объект, содержащий набор параметров и функций.
Так, например, если игрок заходит в локацию, в которой находится poi monkeyCharades - то после генерации на локации домов запускается её функция functionOnGenerateLocation, согласно которой:
- выбирается ближайший к центру незанятый дом
- дом заселяется обезьяной, устанавливается маркер на дом (восклицательный знак, привлекающий внимание игрока)
- для дома устанавливается возможность "зайти игроку" и указывается, что при заходе отображается диалог с обезьяной, который был расписан в отдельном конфиге
- в диалоге с обезьяной в конечной реплике указывается, что для дома, где диалог был запущен, устанавливается другой диалог, который должен быть активирован если игрок вернётся.
Во второй части прикреплённого к посту видео можно посмотреть как диалог с Диогеном ощущается в игре
Ссылка на саму игру, если кому интересно (тоже написанную в основном нейронкой):
Выводы
На мой взгляд:
- Диалоги, алгоритмы и контентный геймдизайн, как трудозатратные задачи, клод делает лучше большинства людей
- Глобьальный сценарий, архитектуру кода, системный геймдизайн, как сложные, но не трудозатратные задачи ,большинство людей пока делают успешнее клода, учитывая контекстный лимит последнего.
- Процент людей, которые делают свою работу лучше нейронок с каждым днём будет только уменьшаться
- Человеку нужно уметь работать в синнергии с нейронками, учиться делегировать на них трудзатратные задачи и понимать что на них вообще можно делегировать. Даже если вы считаете себя мега-сеньором, которого нейронки заменят ещё не скоро, то уже сейас вы будете в проигрышней позиции с таким же мега-сеньором, который использует в качестве инструмента генеративный ии и знает когда его нужно применять.
Бонус
Видеовстречи о том, как использовать курсор геймдизайнеру и сценаристу (программисты и так разберутся).