A fresh take on the classic tower defense game and AI to play it. Made in Python. The game contains 2 modes:
- Manual
- AI mode (genetic Algorithm mode)
Player can choose to use the game in any of given modes.
Implemented Genetic Algorithm from scratch whose performance matches human level performance.
Model-Free RL
- Asynchronous Advantage Actor-Critic (A2C/A3C)
- Proximal Policy Optimization (PPO)
- Trust Region Policy Optimization (TRPO)
- Deep Deterministic Policy Gradient (DDPG)
- Twin Delayed DDPG (TD3)
- Soft Actor-Critic (SAC)
- Deep Q-Networks (DQN)
- Categorical 51-Atom DQN (C51)
- Quantile Regression DQN (QR-DQN)
- Hindsight Experience Replay (HER)
Model-Based RL
- World Models
- Imagination-Augmented Agents (I2A)
- Model-Based RL with Model-Free Fine-Tuning (MBMF)
- Model-Based Value Expansion (MBVE)
- AlphaZero
The objective of the game is to stop enemy from crossing a map by building towers that slow them down and eventually destroy them. Players must manage their money and strategically place towers on the map to stop waves of enemy creeps that gain health and speed as the game progresses. Towers have varying characteristics such as dealing splash damage and slowing down creeps within a certain radius. The interface is largely intuitive as shown below
Clone the git repo into a local directory and run on the desktop
$ git clone git@github.com:code-ash-IIT/Tower_defense_ai.git localDir/
$ cd localDir/code
$ python main.py