#The Phillip AI An SSBM player based on Deep Reinforcement Learning.
Tested on: Ubuntu >=14.04, OSX. If you want Windows support, go bug the dolphin developers to support MemoryWatcher and Pipe Input on Windows - a fork that supports this is also under works.
A recent version of dolphin. Probably need to compile from source on Linux.
The SSBM iso image. Must be NTSC 1.02.
A few python packages
pip3 install attrs
pip3 install -e .
Trained agents are stored in the
phillip --gui --human --start 0 --load agents/FalconFalconBF [--iso path/to/SSBM.iso]
On Mac you will need to add
Training is controlled by
phillip/train.py. See also
launcher.py for training massively in parallel on slurm clusters. Phillip has been trained at the MGHPCC. It is recommended to train with a custom dolphin from
https://github.com/vladfi1/dolphin - the below commands will likely fail otherwise.
Local training is also possible. First, edit
runner.py with your desired training params (advanced). Then do:
python3 runner.py # will output a path python3 launcher.py saves/path/ --init --local [--agents number_of_agents] [--log_agents]
To view stats during training:
tensorboard --logdir logs/
The trainer and (optionally) agents redirect their stdout/err to
slurm_logs/. To end training:
kill $(cat saves/path/pids)
To resume training run
launcher.py again, but omit the
--init (it will overwrite your old network).
Come to the Discord!
Big thanks to https://github.com/altf4/SmashBot for getting me started, and to https://github.com/spxtr/p3 for a python memory watcher. Some code for dolphin interaction has been borrowed from both projects (mostly the latter now that I’ve switched to pure python).