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

Меня зовут Андрей Шумаков, я scrum-мастер, а также куратор по розничному бизнесу в центре развития гибких практик разработки и внедрения продуктового подхода в ПСБ. Мой интерес к настолкам в том числе рабочий: я создаю бизнес-игры. В этой статье расскажу, как создал бизнес-игру с помощью искусственного интеллекта. Scrum-мастера, берите на заметку! Под катом объясню в деталях, как составить хороший промпт и какие именно задачи поручить ИИшке, чтобы она не галлюцинировала излишне, не путалась в контексте и выдавала результат, который потом можно итерировать своими руками. Поехали!

Зачем разрабатывать бизнес-игры и играть в них

На рынке бизнес-игр уже много, и найти их легко. Но они в массе своей достаточно универсальные, решают общие задачи. А вот на задачи более узкие их уже не хватает — нужно разрабатывать что-то свое, уникальное. 

Мы в центре применяем кастомные бизнес-игры, чтобы через обучение донести игрокам определенный посыл и конкретные знания. Смысл в том, чтобы у человека за два часа бизнес-игры выстроился мостик между «знаю» и «умею». Чтобы он в безопасной обстановке набрал опыт, который, работая в команде, получил бы за два-три месяца. 

Охота за зависимостями

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

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

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

Каждый круг состоит из этапов:

  • Планирование. Команда решает, кто над чем работает.

  • Работа. Игроки бросают кубик, распределяют единицы сложности по задачам: аналитика → программирование → тестирование.

  • Ситуации. Каждый игрок вытягивает карточку события.

  • Завершение. Проверка готовых компонентов.


Эта бизнес-игра помогает участникам попробовать переход от компонентных к фича-командам. 

Но я тут про нее рассказываю не для того, чтобы похвастаться придумкой. И сел ее разрабатывать своими руками не просто так. Разработка подобной игры у подрядчика стоит от 150 до 700 тысяч рублей. Мы в центре занимаемся в первую очередь обучением: найти подобный бюджет на то, что не входит в нашу специализацию, не можем. Соответственно, надо все делать самостоятельно.

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

До этого я разрабатывал более простые по механикам бизнес-игры, но за столь сложную не взялся бы: на это ушло бы слишком много времени и сил. Если бы не пришел на помощь генеративный ИИ (ГИИ). 

Коллеги, по экзоскелетам!

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

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

Итак, смотрим на процесс разработки «Охоты за зависимостями» и на то, как ГИИ мне в нем помог.

Как верно запромптить ГИИ

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

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


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

Поэтому я с помощью ГИИ создал сайт, который форматирует карточки, а содержимое карточек хранилось отдельно в любимом разработчиками JSON-формате.

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

Ты — опытный Python/Flask-разработчик, создающий веб-приложение "Game Card GeneratorTop" (Генератор игровых карточек) для настольной игры "Охота за зависимостями". 

Контекст проекта:

Приложение предназначено для создания и печати карточек настольной игры.

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

Типы карточек:

Ситуации — игровые сценарии.

Специалисты — персонажи с уникальными способностями.

Компоненты — технические элементы системы.

Фичи — дополнительные игровые механики.

Правила — описание игрового процесса.

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

Функциональные требования:

Адаптивный веб-интерфейс с навигацией между типами карточек.

Интерактивный выбор карточек (клик для выбора/отмены).

Массовые операции: "Выбрать все" и "Очистить выбор".

Генерация PDF с выбранными карточками в разных макетах (2x2, 3x3).

Счетчик выбранных карточек.

Визуальная обратная связь (выделение выбранных карточек).

Индикатор загрузки при генерации PDF.

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

Архитектура проекта

Backend: Python Flask 3.1+

Frontend: HTML, CSS (Bootstrap), JavaScript

PDF Generation: ReportLab

Контейнеризация: Docker + Docker Compose

Порт: 5051

Структура данных: JSON-файлы в static/data/

Структура проекта:

templates/

├── base.html          # Базовый шаблон с навигацией

├── index.html         # Главная страница

├── situation_cards.html

├── specialist_cards.html  

├── component_cards.html

├── feature_cards.html

└── rules.html

static/

├── css/styles.css     # Стили Bootstrap + кастомные

├── js/main.js         # Интерактивность карточек

├── fonts/             # Шрифты для PDF

└── data/              # JSON файлы с данными карточек

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

Инфраструктура и развертывание

Dockerfile для упаковки приложения

docker-compose.yml для локального развертывания


В развертывании получаем базовую функциональность с генерацией PDF. 

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

Как пользователь, я хочу просматривать карточки ситуаций с их описанием.

Как пользователь, я хочу просматривать карточки специалистов.

Как пользователь, я хочу просматривать карточки компонентов.

Как пользователь, я хочу просматривать карточки особенностей.

Как пользователь, я хочу читать правила игры.

Базовую функциональность я дорабатывал через описание в формате пользовательских историй. 

Как пользователь, я хочу выбирать отдельные карточки из списка.

Как пользователь, я хочу видеть превью выбранных карточек.

Как пользователь, я хочу отменять выбор карточек.

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

Как пользователь, я хочу очищать весь выбор одним кликом.

Как пользователь, я хочу генерировать PDF с выбранными карточками.

Как пользователь, я хочу выбирать макет карточек (2x2, 3x3).

Как пользователь, я хочу скачивать сгенерированный PDF файл.

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

Через них же задавал требования к интерактивности, к генерации PDF. 

[

  {

    "id": 1,

    "title": "Название ситуации",

    "description": "Описание ситуации",

    "effect": "Игровой эффект"

  }

]

Содержимое карточек хранилось отдельно в JSON, то есть можно было отдельно дорабатывать содержание, не влияя на представление. ГИИ с этим форматом тоже отлично умеет работать и хорошо его понимает.

Поехали!

Промпт готов, с ним я запустил агента и начал генерацию.

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

И магия — все работает!

Здесь можно выбрать, какие карточки напечатать: сотрудники, специалисты, компоненты, фичи, правила игры. А их содержимое я могу далее итеративно дорабатывать, в том числе чтобы пофиксить ошибки ГИИ. К этой работе можно подключать и его в режиме ассистента, чтобы он давал советы, помогал допиливать.

Резюме

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

Я применяю ИИ к тем задачам, которые раньше умирали на салфетке. Это все то, на что раньше не было сил и времени. Да, бывают галлюцинации. Но специалист может их отслеживать. Когда я вижу, что что-то сделано нелогично, не пеняю на LLM-ку, а иду разбираться, в чем причина. Ускорение работы с ИИ не отменяет необходимость проверять, изменять, дорабатывать то, что вы делаете. И не умаляет вашей роли как эксперта в своей отрасли. 

Так что дерзайте, надевайте экзоскелет, создавайте умные промпты и переносите свои идеи с салфеток в реальность!

Комментарии (0)