pygame implementation of the pneuma env
Find a file
2023-11-29 11:53:30 +01:00
agents Major update, made single main file for both multi and single agent, added argsparse, polished everything 2023-11-29 11:53:30 +01:00
assets Major update, made single main file for both multi and single agent, added argsparse, polished everything 2023-11-29 11:53:30 +01:00
configs Major update, made single main file for both multi and single agent, added argsparse, polished everything 2023-11-29 11:53:30 +01:00
effects Major update, made single main file for both multi and single agent, added argsparse, polished everything 2023-11-29 11:53:30 +01:00
entities Major update, made single main file for both multi and single agent, added argsparse, polished everything 2023-11-29 11:53:30 +01:00
figures Major update, made single main file for both multi and single agent, added argsparse, polished everything 2023-11-29 11:53:30 +01:00
interface Major update, made single main file for both multi and single agent, added argsparse, polished everything 2023-11-29 11:53:30 +01:00
utils Major update, made single main file for both multi and single agent, added argsparse, polished everything 2023-11-29 11:53:30 +01:00
.gitignore Major update, made single main file for both multi and single agent, added argsparse, polished everything 2023-11-29 11:53:30 +01:00
camera.py Major update, made single main file for both multi and single agent, added argsparse, polished everything 2023-11-29 11:53:30 +01:00
game.py Major update, made single main file for both multi and single agent, added argsparse, polished everything 2023-11-29 11:53:30 +01:00
level.py Major update, made single main file for both multi and single agent, added argsparse, polished everything 2023-11-29 11:53:30 +01:00
LICENSE Major update, made single main file for both multi and single agent, added argsparse, polished everything 2023-11-29 11:53:30 +01:00
pneuma.py Major update, made single main file for both multi and single agent, added argsparse, polished everything 2023-11-29 11:53:30 +01:00
README.md Major update, made single main file for both multi and single agent, added argsparse, polished everything 2023-11-29 11:53:30 +01:00
requirements.txt Added requirements.txt 2023-11-23 16:50:54 +01:00

Pneuma: Reinforcement Learning Platform

Introduction

Pneuma is a Reinforcement Learning platform created as part of a thesis project. It is developed using PyGame and offers a customizable environment for testing and implementing reinforcement learning algorithms.

Installation

To install Pneuma, clone this repository and install the requirements (requirements.txt)

After cloning, you can edit the agents, create your own, and modify pneuma.py (the main file). Additionally, consider editing player.setup_agent() for further customization. Note

  • [] TODO: Separate the update logic from the network logic inside the player.

Usage

To run Pneuma, use the command-line interface with the following options:

  • --no_seed: If set to True, runs the program without a seed. Default is False.
  • --seed [int]: Specifies the seed for the random number generator. Default is 1.
  • --n_episodes [int]: Defines the number of episodes. Default is 300.
  • --ep_length [int]: Sets the length of each episode. Default is 5000.
  • --n_players [int]: Number of players. Default is 1.
  • --chkpt_path [str]: Path for saving/loading agent models. Default is "agents/saved_models".
  • --figure_path [str]: Path for saving figures. Default is "figures".
  • --horizon [int]: Number of steps per update. Default is 200.
  • --show_pg: If True, opens a PyGame window on the desktop. Default is False.
  • --no_load: If True, ignores saved models. Default is False.
  • --gamma [float]: The gamma parameter for PPO. Default is 0.99.
  • --alpha [float]: The alpha parameter for PPO. Default is 0.0003.
  • --policy_clip [float]: The policy clip. Default is 0.2.
  • --batch_size [int]: Size of each batch. Default is 64.
  • --n_epochs [int]: Number of epochs. Default is 10.
  • --gae_lambda [float]: The lambda parameter of the GAE. Default is 0.95.

Example Command

$ python pneuma.py --seed 42 --n_episodes 300 --ep_length 5000 --n_players 2 --no_load

License

Pneuma is licensed under the Mozilla Public License 2.0.