Я первый человек в истории мироздания, который создал полноценный ИИ для игры.
Ну, не совсем я. Возможно, и не первый (я не искал похожих решений, что бы не случайно не найти предшественников). Возможно, и не полноценный ИИ. Но главное - что он работает. Не знаю как, но он работает. Но сначала немного предыстории...

В своей работе над пошаговой стратегией на гексагональной сетке "Les oiseaux de guerre" я сделал почти все элементы готовой игры - управление, навигацию, интерфейс, тумай войны, логику расчета ходов, поиск пути, дизайн, редактор карты, три юнита. У меня в профиле есть статьи о прошлых этапах разработки и не только!. Остался последний оплот - ИИ. Для взятия этой твердыни я разработал библиотеку анализа местности, невероятно продвинутый алгоритм поиска пути и когда пришло время решительной атаки - я... не смог. Отдельные алгоритмы, правильные чужие идеи, абстрактные концепции никак не хотели объединяться в единый код. Я так и не придумал ответ на вопрос - как боту войну побеждать? Максимум, что я делал - создание оборонительной линии для защиты позиции, просто на основе поиска в ширину. Маловато будет! Бот должен знать текущее состояние карты на абстрактном уровне, понимать концепцию окружения, путей снабжения, засады и т.д. Я осознал необходимость решительных действий, когда понял, что начал переписывать редактор карты, лишь бы отложить работу с ИИ.
Обращение к сторонней мудрости помогло. В душевной тоске я обратился к нейропетухам (LLM DeepSeek) и сё вопрошаю - как написать ИИ для пошаговой стратегии? Увы, ответ разочаровал - Дипся давал или слишком общее решение, бесполезное на практике или слишком очевидное и столь же бесполезное. Спасибо, Дипся, я и сам знаю, что надо атаковать врагов в радиусе поражения, если нет других действий! В процессе бесед с нейропетухом мне пришла в голову идея - зачем нужно промежуточное звено? Я же могу напрямую отправлять состояние карты и правила игры нейропетуху (DeepSeek API) и спрашивать - какие ходы следует сделать боту для победы? Это феноменально наглое решение и я с радостью за его ухватился. Дипся сказал, что это возможно. Однако, остался вопрос размера контекста. Сейчас он для Дипси составляет 128к токенов. Полный размер карты (64х64 гексов) с описанием не влезет в контекст. Однако, мне не нужно отправлять всю карту - достаточно только видимые хексы и список юнитов, принадлежащих ИИ.
Реализация идеи была чарующе быстрой - создание простого кода для запросов к DeepSeek API (ладно, его написал сам DeepSeek, я ненавижу всё, связанное с сетью), написания кода для получения Summari карты (только значимая информация) и объяснение задачи бота в виде текста.
Наконец, пришло время испытаний. Это заработало сразу и без отладки. Бот сориентировался в обстановке и начал решительное наступление дюжиной юнитов на холм. Его удерживали мои юниты в составе четырёх фузилье и трёх пушек. Через семь ходов высота была взята. Я попробовал отвести в тыл несколько уцелевших юнитов, но они попали в окружение. Это было поразительно. Потери бота были минимальны, а его комментарии явно показывали понимание стратегической обстановки. Дипся понял концепцию высоты, перекрестка дорог и леса, хотя в тексте про это ничего сказано не было. НУ ДАВАЙТЕ, ШУТИТЕ ПРО ТЕРМИНАТОРА! Ход занимал 15-20 секунд. С учетом того, что игрок и бот делают ходы одновременно, это не так много, в это время можно заняться управлением своими войсками.
Феноменальный успех оставил меня в задумчивости. Да, эта идея работает безупречно, но что дальше? API DeepSeek стоит недорого, всего 0.07$ за миллион токенов и принимает любые формы оплаты, кроме "спасибо". Один ход (запрос и ответ) занимает 2.5к токенов, следовательно, он стоит 0.0175 центов. Странно, а деньги по ощущениям уходят гораздо быстрее...
Следующая идея была довольно логична - если Дипся хорошо справился с задачей может стоит попробовать локальную нейронку? Увы, те LLM, которые могут запуститься на моём компьютере, вообще не понимают, чего я от них хочу. Для отладки вполне допустимо пользоваться DeepSeek, но в случае релиза игры я быстро разорюсь на оплате API. Конечно, можно сделать так, что бы игрок вводил свой ключ для доступа к Дипсе. Но годиться ли такое решение? Хочется сказать "ВОИСТИНУ ГОДИТСЯ", но игроки такое едва ли понравиться. Без интернета игра не работать не будет и она зависит от работоспособности чужого сервиса. Другой вопрос - этично ли заставлять LLM делать такую примитивную работу, не будет ли это угнетением ИИ? С другой стороны, эротический BDSM-триллер по "Clair Obscur: Expedition 33" Дипся же как-то генерирует, так чем это хуже?
Следующий вполне логичный ход - дать готовую последовательность ходов и прямо спросить Дипсю: как ты сё додумал? Увы, тут гениальность нейропетуха опять зашла в тупик, его советы сводились или к банальщине или к слишком абстрактным материям. На этом я пока остановился.
В конечном итоге, я так и не смог самостоятельно написать сильный ИИ для стратегии. А кто смог?..