← all repositories
vladfi1/phillip

A Falcon Punch from the deep: SSBM bot learns by getting wrecked

Phillip is a Super Smash Bros. Melee AI trained with deep reinforcement learning to brawl in Dolphin emulator—though its creator has since moved on to imitation learning.

584 stars Python AgentsDomain Apps
phillip
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

What it does

Phillip plays Super Smash Bros. Melee by hooking into the Dolphin emulator and reading game state directly from memory. It trains via deep RL, then deploys as a pretrained agent you can fight against. The project includes trained Falcon and Falco agents, with the “most human-like” one stashed in a Google Drive zip.

The interesting bit

The real labor here is the plumbing: a custom Dolphin fork with ZMQ synchronization, a Python memory watcher borrowed from earlier SSBM bot projects, and a full Slurm cluster launcher for training “massively in parallel.” The ML is almost the easy part; getting an emulator to talk to TensorFlow without desyncing is where the scars are.

Key highlights

  • Trained agents included; stronger ones available via Google Drive download
  • Supports local training with TensorBoard logging, or distributed Slurm cluster runs
  • Cross-platform setup (Ubuntu, macOS, Windows 7–10) with platform-specific Dolphin builds
  • Includes a --gui mode for human vs. AI matches
  • Community Discord and a YouTube tutorial video for the setup-averse

Caveats

  • Explicitly abandoned: “no longer active and is subject to bit-rot”
  • Training on Windows is not supported; playing requires firewall tweaks and path gymnastics
  • The “best” agents aren’t in the repo—you’ll need to fetch them from Google Drive

Verdict

Worth a look if you’re researching RL in fighting games or need a reference for emulator instrumentation. Skip it if you want something maintained; the author already has, pointing to a Slippi-based successor that learns from human replays instead of raw RL.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.