Moba Analyse

Projektdauer:  Oktober 2013 – März 2015
Programmiersprachen:  Python, Excel VB, MS Access DB, SQL
Projektstatus:  beendet

Hintergrund

Als großer Fan des Moba „Defense of the Ancients 2“ (kurz Dota 2) war ich von Anfang an fasziniert von der nicht enden wollenden Lernkurve, die es einem ermöglicht sich stehts zu verbessern. Dank der Internetseite dotabuff, die eine Schnittstelle zum Spiel nutzt, gab es bereits umfangreiches Zahlenmaterial, samt erster Auswertungen.

Dieses Zahlenmaterial von der Seite zu sammeln, zu bündeln und durch neue Kombinationen tiefere Erkenntnisse zu gewinnen war und ist das primäre Ziel dieses kleinen Projekts. Für das Sammeln der Daten habe ich ein kleines Python Script (Python Version 2.7.9) erstellt, welches in der Lage ist die Spieler-Profile und die dazugehörigen Daten mehrer Teilnehmer zeitgleich abzugreifen.

 

Funktionsumfang des Scripts:

python script

  In Version 1.0 des Projekts wurden die Daten in einer Excel Datei aufbereitet. Doch schnell wuchs der Datenbestand und die dahinterliegenden Berechnungen auf ein Niveau, welches einen Wechsel zu einer Datenbank Anwendung notwendig machte.

Excel Übersicht 1 Excel Übersicht 2 Excel Übersicht 3

(Aufs Bild klicken für Vollansicht)

Version 2.0

Mit dem Wechsel auf Microsoft Access 2013 wurde auch das Python Script angepasst, so das die gesammelten Daten in zwei separaten CSV Dateien gespeichert werden. Hierbei enthält Datei 1 allgemeine Informationen zu den einzelnen Partien, während die zweite Datei die dazugehörigen Informationen beinhaltet. Das Script achtet beim auslesen der Website das für jede Partie nur ein Datensatz erzeugt wird, unabhängig davon wieviele der zu Analisierenden Spieler diese Partie bestritten haben.

Um die Daten möglichst bequem und formatiert von der CSV Datei in Access zu importieren habe ich zusätzlich ein kleines VB Makro erstellt das die gängigen Arbeitsschritte ausführt.

Sicherlich wäre es auch möglich gewesen dies im Python Script zu verankern, allerdings empfand ich diese Version der Lösung als bequemer, da es in Dota doch recht regelmäßig Änderungen gibt. (dota2 Versions history)

 

Durch den Umstieg auf Access bzw. SQL ist es seither möglich kombinierte Abfragen mit vielfachen Bedingungen abzufragen. Bei einem aktuellen Stand von über 36.000 Datensätzen ist die Performance Steigerung im Vergleich zu Excel deutlich zu spüren.

mysql-request

 

Seit Anfang des Jahres 2015 ist erfreulicherweise auch das Angebot von dotabuff.com für die nicht zahlenden Besucher deutlich erhöht worden. Dies und der Fakt das dotabuff einen Mechanismus eingebaut hat, der die Abfrage mit meinem Script zu verhindern sucht, haben mich dazu bewegt das Projekt an dieser Stelle nicht weiter zu führen.

Ein letztes Update des Python Script sorgt, durch die Veränderung der User Agent Signatur dafür das es weiterhin möglich ist DAten von dotabuff.com zu erhalten. Allerdings wurde eine weitere Hürde installiert, die es mir nicht erlaubt, wie ursprünglich mehrere Instanzen gleichzeitig abzufragen. Zudem muss das Script nun mehrfach gestartet werden, bis alle Daten eingeholt worden sind.

Zur Demonstration stelle ich auf der Seite den extrahierten Datenbestand mit all seinen aktuell 36.000 Datensätzen zur Verfügung. Über neue Erkenntnisse aus diesen DAtensätze würde ich mich sehr freuen.

Darüber hinaus biete ich auch gerne die beschriebenen Scripte und SQL Abfragen in Aussicht.

Permanentlink zu diesem Beitrag: https://www.hofa.biz/?p=48