user8105112

user8105112

Семья, работа, ДнД Канал о разработке ДнД бота WeaveAI: https://t.me/weaveai_dev
На Пикабу
112 рейтинг 0 подписчиков 0 подписок 10 постов 0 в горячем
Награды:
Пикабу 17 лет!
3

ИИ-мастер ДнД: математика и галлюцинации

ИИ не умеет в математику! ИИ галлюцинирует!

Так говорят люди. И поэтому ИИ-мастер ДнД априори говно. Я развенчаю этот миф.

Начать стоит с разделения понятий. ИИ-модель (LLM) — это одно. Движок (или любой другой софт на базе ИИ) - это другое.

Сама по себе LLM и правда частенько фантазирует, а считать 2+3 не умеет по своей природе. Если она выдаст в ответе 5, то только потому, что часто видела "2+3=5" в обучающих данных — типа зазубрила. А в ДнД есть и последовательность нарратива, и математика, и нужно много всего помнить. Конечно, если "ИИ-мастер" — это большой промпт к ИИ-ассистенту ChatGPT, то результат будет немного предсказуемый.

Возникает вопрос: что с этим делать? На самом деле, всё просто: нужно оставить LLM то, в чём она хороша, а остальное вынести в код.

Например, игрок хочет перепрыгнуть препятствие. LLM сама прекрасно поймёт, что нужно сделать проверку атлетики. Супер! А вот дальше уже код должен подтянуть из базы данных статы персонажа, сделать бросок d20 и определить успешность.

Или вот бой. Все, кто пробовали играть с ChatGPT, знают: будут ошибки в инициативе, в экономике действий, в расчёте урона. Поэтому хороший ДнД бот кодом определит, чей сейчас ход, а ИИ будет использовать для интерпретации намерения игрока (кого и чем он хочет ударить) или генерации атак врагов. Расчёт попаданий и урона — опять кодом.

Всё :)

А галлюцинации? Есть способы и с ними справиться. Например, сделать такой конвейер:

конвейер

конвейер

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

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

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

плашка "Механика" как раз создана кодом

плашка "Механика" как раз создана кодом

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

Показать полностью 2

Хроники падения ИИ-мастера: как игроки разнесли мою первую альфу

Хроники падения ИИ-мастера: как игроки разнесли мою первую альфу

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

Идея написать ДнД-бота у меня родилась после нескольких попыток поиграть в ДнД с обычным ИИ-ассистентом. Мне понравилась креативная составялющая, но не понравились дыры с памятью и ошибки в математике. Поэтому первое, чем я занялся после технической проверки концепции, это исправление этих самых ошибок. Короче, я сосредоточился на том, чтобы мой бот учитывал правила и считал порядок инициативы, экономику действий в бою и т.п. А нарратив — не более чем отражение принятых движком решений и математики.

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

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

(А ещё оказалось, что галлюцинации убивают и сам движок! Как? Очень просто: нужно всего лишь передавать в качестве контекста предыдущие ответы мастера в LLM, которые судят ходы. Выяснилось, что для модели это просто два противоречивых куска текста — реальное состояние игры и бред в предыдущем ответе, и какой она посчитает правдой — большой вопрос. Мой аргумент "ну я же написал в промпте правила" с треском провалился.)

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

Третья - правила. Тут я угадал, и они более-менее работали. Но как-только удавалось лишний раз атаковать — сразу сообщали, что боёвка сломана.

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

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

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

Показать полностью
0

ДнД-бот: обработка запроса игрока

Игрок в ДнД: "Я хватаю меч и атакую!" Что дальше? Расскажу ниже.

Сразу оговорюсь, что вариант "отдай всё gpt-5.5" не рассматриваю — это уровень PoC (доказательство концепции). Если вы взялись за ДнД-бота всерьёз, вам наверняка понадобится пайплайн из нескольких вызовов LLM, которые будут выполнять разные функции. От этого и будем отталкиваться.

Итак, первое — нужно классифицировать запрос. Вы вряд ли захотите прогонять через движок вопрос типа "а сколько времени в Москве?", так что этот шаг обязателен. С этим хорошо спраляются маленькие модели.

Затем желательно нормализовать сообщение. Игрок говорит: "атакую его!" А кого он атакует? И чем? Благо, LLM прекрасно понимают контекст по предыдущим сообщениям. Проблема в том, что пайплайн LLM — это долго и дорого, и если каждая LLM будет вычислять контекст, это будет ещё дольше и ещё дороже. Лучше сразу вместо размытого "атакую его" получить конкретное "игрок атакует гоблина мечом".

