About US

iTower - a clever agent who can learn how to play tower defense game

Who we are?

We are iTower team from USC CS department.


What we did in this project?

The goal for this project is to create an agent that could learn to play the game wisely. Based on the aspects of current gold , current monsters, towers, the agent should conduct the following possible behaviors: placing towers at proper time and location, selecting the proper types of towers, upgrading properties of the towers.


What tools are we using?

-Keras

-TensorFlow 2

-Anaconda

-Python 3.7

-Unity

-C#

Current Progress

  • Several necessary modifications of the original game, such as monster routes, tower placement. Details could be found in Methodology - Game Design.
  • The setup of a reliable network for the game and the python agent transmitting data between each other via TCP. Details could be found in Methodology - Communication Design.
  • An efficient method to collect the raw data from the gameplay. Details could be found in Methodology - Raw Data Collection.
  • An efficient method to pre-process and label the collected data. Details could be found in Methodology - Data Pre-processing and Labeling.
  • The proper application of TensorFlow 2.0 (Keras) and Convolutional Neural Network (CNN) for the game project. Details could be found in Methodology - Machine Learning Design.

Game Concept

This 2D tower defense game is developed in Unity (C#). In this game, Monsters walk from the blue portal on the top left to the red portal on the bottom right. And the player needs to use coins (collected by killing monsters) to purchase different types of towers and place the tower properly to prevent monsters from reaching to the end of the road.


Target Audience

All age groups

Genres

iTower project is based on a single-player, 2D, tower defense game.

Objective

To reach the next level, the player current life must remain greater than 0 after the last monster of this level is exterminated or arrives at its destination.


Our project

2D tower defense game developed with Unity

Unity

Our game is supported by Unity with high performance.

CNN

We are using CNN as core algorithm of our agent.

Data

We have gain 10ks of valid data to make our agent smarter

Analysis

We applied detailed analysis to our agent from several perspectives.

Portfolio

The resources we have for our project

Our Team

Wen Ni

Project Manager

wenni@usc.edu



Nuo Xu

Project Manager

nuox@usc.edu



Licheng Jiang

Game Designer

lichengj@usc.edu



Enda Zhang

Agent Designer

endazhan@usc.edu



Junjing Wen

Agent Designer

junjingw@usc.edu



Hao Jin

Game Designer

hjin@usc.edu