Project - Metagame Analysis
Toastie
Join Date: 2012-11-05 Member: 167351Members
in Squad Five
I am currently working on a project for a Machine Learning class to analyze NS2, and figured I will probably keep on working on it to turn it into a tool which can be used to discuss the NS2 metagame. I posted about this in the competitive sub-forum to get some ideas on starting (as I am going to try to start looking at competitive data before I expand into pub data).
This breaks up into a couple sections:
<!--coloro:#00FF00--><span style="color:#00FF00"><!--/coloro--><b>Information Extraction</b><!--colorc--></span><!--/colorc-->
This is what I am currently working on. I have gotten a chunk of data gathered from NS2 Stats, and have converted it into C# objects which I can work with (yay LinQ!). Right now I am working on writing methods to pull important information out of the data. So far what I have extractable is:
- KDR / spread for teams / players
- Tres gathered over rounds / time frames in rounds
Next I am adding
- Build order
- Pres gathered
- Lifeform / weapon info
- RTs built / lost
- Hives / CCs built / lost
And later on information more along the lines of
- Pushes
- Turtles
- Engagements
- Map control
<!--coloro:#00FF00--><span style="color:#00FF00"><!--/coloro--><b>Machine Learning and NS2</b><!--colorc--></span><!--/colorc-->
The point of pulling out this information is to use to predict who is going to win (or how likely it is for a team to win) based on how the game evolves. I am planning on attacking this with a few different ML algorithms to see what I can find. Currently planned are:
- Kernelized Perceptron (just to see what I can get from an absurd amount of combinations of features)
- Decision Tree (to see what is "most important" in determining a game's outcome)
- Random Forest / Bagged Trees (to get more complex learners which are still decipherable)
<!--coloro:#FF0000--><span style="color:#FF0000"><!--/coloro--><b>tl;dr</b><!--colorc--></span><!--/colorc--> I'm making a tool to see if <insert common balance complaint here> is actually a problem.
This breaks up into a couple sections:
<!--coloro:#00FF00--><span style="color:#00FF00"><!--/coloro--><b>Information Extraction</b><!--colorc--></span><!--/colorc-->
This is what I am currently working on. I have gotten a chunk of data gathered from NS2 Stats, and have converted it into C# objects which I can work with (yay LinQ!). Right now I am working on writing methods to pull important information out of the data. So far what I have extractable is:
- KDR / spread for teams / players
- Tres gathered over rounds / time frames in rounds
Next I am adding
- Build order
- Pres gathered
- Lifeform / weapon info
- RTs built / lost
- Hives / CCs built / lost
And later on information more along the lines of
- Pushes
- Turtles
- Engagements
- Map control
<!--coloro:#00FF00--><span style="color:#00FF00"><!--/coloro--><b>Machine Learning and NS2</b><!--colorc--></span><!--/colorc-->
The point of pulling out this information is to use to predict who is going to win (or how likely it is for a team to win) based on how the game evolves. I am planning on attacking this with a few different ML algorithms to see what I can find. Currently planned are:
- Kernelized Perceptron (just to see what I can get from an absurd amount of combinations of features)
- Decision Tree (to see what is "most important" in determining a game's outcome)
- Random Forest / Bagged Trees (to get more complex learners which are still decipherable)
<!--coloro:#FF0000--><span style="color:#FF0000"><!--/coloro--><b>tl;dr</b><!--colorc--></span><!--/colorc--> I'm making a tool to see if <insert common balance complaint here> is actually a problem.
Comments
<!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec-->- RTs built / lost
- Hives / CCs built / lost<!--QuoteEnd--></div><!--QuoteEEnd-->
You would need to include alien upgrade structure built / lost, as well as other marine structures, as that influences the economy of the team (tres loss + time loss).
Clogs and hydras are not of that importance and hard to judge, imho.
Clogs and hydras are not of that importance and hard to judge, imho.<!--QuoteEnd--></div><!--QuoteEEnd-->
I actually just ended up writing generic structures build/lost methods, so it can already do that! I'll keep in mind to look at them tho. Currently just going to file clogs / hydras under pres spent / lost.
Arga, laosh'RA, and somewhat my self have been working on a dynamic balance sampler. Basically It samples data from the NS2 source to create a pretty cool system of analyzation. Raw data and Basic tools (How long it takes to kill a hive with X and Y) are in the works, and hopefully a full build order maker will be in short order. But we could use some more hands, and some great ideas!
Anywho if you want my steam is <a href="http://steamcommunity.com/id/BurdockNS" target="_blank">http://steamcommunity.com/id/BurdockNS</a>
-Daniel
UPDATE:
Finally got some ML into this, and using round length, KDRs, res info, and initial build/upgrade times of various things, I am currently getting 80% accuracy with a perceptron. I'll update the top post at some point in the next couple days, and once I have a more finished / polished version I'll put out my source code for people to play with.