DotA2 Spatio-Temporal Game Analysis

June 8, 2017 | Autor: Taha Kachwala | Categoria: Game Analysis, Spatio Temporal Analysis, Data Visualization, DOTA 2, D3.JS
Share Embed


Descrição do Produto

DotA2 Spatio­Temporal Game Analysis    DotA2  is  one  of  the  most  played  online  digital  games  in  the  world.  In  this  game  2  teams  (Radiant  and  Dire)  of  5  players  each  fight  against  each  other  in  arena  environments with using  tactical  combats  to  win  against  the  other  team.  The  main  goal  of  the  game  is  to  destroy  the  Ancient  ​ that  belongs  to  the  opposite  team.  Apart  from  that  there   are  a lot of strategies involved  in  winning  the  game.  The  company  managing  DotA  2,  Valve,  has  developed  several  ways  for  players  to  access  data  from  the  game.  The  player  community  can  access  replay  files  from  games  of  their  own  as  well  as  the  tournaments  through  a   variety  of  websites.  Valve  also   provides  an  API  to   directly access the data.  Many tools have also been developed for extracting  metrics from replay files.    However,  very  few  of  these  do  spatio­temporal  aspects  of   player  behaviour.  I  found  it  to  be  an  interesting  area  to  work  with given the importance of positioning and timely deployed strategy in  the game. The aim of this project is to visualize and analyse team behaviour. There are mainly 4  skill  tiers  as  identified  by  the  DotA  2  community  i.e  Normal,  High,  Very  High and Pro tiers. This  project will visualize 3 main aspects of spatio­temporal analysis.  1. The  moving  Trajectories  (Live  Maps)  of players in different tiers at different game  times.  An  additional  filter  for   sorting   the  teams  based  on  Win/Lose  or  Radiant/Dire can be seen.  2. The  Heat  Maps  of  players   during  a  particular  interval  in  the  game.  This also can  be sorted as Win/Lose or Radiant/Dire  3. The  average  distance  between  the  players  of  each  tier  (Pro/Very  High/High/Normal) filtered with Win Lose and are visualized using a Box Plot.    The sample live demo is available on: http://codetaha.github.io/Dota­Analysis/web/    The  dataset  includes  information  on  the  positioning of team members as a function of time. The  dataset  contains  the  data  of  200  games  (50  in  each  tier).  Below  is  a  very  small  sample  of  the  dataset, where   team: 0/1 (Radiant/Dire),   x,y: Player coordinates  match: Unique Match Id  won: 0/1 (Lose/Win)  tsync:  time  is   seconds  starts  from  0  till  the  end  of  the  game.  The  used  time  variable  in  the  visualization  tier: Type of tier  t,tstd,tper: Different types of time parameters which are not used for this visualization.    [{"team":0,"t":196833,"x":9,"y":7,"match":621041235,"won":0,"tstd":0,"tsync":0,"tper":0,"tier":"\"Normal\""},{"team":0,"t": 197600,"x":33,"y":31,"match":621041235,"won":0,"tstd":767,"tsync":0,"tper":0,"tier":"\"Normal\""},{"team":1,"t":197366, "x":61,"y":67,"match":621041235,"won":1,"tstd":533,"tsync":0,"tper":0,"tier":"\"Normal\""},..] 

 

From  the  above  dataset,  the  first  2  types  of  charts  are  created  i.e  Live  Maps  and  Heatmaps.   Before  I  start  explaining  these  visualization,   I  would  like  to  explain   the  initial  setup.  Figure  1  shows   the  initial  page.  On   the  top there is a filter menu where a user can select the type of map  (Live/Heat),  coloring  by  Team  or  Win/Lose  and  a  tsync  time­interval  that  can  go  from  0  to  somewhere around 4000 seconds by which usually the game ends. 

  Figure 1:​  Initial Screen 

The 4 blocks contains the map which is generated using D3.js. The map was rendered using  BitMap data available. The grass is greener on the radiant team side, while the darker one is  Dire team side. The yellow spots are the lane shops while the purple ones are the secret shops  where players can buy items and upgrade themselves. The larger Orange spot on the Dire side 

