ИИ научили хитрить в Clash Royale — прятать пушку за королём

Автор с другом сделали детерминированный симулятор Clash Royale с открытым кодом и обучили PPO-агента, который нашёл лазейку: выгоднее дать зданию разрушиться самому, чем терять награду за бой.

Redditr/MachineLearning

Встроенный пост загружается с Reddit. Если он недоступен, откройте источник.

Открыть оригинал

Автор проекта показывает, как они с другом с нуля написали детерминированный симулятор Clash Royale на C++ с биндингами для Python, чтобы обучать RL-агента. Весь матч просчитывается примерно за 10 мс на одном ядре ноутбука — это позволяет дешёво форкать состояние и заглядывать вперёд.

Интереснее всего найденная агентом лазейка: он научился ставить Пушку за своим Королём, потому что потеря здания в бою отнимает награду, а если оно само разрушится от времени — потерь нет. Простая одноходовая симуляция подняла винрейт с 0.625 до 0.944 против эвристического бота. Сам автор честно говорит, что агент пока слаб, а RL — не его основная область, и просит фидбек.