Skip to content

aturfah/cmplxsys530-final

Repository files navigation

cmplxsys530-final

Final Project for Complex Systems 530 WN18

Project Description

This is an agent-based simulation for competitive Pokémon battles. Each agent in the simulation is a player, with a team. These agents are matched either randomly or by their Elo ranking, based on the pool of players available. The framework used can be used to implement any turn-based two-player game. In addition to Pokémon, Rock Paper Scissors is also implemented with appropriate agents.

Quickstart

  1. Install the requirements with pip install -r requirements.txt.
  2. Pull down the Pokemon Showdown usage data with python scripts/retrieve_data.py.
  3. Run the sample Pokémon simulation with python scripts/run_simulation.py -f, and select the sample_simulations/sample_pokemon.yaml file.
  4. Once completed, run python scripts/visualize_results.py -m elo, and select the logs/PKMNPlayers_....csv file to see the elo rankings over the course of the simulation.

Module Description

agent - Contains classes for agents in the simulations
battle_engine - Contains classes for the game logic in the simulations
data - Contains the data for the Pokémon simulations
docs - Contains License and Template files
file_manager - Contains classes for creating and parsing logs generated by the simulations
interface - Contains code for the flask interface to play against an agent
ladder - Contains classes for the player matching scheme
pokemon_helpers - Contains helpers for the Pokémon simulations
sample_simulations - Contains pre-built simulation configs
scripts - Contains miscellaneous scripts to handle files and run tests
simulations - Contains classes for the individual simulations
stats - Contains functions to calculate statistics from and plots of the logs
tests - Contains unit test cases
writeup - Contains assignment submissions

Writeup Links

Link to project proposal.

Link to final report

Link to release for final report