is a place for a neutral creep named Roshan. Players of both the teams try to kill this creep to  gain bonuses. Roshan keeps on respawning after being killed. There is a river in between and  three lanes namely toplane, middlelane and bottomlane which are the main paths. There is also  jungle in between with smaller paths as seen in the maps.      1. Live Maps:   Here  we   can  see  a  moving  trajectories  of  the  players.  On  every  tier  map  there  are  500  (50  games  *  10)  moving  dots  colored  by  either  Win/Lose  or  based  on  teams.  In  total  this  visualization  simulates  the  movements  of  4000  players  in  a  time  interval.   As  humans  we  are  really  good  at  identifying  patterns  and  the  differences  between  the  strategies  of  every  tier  at  a  time  interval  can  be  spotted  by  such  visualization.  ​ Figure  2  ​ shows  the  simulation  of  first  20  seconds.  It  can  be  easily  spotted  the  Pro  tier  never  uses  the middle lane in the beginning while  on the contrary the Normal ties has an equal distribution on all the three lanes. 

  Figure 2: ​ Live Maps 

A live video has been posted on ​ https://vimeo.com/149885443   

2. Heat Maps:  Heat  Maps shows the spatial concentration of players  in specific time  intervals. They can  be  used  to  analyze  concentration  differences  between  different  tiers  as  well  as  those  of  teams  that  won  or  loss.  ​ Figure  3  is  a  heatmap  where  players  are  colored  by  Blue­Win  and  Red­Lose  for a time interval of 0­60 seconds. 

  Figure 3: ​ HeatMaps 

3. Box Plot:  Another  way  to  investigate  team  movement and teamwork behavior is to consider the distances  between  each  member  of  a  team.  The  goal  is   to  evaluate  the   degree  of  team  distribution  over  the  map  and  whether  it  is  related  to  the  skill  tier  and  win/loss  conditions.  Running  a  Map­Reduce  job  on  hadoop  returned the average distance of the team at every second of tsync 

parameter.  The  distance  between  two  player’s  of  the  team  was  calculated  using  the  ​ Euclidean  Distance​  formula to find distance between 2 points.    Finally  a  box  plot  was  generated which compares the distribution of average distances between  players  of  different  tiers  and  Win/Lose  for  a  given  time  interval.  ​ Figure  4  ​ shows  the boxplot for  an  interval   of  0­100.  The  interesting  thing  found  here  is  that  the  average  distance  between  the  winning  teams  are  generally  lower  than  that  of  the  losing  teams  in every tier except the Normal  tier.  For  the  Normal  tier  it's generally random as new players don't have strategies yet. The dots  beside  the  boxplots  show  the  distribution  of  players  and   the  outliers.  The  Pro  and  Very  High  tiers  have  players  usually  compact  having  not  a  single  outlier, while we can see a lot of dots on  the higher and lower ends of Normal tier. 

  Figure 4: ​ Boxplots 

 

Used Technologies:   All  the  visualizations  have  been  done  by  using  D3.js  and  HTML5  technologies.  The backend is  based  on  JAVA  and  data  queried  using  web  services.  The database used is MySql. The size  of  the  data  was  almost  2  GB  and  therefore  filtering  techniques  were  used.  The  limitation  is  that  browser  can  only  process  and  render  data  upto  a  certain  level  and  therefore  the  data  queried  should  not  have  an  interval  of  more  than  50  seconds for smooth transitions. The browser might  freeze depending on the processor speeds if higher interval of times are used.     All  the  code  except  the  data   has  been  published  on  github.  The  data  can  be   generated   by  the  user using replay files and Dotalys 2 tool.    References:  Drachen,  A.;  Yancey,  M.;  Maguire,  J.;  Chu,  D.;  Wang,  I.Y.;  Mahlmann,  T.;  Schubert,  M.;  Klabajan,  D.,  "Skill­based  differences  in  spatio­temporal  team  behaviour in defence of the Ancients 2  (DotA 2)," in Games  Media Entertainment  (GEM), 2014 IEEE , vol., no., pp.1­8, 22­24 Oct. 2014  doi: 10.1109/GEM.2014.7048109  URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7048109&isnumber=7047963    T. Mahlmann. (2014, March) Dotalys2. [Online]. Available: http://www.lighti.de/dotalys­2    Git : https://github.com/CodeTaha/Dota­Analysis    Sample Live Demo: ​ http://codetaha.github.io/Dota­Analysis/web/    Temporary Link of Full Demo(Might not work in Future): http://54.148.130.167/DOTA/       

 

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.