Следом можно разбить сообщение на отдельные действия. Зачем? Это позволяет боту быть гибким: часть запроса можно пропустить, часть заблокировать. Например, игрок хочет спрятаться за укрытием и выстрелить из лука. А в локации нет укрытия. Честный бот скажет: укрытия не существует. Гибкий бот добавит: зато ты стреляешь с таким-то результатом.

Ну и если совсем заморочиться, то понадобится граф зависимостей действий, чтобы реалзиовать каскадную блокировку. Игрок хватает нож и бросает в гоблина? Но если нож не существует, то игрок не может схватить нож, а значит, и бросить в гоблина не может. Зависимости позволяют эту логику реализовать. (Да, gpt-5.5 сам за раз это всё и обработал бы, и зависимости бы решил. Но бота на этом не построишь.)

Тут стоит добавить, что в подобном пайплайне теряется общий контекст. Отдельные элементы обрабатывают отдельные действия, так что кому-то придётся потом склеивать разрозненные результаты воедино. Это может быть LLM, может быть что-то ещё.

Ну... вроде бы всё. Что даёт такая схема? Она даёт масштабирование, точность и крутые ответы. Так, управиться с длинным и сложным сообщением становится легче, если понятны зависимости и понятно, кто какую часть сообщения (отдельные действия) должен обработать. А точность увеличивается, протому что небольшие специализированные LLM с небольшим же контекстом не попадают в ловушку "lost in the middle" (в отличие от gpt-5.5, если она одна отвечает сразу за всё).

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

Например, игрок говорит:

Я прыгаю, отрубаю дракону голову и приземляюсь прямо в постель принцессы!

Описанный выше подход позволяет получить такое вот логичное дерево результатов без галлюцинаций:

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


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

Показать полностью 1
0

Когда ты соло фаундер

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

Соло-разработчик - это в одно лицо ваять код. Соло-фаундер - это в одно лицо ваять код, заниматься маркетингом, придумывать бизнес-модель, думать о продажах и регистрации товарного знака, заниматься нетворкингом... и наверняка ещё чем-нибудь.

Пока ты пилишь PoC чисто по фану, всё кайфово. У тебя есть несколько задач типа "запилить Х", ты никуда не торопишься, экспериментируешь в своё удовольствие. Тебя интересует функционал и не интересуют фолбэки, лимиты и прочее: ты просто не наступаешь на известные тебе грабли и игнорируешь наказистый UI.

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

А ещё выясняется, что несколько друзей на альфа тесте - это хорошо. А дальше что? И ты начинаешь изучать маркетинговые стратегии: покупать ли рекламу? нанять ли маркетолога? а куда лить трафик? а у меня лендинга нет... и вообще ничего нет.

Допустим, выбираешь стратегию Build in public, популярную среди indie game developers и требующую 0 денежных затрат. Опять выбор: телеграм? инста? twitter? блог? А на какую аудиторию, вообще? А то твоя аудитория? Окей, пусть будет телега. А как туда попадут люди? Всем знакомым ты уже рассказал, 10 человек подписалось. Дальше-то что? Как весь мир узнает, что ты что-то там крутое создаёшь? Ну... статьи, как вариант - на тех или иных площадках. Комменты в саб-реддитах.

Но это трафик только в канал разработки. Там будут и потенциальные клиенты, и те, кому просто интересна техническая сторона вопроса. А куда всё-таки сажать потенциальных клиентов? Ну, допустим, лендинг надо. А как показать, что ты делаешь, если у тебя весь UI - это телега с текстом? Хм. Нужен арт-бук - как для книжек делают. И какое-то красивое, завораживающее, многообещающее описание.

А ещё ты вдруг узнаёшь, что неудачно выбрал название - под ним уже есть несколько западных продуктов, возможно, зарегистрированных. Надо проконсультироваться с юристом по теме интеллектуальной собственности и регистрации товарного знака. А ещё узнаёшь, что слово "ДнД" лучше не использовать без явного упоминания SRD и всяких там лицензий от компании Wizards of the Coast.

Но всё это ерунда. Потому что тебе надо поскорее перепилить архитектуру и решить: либо ты опять выкладываешь на тест костыли и велосипеды (но быстро получаешь фидбэк), либо берёшь ещё месяц на реализацию ещё 3-5 очень нужных фич, чтобы было не так лажово (но люди-то ждут чего-то пощупать поскорее!).

А ещё у тебя семья, дети, основная работа, домашние животные и сломанный кран. Наконец, можно и про себя вспомнить, про желание отдохнуть... но это на самом последнем месте.

Непросто, что я могу сказать. Но чертовски интересно :)

О своём соло приключении я рассказываю вот тут.

Показать полностью
0

Обработка заявки ДнД игрока с помощью ИИ

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

