Ayaan Goswami
Let's talk
All projects

Machine learning · Games / 2026

Showdown AI

A bot that learned to play competitive Pokémon by imitating me.

Code

City of Tears, Hollow Knight

Format
Gen 9 OU, Pokémon Showdown
Stack
Python, PyTorch, poke-env

What it is

An AI for competitive Pokémon battles on Pokémon Showdown, in the Gen 9 OU format. Instead of reinforcement learning, it uses supervised imitation learning: it learns to predict the move I would make.

How it works

I wrote a terminal proxy bot with poke-env that let me play my own matches while logging every decision. Each decision point becomes a 725-dimensional feature vector describing the state of the battle, labeled with the action I actually took. A residual MLP in PyTorch is trained on those pairs.

Limits

Imitation learning has an obvious ceiling: the model can only be as good as the player it copies, and it only learns from situations that player actually got into.