К содержимому
Все кейсы

AI-системы

Chronicles

Текстовая игра, где кубик бросает код, а не модель

TypeScriptpnpm monorepoAnthropic APIДетерминированное ядроVitest
500
партий на заглушках
≈$0.24
стоимость партии
46
тестов

Проблема

Если позволить LLM самой решать, получилось ли действие у игрока, она будет подгонять исход под красоту сцены. Ощущение честного расчёта — единственное, чем такая игра отличается от AI Dungeon, — исчезает за первые двадцать минут.

Система

Модель до броска называет релевантный навык и сложность, после броска описывает уже готовый исход. Вся математика — бросок, ресурсы, смерть, выбор типа карты — живёт в детерминированном ядре с нулём зависимостей и нулём обращений к API. Сложность выводится в два шага: правдоподобность действия по шкале с закреплёнными якорями, затем поправка на явные законы сгенерированного мира. Каждый вариант обязан нести обоснование сложности — вариант без него отбраковывает валидатор.

Роль

Соло-разработка: движок, слой LLM, харнесс симуляции.

Результат

Движок отлаживается без единого платного вызова: 500 партий на заглушках поймали четыре дефекта баланса, включая тот, где успешные проверки делали игрока слабее случайного. Дефект нашёлся только сравнением двух стратегий — сравнение закреплено тестом. 46 тестов, партия обходится ≈$0.24 при плановых $0.28.