Um player SSBM baseado em Deep Reinforcement Learning.
NOTA: Este projeto não está mais ativo e está sujeito a bit-rot. Há um projeto sucessor baseado na aprendizagem por imitação de replays de slippi em https://github.com/vladfi1/slippi-ai.
Testado em: Ubuntu> = 14.04, OSX, Windows 7/8/10.
pip install -e .
.agents
. O conjunto completo de agentes treinados está disponível aqui. Você precisará saber onde o golfinho está localizado. No Mac, o caminho do golfinho será /Applications/Dolphin.app/Contents/MacOS/Dolphin
. Se dolphin-emu
já estiver no seu PATH
, você poderá omitir isso.
python3 phillip/run.py --gui --human --start 0 --reload 0 --epsilon 0 --load agents/FalconFalconBF --iso /path/to/SSBM.iso --exe /path/to/dolphin [--windows]
Os agentes treinados são armazenados no diretório agents
. Além de FalconFalconBF
, os agentes em agents/delay0/
também são bastante fortes. Execute com --help
para ver todas as opções. O melhor agente humano é delay18/FalcoBF
, disponível no zip do Google Drive.
--exe
será o caminho para o Binaryx64Dolphin.exe
que você descompactou. Em geral, o forward /
s deve estar
volta para todos os caminhos, a menos que você esteja usando MinGW, Cygwin, git bash ou algum outro emulador de shell unix.3
comandos como python3
e pip3
.--tcp 1
(agora implícito em --windows
). Você também pode precisar abrir a porta 5555 no seu firewall.--user tmp
(os diretórios temporários que o python cria começam com /tmp/...
e não são válidos para o Windows Dolphin). O treinamento é controlado por phillip/train.py
. Consulte também runner.py
e launcher.py
para treinar massivamente em paralelo em clusters slurm. Phillip foi treinado no MGHPCC. Recomenda-se treinar com um golfinho personalizado que usa zmq para sincronizar com a IA - caso contrário, os comandos abaixo provavelmente falharão.
Treinamento local também é possível. Primeiro, edite runner.py
com os parâmetros de treinamento desejados (avançado). Então faça:
python3 runner.py # will output a path
python3 launcher.py saves/path/ --init --local [--agents number_of_agents] [--log_agents]
Para visualizar estatísticas durante o treinamento:
tensorboard --logdir logs/
O treinador e (opcionalmente) os agentes redirecionam seu stdout/err para slurm_logs/
. Para encerrar o treinamento:
kill $(cat saves/path/pids)
Para retomar o treinamento, execute launcher.py
novamente, mas omita o --init
(ele substituirá sua rede antiga).
O treinamento no Windows não é compatível.
Graças à microsoftv agora também existe um vídeo instrutivo!
Venha para o Discord!
Tenho transmitido jogos de treino em http://twitch.tv/x_pilot. Também há algumas gravações no meu canal do youtube.
Muito obrigado ao altf4 por me iniciar e ao spxtr por um observador de memória python. Algum código para interação com golfinhos foi emprestado de ambos os projetos (principalmente o último, agora que mudei para python puro).