Skip to content

aceade/tacpath-ml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tacpath-ml

Teaching myself machine learning with ml5. This builds on my Master's thesis from 2014.

My thesis

The full thesis is available on my own site as a PDF. In summary, I put two teams of bots in a team deathmatch to see if I could make them perform better by tracking where they had died, seen an enemy, or by simply avoiding wide-open spaces.

You would think that doing so would make them perform better, but I could not gather enough data to definitively prove it. Part of this was because the unbalanced maps I created; one team was badly handicapped on a particular map. However, the weightings I tried did improve their performance, and on one map they were able to win 11 out of 20 matches.

The statistics used to train the model come from that third map. This one had the most balanced performance overall during the control tournament; the difference between the teams was only 10 deaths.

How it works

Two teams, Blue and Orange, are in a tournament of deathmatches, each match lasting 20 minutes. The Blue team's pathfinding is based entirely around the classic A* algorithm, and they refuse to deviate from this. The Orange team will add extra weightings as follows:

  • Have we lost anyone near this location?
  • Have we seen enemies here?
  • How exposed is this?

The page then uses ml5 to create a neural network from the raw stats.

Running locally

Any kind of server will do. I used Python's http module, which can be run with the following command: python -m http.server

Improvements

  1. Allow the user to upload their own stats for comparison.
  2. Add pictures of the maps.