Allgemein

Moba Analyse

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


Multiplayer online battle arena (MOBA) ist ein Subgerne der Echtzeitstrategie-Videospielen entstand, bei dem jeder Spieler einen einzelnen Charakter steuert, normalerweise auf einer Karte in einer isometrischen Perspektive, als Teil eines Teams, das gegen ein anderes Team von Spielern antritt.

Das MOBA „Defense of the Ancients 2“ (kurz Dota 2) des Spieleentwicklers Valve zieht jeden Monat knapp 10 Millionen Spieler in seinen Bann. Durch stetige Änderungen der einzelnen Charaktere, Gegenstände sowie der Karte bleibt das Spiel auch nach mehr als 8 Jahren eine Herausforderung.

Unabhängige Webseiten wie dotabuff und opendota bieten ausführliche Statistiken in dem Sie statistische Rohdaten aus Milliarden von öffentlichen Spielen in verwertbare Informationen verwandeln und so Spielern die Chance geben ihr Spiel zu analysieren und zu verbessern.

Leider waren die Analyse Möglichkeiten von dotabuff 2013 noch recht eingeschränkt und opendota noch nicht existent. So das ich beschloss die Informationen meiner Matches von dotabuff zu extrahieren und lokal aufzubereiten.

Für das Sammeln der Daten kam ein kleines Python Script (Python Version 2.7.9) zum Einsatz, welches in der Lage war unter Angabe der Spieler Profile IDs die dazugehörigen Daten zu sammeln.

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.

Mit dem Wechsel zu Microsoft Access 2013 wurde auch das Python Script in Version 2.0 dementsprechend angepasst, dass die gesammelten Daten in zwei separaten CSV Dateien gespeichert wurden. Während Datei 1 eine Übersicht der Matches bot, lieferte Datei 2 detailierte Informationen über den Verlauf der einzelnen Spiele. Bevor die Informationen allerdings in MS Access eingelesen werden konnten, war es notwendig die CSV Dateien zu bereinigen. Dies übernahm ein VB Makro.

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

Seit Anfang des Jahres 2015 ist erfreulicherweise auch das Angebot von dotabuff.com für die nicht zahlenden Besucher deutlich erhöht worden. Welche viele meiner Abfragen obsolet machte. Darüber hinaus etablierte dotabuff einen Mechanismus, welcher Massenhafte (Script-)Abfragen zu verhindern sucht,

Opendota, welches ebenfalls bereits seit Ende 2014 verfügbar ist, bietet hingegen eine eigene API sowie eine kostenlose Nutzung. Was mich zur Idee brachte, das Thema noch einmal aufzugreifen und ein neues Python Script Version 3.0 zu erstellen.

Während das Webscrapping von dotabuff viel Schweiß und Tränen verursacht hat, war ein Abruf der benötigten Daten dank der opendota API in wenigen Zeilen Code möglich. Github Repo -> Link