This repository contains the source code of an in-progress master research project (see preliminary results). Despite the importance of competitive games in the world, such as the multiplayer online battle arena (MOBA) genre, there is still a lack of tools and researches based on behavior analysis to help players improve their strategies and skills. Therefore, to reduce this gap the project aims to analyze and characterize players' behavior in relation to performance using machine learning algorithms in the context of the most popular MOBA, League of Legends (LoL).
- Project author: Fernando Felix do Nascimento Junior
- Professor adviser: Leandro Balby Marinho
- Master degree Program in Computer Science of the Federal University of Campina Grande
The project uses a set of historical matches provided by Riot Games, LoL developer, from its application public interface (API). A match history contains data such as game mode, game type and identification number. It also contains basic information statistics of each participant in the match. The documentation of all statistics can be found in the API Documentation.
The project uses two programming languages: Python to raw and parse the data and R to analyze it. Following some basic steps to reproduce or replicate the preliminary results:
Raw JSON matches
- Configure the Riot API Key in
src/python/config.py
- Change current working directory to
src/python/
through the terminal - Run
pip install -r requeriments.txt
to install Python dependencies - Run
python raw.py
to raw the data - All rawed matches can be found in
src/dump/
Parse rawed matches to CSV
- Change current working directory to
src/python/
through the terminal - Run
python parse.py
to parse all JSON mathces to a CSV file - The created CSV file can be found in
src/data/
Analyze the parsed data
- Open
src/R/analysis.R
- In
src/R/analysis.R
, editdata = read.csv('../data/data.csv')
to read the CSV file created previously - Change current working directory to
src/R/
through the terminal - Install all dependencies in
requirements.R
- Run
Rscript analysis.R
to build the analysis - The analysis output can be found in
src/output
Edit src/python/config.py
to configure other settings (statistic attributes to parse, dump directory, etc.).
C. C. Aggarwal, C. K. Reddy. "Data Clustering - Algorithms and Applications", CRC Press, 2014
A. Drachen, C. Thurau, J. Togelius, G. Yannakakis, C. Bauckage, "Skill-based differences in spatio-temporal team behaviour in Defence of The Ancients 2 (DotA 2)", Games Media Entertainment (GEM), IEEE, pp. 1-8, 2014.
M. S. El-Nasr, A. Drachen, A. Canossa. "Game Analytics - Maximizing the Value of Player Data", Springer-Verlag, 2013.
W. H. Kruskal and W. A. Wallis, "Use of ranks in one-criterion variance analysis", Journal of the American Statistical Association 47. 1952.
R. Lowry, "Concepts & applications of inferential statistics", 2012. [Online]. http://vassarstats.net/textbook/ch11a.html
H. Y. Ong, S. Deolalikar, M. V. Peng, "Player behavior and optimal team composition in online multiplayer games", ArXiv preprint arXiv:1503.02230v1 [cs.SI], 2015. http://arxiv.org/abs/1503.02230
F. Rioult, J. Mtivieita, B. Helleub, N. Scellesc, C. Durandb, "Mining tracks of competitive video games", AASRI Procedia, Vol. 8, pp. 82-87, 2014.
S. Salvador and P. CHAN, "Determining the number of clusters/segments in hierarchical clustering/segmentation algorithms", Proceedings of the 16th IEEE International Conference on Tools with Artificial Intelligence, pp. 576-584, 2004.
Superdata Research. "eSports market brief 2015". http://www.superdataresearch.com
P. Yang, B. Harrison, D. L. Roberts, "Identifying patterns in combat that are predictive of success in MOBA games", Proceedings of Foundations of Digital Games, 2014.
M. J. Zaki and W. Meira Junior, "Data mining and analysis: Fundamental concepts and algorithms", Cambridge University Press, 2014.
See CONTRIBUTING.
The MIT License.
Copyright (c) 2016 Fernando Felix do Nascimento Junior.