Бот сыграл 26 400 партий: как агенты балансировали карточную игру за четыре дня

Бот сыграл 26 400 партий: как агенты балансировали карточную игру за четыре дня - 1

«Оборот» – карточный рогалик про то, как маленькая команда с агентами доживает до первого большого запуска. Его собрали агенты за четыре дня: 28 выпусков с 13 по 16 октября. Человек в это время ставил задачи и играл руками. На полноценный плейтест каждой версии людей бы не хватило, поэтому баланс держал бот: перед каждой правкой он отыгрывал сотни сезонов.

Ниже – как это было устроено: какое число считали целью, где бот проигрывал и какие правила поменялись по его логам.

Что приходится балансировать

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

Бот сыграл 26 400 партий: как агенты балансировали карточную игру за четыре дня - 2

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

Бот сыграл 26 400 партий: как агенты балансировали карточную игру за четыре дня - 3

Сезон ведёт один из четырёх руководителей – основатель, операционный директор, архитектор агентов, фасилитатор – или команда без руководителя. У каждого своя способность. В итоге ручек у баланса много: размер руки, сила кризисов, босс, цены карт, способности руководителей, рынок между боями.

Бот сыграл 26 400 партий: как агенты балансировали карточную игру за четыре дня - 4

Мерило – бот

Цель записали числом: бот побеждает в 30–55% сезонов за каждого руководителя. Если побед больше, игре нечем пугать. Если меньше, новичок бросит.

Правило замера одно: одна правка за раз, после неё прогон бота, решение принимается по числу. С версии 0.6.2 прогон – 800 сезонов на каждую цель, полный раунд – 26 400 партий.

Бот сыграл 26 400 партий: как агенты балансировали карточную игру за четыре дня - 5

Первая ночь: 100% → 48%

Первую сборку сделали строго по дизайн-документу. Бот выиграл 100% сезонов: рука в пять карт, давление кризисов по таблице дизайна. За ночь давление подняли в 3,4 раза, руку увеличили до шести карт, боссу дали силу 90 и таймер в три недели. К 02:20 версия 0.1 стояла на 48,3%. Дальше четыре дня доля побед держалась в коридоре 47–55%.

Версия

Побед у бота

Что поменяли

дизайн-документ, 12.10

100%

рука 5 карт, давление по таблице дизайна

0.1, 13.10

48,3%

рука 6 карт, давление ×3,4, босс 90 с таймером 3

0.2

47,3%

появились руководители

0.3

48,8%

способность руководителя срабатывает не реже 0,3 раза за бой

0.4

52,3%

бой, закрывший последний кризис, засчитан победой

0.5.0

53,3%

26 карт пересчитаны, разброс между руководителями 3 п.п. вместо 16

0.6.3, 16.10

50,0%

800 прогонов на цель

Из первой ночи осталось два полезных соотношения. Один процент давления кризисов стоит боту примерно одного процентного пункта побед. На картах из дизайн-документа то же давление дало бы 21% побед: правки самих карт стоили 27 п.п.

Где бот проигрывал

В версии 0.4 замерили, чем заканчиваются поражения. 39% приходились на босса. В 56% проигрышей последний удар наносили фоновые потери. Два правила это поправили: бой, в котором закрыт последний кризис, засчитывается победой, а ход в последнюю энергию запрещён.

Потом выравнивали руководителей. В версии 0.5.0 пересчитали 26 карт, и разброс побед между руководителями сократился с 16 до 3 п.п. Замер версии 0.6.3 на 800 сезонов:

Руководитель

Побед у бота

без руководителя

50%

основатель

53,1%

операционный директор

48,5%

архитектор агентов

49,1%

фасилитатор

50,5%

Для тех, кому 50% мало, есть лестница сложности из семи ступеней. На 0.6.3 она снижает победы бота так: 50 → 46,3 → 39,1 → 32,8 → 28,6 → 24,8 → 19,4%.

Правки, которые продиктовал лог

Рука 5 → 6 карт. Выбор новой карты после боя добавлял боту 7 п.п. побед при руке в пять карт и 18 п.п. при шести. С пятью картами колода не успевала проявиться, и выбор почти ничего не решал.

Босс. Было: сила 30, таймер 4 недели, удар по энергии −8. Стало: 90, 3 недели, −10. Бой с боссом тянулся 8,9 недели, после правки – 7,5 при целевых 5–8.

Рынок. 136 из 316 посещений рынка приходились на первые два ряда карты сезона: игрок закупался раньше, чем понимал свою колоду. Рынок теперь открывается с третьего ряда.

Бот сыграл 26 400 партий: как агенты балансировали карточную игру за четыре дня - 6

«Записи встреч». Карта не сработала ни разу за 360 боёв. Её переписали, теперь она срабатывает в 22% боёв.

«Оркестровка». Способность архитектора агентов срабатывала 0,01 раза за бой. На такой случай в брифе было правило: если способность не применяется, меняют способность, бота не трогают. С версии 0.3 каждая способность руководителя обязана срабатывать не реже 0,3 раза за бой, и это проверяется на каждом выпуске.

Ценность карт для бота. Бот выбирает карты по измеренной ценности, и часть оценок оказалась неверной. «Публичный анонс» стоил для него 0,0, после правки 0,6. «Открытый эфир» при цене 2 стоил 0,3, стал 1,5.

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

Бот сыграл 26 400 партий: как агенты балансировали карточную игру за четыре дня - 7

Протокол одной правки

  1. Находка: бот, плейтест, ревью или вопрос основателя.

  2. Правка: одно число в JSON или одна строка движка.

  3. Тесты: node --test, на 0.6.3 их 868, падений ноль.

  4. Бот: 800 прогонов на цель.

  5. Запись в журнал решений: до, после, как откатить.

  6. Коммит с префиксом engine:.

  7. Кодекс правил, борт проекта и карты в игре читают одни данные, поэтому описание не расходится с механикой.

Бот находит перекосы в числах. Живой плейтест находит места, где игроку непонятно: «положил карту не туда – она сгорела», «откуда тратится энергия, я не совсем понимаю». Правки из обоих источников идут по одному протоколу.

Кто это делал

Работали пять сессий Codex, у каждой своя зона: интерфейс, маркетинг и лендинг, звук, процесс, движок. Зоны распределял оркестратор на Claude. Баланс жил в зоне движка вместе с ботом. Человек играл руками и задавал вопросы.

Бот сыграл 26 400 партий: как агенты балансировали карточную игру за четыре дня - 8

В «Оборот» могут играть и внешние агенты: через MCP им доступны правила, состояние партии, допустимые ходы и сам ход. 15 октября на версии 0.5.9 внешний клиент сыграл бой – 32 действия, 5 недель, победа. Публичный вход для агентов пока закрыт. История всех правок баланса открыта на борту проекта.

Сыграть в «Оборот»

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

Автор: mykhailus

Источник

Оставить комментарий