A reinforcement learning bot for VizDoom environments featuring curriculum learning and hyperparameter optimization.
hellbot/
├── src/hellbot/ # Main package
│ ├── environments/ # Environment management
│ │ └── vizdoom_env.py # VizDoom wrapper & action space standardization
│ ├── training/ # Training logic
│ │ └── trainer.py # Main trainer class with curriculum learning
│ └── optimization/ # Hyperparameter optimization
│ └── hyperparams.py # Optuna integration
├── scripts/ # Entry point scripts
│ ├── train.py # Training script
│ └── play.py # Play/evaluation script
├── config/ # Configuration
│ └── settings.py # All configuration settings
├── models/ppo/ # Saved models and hyperparameters
├── mise.toml # Development environment & tasks
└── pyproject.toml # Dependencies & build config
-
Setup environment:
mise install # Install Python 3.12 and uv mise run setup # Install dependencies and setup
-
Train the bot:
mise run train # Curriculum training across multiple environments -
Play with trained model:
mise run play # Watch the bot play
mise run train- Full curriculum training (50k base timesteps)mise run train-fast- Quick training (25k base timesteps)mise run train-intensive- Extended training (100k base timesteps)mise run train-single- Single environment training
mise run optimize- Hyperparameter optimization (20 trials, 1 hour)mise run optimize-quick- Quick optimization (10 trials, 30 minutes)mise run optimize-intensive- Thorough optimization (50 trials, 3 hours)
mise run play- Play in default environmentmise run play-env -- VizdoomCorridor-v0- Play in specific environmentmise run play-deathmatch- Play in hardest environment
mise run check-cuda- Verify CUDA setupmise run status- Show project statusmise run clean- Clean up generated files
- Curriculum Learning: Progressive training across 9 VizDoom environments
- Action Space Standardization: Seamless training across different environments
- Hyperparameter Optimization: Optuna-powered PPO parameter tuning
- Modular Architecture: Clean, maintainable code structure
- Easy Development: Mise-powered development environment