投稿日: Nov 02, 2015 8:32:50 AM
Greetings everyone.
Basically I am requesting this discussion page so that I can receive feedback easier and faster. I hope that everyone in the lab can help me as I am really new in doing research and my knowledge might not be sufficient enough.
My research title is
"Identifying Better Strategies in Online Games with Machine Learning Methods"
What kind of "Online Game"?
The genre is Multiplayer Online Battle Arena (MOBA), which has characteristics:
- Played between two teams (usually of five)
- Each team has their own territorial and building
- Objective is to destroy the opposing team's main building
- Each player controls a main character (hero/champion)
Examples of MOBA game: Dota 2, League of Legends, Heroes of Newerth, Heroes of the Storm
Why MOBA?
- It is the most popular genre (by Twitch viewer)
- It is played competitively (also known as electronic sports/e-sports)
- E-sports competitions give out a great sum of prize
I choose Dota 2. Why?
- I play Dota 2 so I understand it
- Dataset is available online, fetched by 3rd party from Dota 2 replay files (datdota.com)
- Most rewarding competition (million dollars prizepool)
How does the competitive Dota 2 work?
- Some heroes might not available due to balance issues
- There is a "Drafting" session
- Metagame (drafting trend) changes according to the "patch" being played
What is a "Patch"?
A time range when games are played. After some competitive games played in that time range, usually there will be changes to the skill or status of heroes that seemed "overpowered". Then the current patch ends and the new patch starts, usually resulting in shifting metagame (trend).
What is "Drafting"?
"Drafting is where two captains will select what they want to play with. What heroes are selected and what heroes are taken out." - Toby "TobiWan" Dawson, Professional Dota 2 Commentator @ Free 2 Play Documentary Movie
Basically in Dota 2, they play "Captain's Mode" game mode. A representative of each time (captain) can select 5 heroes to be banned (cannot be used) and another 5 heroes to be used by the team. Hero selections are unique, which means it cannot be picked or banned again after being picked or banned previously. This results to 20 heroes being selected per game.
Drafting is also present in the competitive game mode of other MOBA games, but the number of heroes picked or banned may differ.
Then what am I gonna do?
Analyze drafting pattern within a patch to predict the output of a draft of a game.
Why by drafting?
Professionals emphasize that drafting is one of the most important things in Dota 2, or MOBA game in general.
"If you have a losing draft, you will lose the game. This is what I think of Dota. So it's really a lot on drafting." - Benedict "hyhy" Han Lim Yong, Former Professional Dota 2 Player @ Free 2 Play Documentary Movie
"You really have to spend a lot of time thinking of the draft. The draft actually decides a lot of the game itself." - Benedict "hyhy" Han Lim Yong, Former Professional Dota 2 Player @ Free 2 Play Documentary Movie
What data do we have from drafting a.k.a data needed for input?
- Heroes selected in order (from 1 to 20)
- The side of the team (Radiant or Dire)
- The starting team (Radiant or Dire)
The input example is somewhere on my localhost laptop, but the pre-preprocessed data is attached. Basically I am importing those data into SQL and do SQL queries to get desired input.
How is the desired output?
- WIN/LOSS (WIN means the starting team won, LOSS means the starting team lost, and the other team won)
My planned input:
- All games played in a patch
- All "Premium Tournament" games played in a patch
-- Premium Tournament is defined by "Portion of ticket purchases goes to the prizepool", usually resulting in grand prizepool and lot of top-tier teams playing in it
-- Premium Tournament list (maybe) will be taken manually
- All games played in a patch by a competitive team
-- Making the scope smaller, so it could be more accurate, because a team tends to have their own specialties
-- Chosen team should not have too long winning/losing streak in the patch
There will be two test for each type of input: one from patch 6.83 (around 2700+ matches total) and one from patch 6.84 (around 1600+ matches total). All data sets are taken from datdota.com with permission.
===============
Things that I still don't know:
- Is it possible?
- What kind of classifiers should be tried? Each input can be tested by multiple classifiers right? (I am only familiar with Decision Tree - j48? - and Naive Bayes so far. I also learned n-fold cross validations.)
- What tools/software do I need? (I only know Weka so far.)
- Any suggestions?
===============
Any feedback is appreciated. Thank you!
Regards,
Taufik Wiradarmo (Piku)
===============
Notes:
- "Free 2 Play" is a documentary film about The International 1 (the "World Cup" of Dota 2 held in 2011) made by Valve, the developer of Dota 2. Movie is available for free in Steam and Youtube (https://www.youtube.com/watch?v=UjZYMI1zB9s).
- Files with "cups" title contain data regarding tournament name and game winner, while files with "drafts" contain data regarding the draft only for each game.