И всё же играть с ИИ можно (простейшая реализация), если забрать у него память и математику. Однако если в центре такой системы стоит одна-единственная LLM, она не справится: просто не сможет сопоставить действия игрока со всеми механиками, сделать все нужные проверки и т.д. Захлебнётся, даже если у неё контекстное окно на 1М токенов. И никакой чёрный пояс по промпт инженирингу не поможет.

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

Я беру из воды лист и точным броском отправляю его в чашу!

Что должно случиться? Очевидно, три вещи:

  1. Беря лист, игрок провоцирует скрытого врага.

  2. Чтобы попасть в чашу, нужна проверка ловкости.

  3. Лист вряд ли ценный, так что даже если игрок попадёт, загадка не решится и двери не откроются.

Казалось бы, всё просто, но одна даже "сильная" LLM с такой задачей будет справляться через раз. А вот LLM пайплайн справится значительно лучше. Идея в том, чтобы заявка игрока обрабатывалась несколькими LLM, где каждая ответственна за свою часть: одна проверяет триггеры врагов, другая — триггеры ловушек, третья валидирует заявку в целом.

Архитектурно вся эта система может выглядеть так:

D&D LLM pipeline

D&D LLM pipeline

Роутер решает, каких LLM-специалистов нужно запустить, те отрабатывают свои проверки, следующий элемент собирает всё в кучу и решает конфликты (если есть) — и после этого можно выдавать ответ игроку. Конечно, это более сложная схема, чем "запрос → LLM → ответ", но и результат куда лучше.

Если вы пробовали делать своих ботов для игры в НРИ, делитесь своими подходами в комментариях — было бы интересно обменяться опытом.

P.S. Тут можно почитать развёрнуто о том, как я пришёл к параллельному пайплайну, а тут — дневник разработки ДнД бота.

Показать полностью 1
0

Живой мастер vs ИИ

Стало интересно, как игроки в ДнД и сами мастера воспринимают ИИ. Нейрослоп? Конкурент? Или так: а ИИ, вообще, что-то может?

Попробую порассуждать об этом как человек, пытавшийся играть с ИИ-ассистентом полторы недели, поговоривший с десятком игроков и мастеров, а теперь пишущий своего ДнД бота - и при этом играющий в 3 кампании с живыми игроками и мастерами.

Я думаю, что мастера и ИИ занимают разные ниши.

Живую (или хотя бы онлайн) игру с сопартийцами и мастером ничто не заменит. Это совершенно иная атмосфера, это живое взаимодействие, социализация, юмор. Это красивый отыгрыш — обязательно перед людьми! Всё это теряет смысл перед машиной. А ещё живой мастер — это отсутствие ограничений, которые всегда будут в любой, даже самой сложной программе. И при прочих равных вряд ли кто-то выберет игру с машиной, если есть возможность играть вживую с классной компанией и классным мастером.

Что может дать ИИ? Он может дать игроку сделать пару ходов, пока он едет в метро, обедает или не знает, куда потратить 20 минут до следующего рабочего созвона. Это вообще ни разу не то, что игрок бы получил от настоящей игры. И всё же, это неплохой компромисс: погружение в фэнтезийный мир в любой момент — без поиска пачки игроков, мастера и 4 часов свободного времени.

Мир меняется, но профессия ДМа не умрёт. ИИ не вытеснит живые игры, он просто займет пустующую нишу — асинхронные, короткие 10-минутные сессии, которых в ДнД всегда не хватало.

Что думаете, уважаемые игроки и мастера?

Показать полностью
0

Каскад событий в ДнД

Каскад событий в ДнД

Плут крадётся, бросает на ловкость, не прошёл; в результате срабатывает ловушка; от шума просыпается стражник; начинается бой. Получился каскад событий.

В живой игре произойдёт следующее: мастер попросит бросить кубик; расскажет о сработавшей ловушке и предложит герою отнять сколько-то хп; затем опишет всполошившуюся стражу; и скажет: "Бросайте инициативу!"

А если игра текстовая, а мастер - ИИ-бот в тг? Игрок говорит: "я крадусь", бот должен что-то ответить и передать ход обратно игроку. И вот как поступить? Обрабатывать весь каскад и потом вываливать на игрока 2 страницы опиания событий? Или как-то разбить такой каскад на ходы?

Поделитесь идеями :) Уже вторую неделю ломаю голову над этим.

Показать полностью
3

Арт к ИИ-ДнД

Задумался над артом к текстовой игре в ДнД с ИИ. Мне кажется, изображения должны передавать идею театра разума - через пастельные тона, дымку... Выбрал примерно такой акварельный вариант, рисовал в Midjourney. Что скажете?

Герой полуорк в полузатопленном вестибюле Библиотеки

Герой полуорк в полузатопленном вестибюле Библиотеки

Библиотекарь (спектр)

Библиотекарь (спектр)

Показать полностью 1
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества