A python interface for training Reinforcement Learning bots to battle on pokemon showdown.
Project description
The pokemon showdown Python environment
A Python interface to create battling pokemon agents. poke-env
offers an easy-to-use interface for creating rule-based or training Reinforcement Learning bots to battle on pokemon showdown.
Getting started
Agents are instance of python classes inheriting from Player
. Here is what your first agent could look like:
class YourFirstAgent(Player):
def choose_move(self, battle):
for move in battle.available_moves:
if move.base_power > 90:
# A powerful move! Let's use it
return self.create_order(move)
# No available move? Let's switch then!
for switch in battle.available_switches:
if switch.current_hp_fraction > battle.active_pokemon.current_hp_fraction:
# This other pokemon has more HP left... Let's switch it in?
return self.create_order(switch)
# Not sure what to do?
return self.choose_random_move(battle)
To get started, take a look at our documentation!
Documentation and examples
Documentation, detailed examples and starting code can be found on readthedocs.
Installation
This project requires python >= 3.8 and a Pokemon Showdown server.
pip install poke-env
You can use smogon's server to try out your agents against humans, but having a development server is strongly recommended. In particular, it is recommended to use the --no-security
flag to run a local server with most rate limiting and throttling turned off. Please refer to the docs for detailed setup instructions.
git clone https://github.com/smogon/pokemon-showdown.git
cd pokemon-showdown
npm install
cp config/config-example.js config/config.js
node pokemon-showdown start --no-security
Development version
You can also clone the latest master version with:
git clone https://github.com/hsahovic/poke-env.git
Dependencies and development dependencies can then be installed with:
pip install -r requirements.txt
pip install -r requirements-dev.txt
Acknowledgements
This project is a follow-up of a group project from an artifical intelligence class at Ecole Polytechnique.
You can find the original repository here. It is partially inspired by the showdown-battle-bot project. Of course, none of these would have been possible without Pokemon Showdown.
Team data comes from Smogon forums' RMT section.
Data
Data files are adapted version of the js
data files of Pokemon Showdown.
License
Citing poke-env
@misc{poke_env,
author = {Haris Sahovic},
title = {Poke-env: pokemon AI in python},
url = {https://github.com/hsahovic/poke-env}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file poke_env-0.8.1.tar.gz
.
File metadata
- Download URL: poke_env-0.8.1.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25ae25e4dacd0eb322b9889af0e14882764e95ac9f7cf3ae7d4e3a829ce14ea0 |
|
MD5 | 90302425db41eac981facdfacedc3f7a |
|
BLAKE2b-256 | a574db9a55d7e272af0ef2e0466d6a563f48a7d7cb304e02d292821a1a64afac |
File details
Details for the file poke_env-0.8.1-py3-none-any.whl
.
File metadata
- Download URL: poke_env-0.8.1-py3-none-any.whl
- Upload date:
- Size: 1.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 907490dfa53f8f4bb7f95ab9249b7a4d9c2e70bc6515c5e9390eec1e228ad349 |
|
MD5 | 37fe0121890cf38c0c2270a73986d843 |
|
BLAKE2b-256 | 3c11fd6b181415663ceab4ec62cf7ca5b9121ada471934235b7962c6aaa04ca6 |