Visualisierung von “League of Legends“-Heldenstatistiken Alexander Bach, Martin Lange, Mathias Kahl, Tobias Tenbusch Freie Universität Berlin ABSTRACT Im PC-Spiel „League of Legends“ treten Spieler, die Helden steuern gegeneinander an. Wir haben in unserer Visualisierung untersucht, welche dieser Helden eine höhere Siegchance versprechen, leicht zu spielen sind, besonders häufig gewählt werden und mit welchem anderen Held sie ein erfolgversprechendes Team bilden. Für jede dieser Fragen haben wir eine individuelle Visualisierung umgesetzt. Mit diesen lassen sich die gestellten Fragen im Ansatz beantworten. Für eine genaue Analyse haben die Daten jedoch nicht ausgereicht. 1 5⋅∣H∣ N Dieser Wert entspricht anders ausgedrückt der Wahrscheinlichkeit, dass ein bestimmter Held (H) Teil eines beliebigen Teams war. Weiterhin kann berechnet werden wie erfolgreich ein Held ist, indem man einfach die Anzahl seiner Siege durch die Anzahl all seiner Spiele teilt. Für die Analyse von Popularität und Erfolg wurden zwei unterschiedliche Visualisierungen entwickelt. 3.1 Raster-Heatmap Die erste Visualisierung setzt sich zusammen aus einem Raster der Avatare aller Helden und einem Heatmap-Overlay, welche zusammen eine Übersicht über Popularität und den Erfolg aller Helden bieten sollen. DATEN Basis für unsere Visualisierung bilden 1.000.000 Spielerdatensätze. Ein Spielerdatensatz enthält Statistiken eines einzigen Spielers zu einem bestimmten Spiel. Da an jedem Spiel 10 Spieler teilnehmen, beschreiben diese 1.000.000 Datensätze somit 100.000 Spiele. Die Daten wurden uns freundlicherweise von den Betreibern der Seite www.LOLBase.net in Form einer SQL-Datei zur Verfügung gestellt. LOLBase bietet Spielern die Möglichkeit ihre Spiel-Log-Dateien selbst hochzuladen und zeigt anhand dieser Dateien unterschiedliche Statistiken zu jedem Spieler an. Jeder Datensatz enthält u.a. folgende für unsere Betrachtungen relevanten Informationen: Spiel-ID Spieler-ID Sieg oder Niederlage Team (A oder B) Anzahl Tötungen Anzahl Tode Anzahl Unterstützungen Datum des Spiels Die Daten wurden für jede Visualisierung in passender Form verarbeitet und als CSV-Datei exportiert, sodass sie von der Processing-Anwendung einfach geladen werden können und unabhängig von einem SQL Server sind. 3 P H = EINFÜHRUNG League of Legends (kurz LoL) ist ein Computerspiel in dem zehn Spieler in Teams bestehend aus je 5 Personen gegeneinander antreten. Jeder dieser Spieler wählt zu Beginn eines Spiels einen Helden aus. Pro Team dürfen dabei keine Helden doppelt gewählt werden. In dem Spiel, das dann folgt, versucht jedes Team ein bestimmtes Gebäude des anderen Teams zu zerstören. Um das Ziel zu erreichen, müssen die Spieler vor allem im Team spielen. Alleingänge sind nur selten dem Sieg zuträglich. 2 allen Teams, d.h. dessen Popularität, kann daher wie folgt berechnet werden, wobei |H| der Häufigkeit entspricht, also wie oft ein Held (H) tatsächlich gewählt wurde: BETRACHTUNG ERFOLG VON POPULARITÄT UND Ein interessante Information über einzelne Helden ist deren Popularität. Die Frage ist also wie oft ein einzelner Held gewählt wird. Jedes Spiel in League of Legends besteht wie zuvor erwähnt aus zwei Teams, welche aus jeweils 5 einzigartigen Helden bestehen. Pro Team kann ein einziger Held nur einmal vorkommen, aber pro Spiel zwei mal (ein mal pro Team). Da an jedem Spiel 10 Spieler teilnehmen, kann somit bei einer Anzahl von N Spielen ein Held maximal (2*N)/10 mal vorkommen, und zwar genau dann, wenn jedes Team den Helden ein mal enthielt. Der Anteil eines Helden an Abbildung 1 – Raster mit Heatmap-Overlay 3.1.1 Avatar-Raster Als Grundlage für diese Visualisierung wurden zunächst einfach die Bilder aller Helden in einem Raster angeordnet. Die Darstellung der Helden in Form eines Bildrasters bietet einerseits einen Gesamtüberblick über alle Helden in einer einzigen Grafik und macht sich andererseits die Fähigkeit des Menschen zu nutze, Gesichter schnell zu erkennen. Diese Darstellung ist somit für den Betrachter leichter zu erfassen als eine bloße Aufreihung der Namen der Helden. Das Raster wird nachfolgend erweitert, indem die einzelnen Zellen des Rasters durch heldenspezifische Informationen ergänzt werden. Dabei gäbe es potentiell mehrere Möglichkeiten. Beispielsweise könnten die Bilder zu Balken eines 3D-Balkendiagramms werden. Dies hätte jedoch den Nachteil, dass je nach Verteilung der darzustellenden Werte Balken sich gegenseitig verdecken. Die naheliegendste Art Informationen zum Raster hinzuzufügen ist Werte einfach in die entsprechenden Zellen zu schreiben. Daher wurden im nächsten Schritt die Popularitätsbzw. Erfolgswerte (interaktiv auswählbar) als Prozentwerte in die Zellen eingetragen. Durch die Verwendung der AvatarBilder können die Einzelwerte für sich vom Betrachter schnell und einfach den unterschiedlichen Helden zugeordnet werden. Zwar ergibt sich somit eine Übersicht aller Helden und den dazugehörigen darzustellenden Informationen, jedoch sind Zahlenwerte in dieser Anzahl nicht auf ein Mal zu erfassen und somit schwer für den Benutzer zu vergleichen. Um die Vergleichbarkeit und das leichtere Erfassen der Informationen zu ermöglichen, wurde im nächsten Schritt das Raster um ein Overlay erweitert. 3.1.2 Heatmap-Overlay Mit einer Art Heatmap können sowohl Popularität als auch Erfolg intuitiv visualisiert werden. Jedes Bild wird dabei in Abhängigkeit des Zahlenwertes eingefärbt. Dazu wurden Minimum, Durchschnitt und Maximum des Wertebereiches berechnet und auf eine nicht-stetige Farbskala abgebildet. Werte, die sich mit einer Abweichung von max. 10% um den Mittelwert bewegen werden grau dargestellt, was verdeutlichen soll, dass der Wert „normal“, d.h. durchschnittlich ist. Abbildung 2 – Beispiel der Farbskala Größere positive Abweichungen werden durch grüne, und größere negative Abweichungen durch blaue Einfärbungen betont. Dabei wird die Intensität der Farbe linear mit der Höhe der Abweichung skaliert. Somit werden besonders populäre bzw. erfolgreiche Helden mit einem sehr intensiven Grün hervorgehoben und besonders unbeliebte bzw. unerfolgreiche Helden mit intensivem Blau. Die Farbwahl wurde hauptsächlich darauf ausgerichtet, dass die beiden Farben in allen Intensitätsstufen sowohl von einander als auch von der Mittelwertfarbe Grau leicht unterschieden werden können. Für diesen Zweck werden die ursprünglich farbigen Avatare auch nur in Graustufen angezeigt, da jene Farben sonst mit der Einfärbung in Konflikt stehen würden. Diese farbliche Markierung erlaubt es ohne die diskreten Zahlenwerte direkt in ihrer Gesamtheit erfassen zu müssen, die Unterschiede zwischen Popularität bzw. Erfolg der einzelnen Helden leicht zu verstehen und vor allem zu überblicken. 3.1.3 Anordnung des Rasters Zusätzlich zu den Zahlenwerten und den Einfärbungen, welche die Popularität bzw. den Erfolg darstellen, wurde über die Anordnung der Bilder im Raster versucht weitere Informationen einzubetten. Für diesen Zweck wurden die Helden im Raster nach einem bestimmten Schema eingeteilt. Die Helden im Spiel haben alle unterschiedliche Eigenschaften und können grob in 4 Klassen eingeteilt werden: • • • • Tank – Viele Lebenspunkte, weniger Schaden Mage – Wenig Lebenspunkte, viel magischer Schaden Carry – wenig Lebenspunkte, viel normaler Schaden Support – wenig Leben und Schaden, dafür Heil- und Schutzfertigkeiten Um etwaige Korrelationen zwischen den Eigenschaften von Helden und deren Popularität und Erfolg erkennbar zu machen, wurden die Helden daher entsprechend ihrer Klassen grob im Raster angeordnet, sodass die Positionen ungefähr mit den Klassen korrellieren. D.h. je weiter oben links ein Held ist, desto eher gehört dieser der Klasse „Tank“ an; je weiter unten rechts, desto eher der Klasse „Support“, und so weiter. Die Einteilung ist dabei lediglich eine Approximation, da die Grenzen zwischen den Klassen nicht exakt definiert sind. 3.1.4 Auswertung Im Zusammenspiel von Raster, dessen Anordnung und Heatmap ergibt sich eine Visualisierung welche mehrschichtig Informationen über die Popularität und den Erfolg der unterschiedlichen Helden bietet. Einerseits werden die Werte für jeden Helden einzeln angezeigt und durch die farbliche Markierung untereinander vergleichbar gemacht. Andererseits werden gleichzeitig Informationen auf einer höheren Ebene über die Klassen der Helden visualisiert. In der finalen Visualisierung lässt sich beispielsweise (für den gesamten betrachteten Zeitraum) erkennen, dass „Tanks“ und „Supports“ eher unbeliebt, und „Carries“ beliebter sind. Weiterhin ist zu erkennen, dass gerade die eher unbeliebten „Support“-Helden die erfolgreichsten sind. Die Visualisierung erfüllt unserer Meinung nach ihren Zweck gut. Die Einfärbungen erlauben keine exakte Unterscheidung der Werte, aber ermöglichen es dem Betrachter schnell grobe Trends zu erkennen. 3.2 Linechart Die zweite Visualisierung stellt auch die Popularität eines Helden dar, aber in diesem Fall in Abhängigkeit von seinen Veränderungen. In Abständen von zwei bis vier Wochen verändern die Entwickler die Stärke eine Helden durch Anpassungen der verschiedensten Aspekte, wie Schaden einer Fähigkeit oder Leben des Helden. Dadurch soll die Stärke der Helden möglichst angeglichen werden. Dieser Prozess dauert noch an und wird, solange neue Helden und andere Spielelemente dem Spiel hinzugefügt werden, nicht aufhören. 3.2.1 Zugrundeliegende Fragestellung Aus diesem Grund soll untersucht werden, inwiefern eine Änderung an einem Held seine Popularität erhöht oder abschwächt. Dies soll als zeitlicher Ablauf dargestellt werden. 3.2.2 Ansichtsentwicklung Um die Frage zu beantworten wurde ein Linechart gewählt, da sich dieses gut zum Darstellen eines zeitlichen Verlaufes eignet. Die Achsen des Charts ergeben sich aus der Fragestellung, Y – Popularität eines Heldens und X – Änderungen an einem Held. Es sollten mehrere Helden auswählbar sein. Alle Änderungen darzustellen würde unübersichtlich werden, daher wurden an der X – Achse nur die Änderungsnummer abgetragen. Die Änderungen werden dann auf dem Chart des jeweiligen Helden mit einem PopUp bei Mausover angezeigt. zusätzliche Information in diesem Fall birgt wurde er ausgelassen. Der maximale Ausschlag auf dem Graph gibt Auskunft darüber wie viel Potential in einem Helden möglicherweise steckt. Die Länge der Box, welche durch die Standardabweichung und den Mittelwert definiert wird, gibt Auskunft darüber wie schwer es für einen durchschnittlichen Spieler ist mit diesem spezifischen Helden umzugehen. Ist die Box besonders lang bzw. breit, so ist davon auszugehen, das der Held nur mit viel Übung gut zu beherrschen ist. Außerdem ist es wahrscheinlich relativ leicht, Fehler zu machen. Ist die Box dagegen eher klein, so kann geschlossen werden, dass es relativ wenig Spielraum gibt und der Held viele Arten besitzt, auf die er gespielt werden kann. Der Mittelwert, welcher auch die Mitte der Box kennzeichnet, gibt Auskunft über den Erfolg eines durchschnittlichen Spielers mit diesem Helden. Abbildung 3 – PopUp mit Änderungen 3.2.3 Einschätzung Die Popularität eines Helden ändert sich deutlich über die Zeit. Oft ist aber keine direkte Ahängigkeit zu einer Änderung zu erkennen. 4 BETRACHTUNG DER SCHWIERIGKEIT 4.1 Zugrunde liegende Fragestellung Bei der großen Auswahl an Helden die das Spiel bietet stellte sich die Frage, welche der Helden einfacher und welche schwerer zu spielen sind. Es gibt zwar bereits eine solche Einschätzung auf i allerdings ist diese zum einen erfahrungsgemäß inakkurat und zum anderen bietet sie keine Möglichkeit den Schwierigkeitsgrad eines einzelnen Helden zu quantifizieren. Um dieses Problem anzugehen wurde diese Ansicht Teil des Projektes. Es gilt dabei zu beachten, das der hier genutzte Ansatz bei weitem nicht alle möglichen Daten berücksichtigt. 4.2 Ansichtsentwicklung Ursprünglich sollte diese Visualisierung eine andere Fragestellung beantworten, nämlich die häufigsten und erfolgreichsten Teamkombinationen. Dieser Ansatz musste jedoch aufgrund mangelnder Daten verworfen werden. Was blieb war die Art der Visualisierung. Zunächst sollte die Schwierigkeit bzw. der Erfolg eines Helden mit folgender Formel berechnet werden: KillsAssists Deaths Da diese Formel es jedoch alle schlechten Ergebnisse auf 0 zusammenfasst und es nicht ermöglicht besonders gute Ergebnisse (Deaths = 0) mit einzubeziehen wurde auch sie angepasst. Die Formel welche im Programm verwendet wird ist die folgende: Kills Assists−Deaths Damit werden besonders gute Ergebnisse weit oben bzw. vorne eingeordnet und alle schlechten Ergebnisse werden nun ebenfalls auf der Skala sichtbar und sind nicht mehr auf 0 gruppiert. Initial sollte zudem ein Box-Chart zur Visualisierung genutzt werden, da jedoch der Median keine (wertvolle) Abbildung 4 – Diffcultometer 4.3 Einschätzung Die ursprüngliche Anforderung eine quantifizierbare Art und Weise für eine Aussage über den Schwierigkeitsgrad eines einzelnen Helden konnte zwar gefunden werden, jedoch ist die Aussagekraft nur begrenzt. Da es sich um ein Teamspiel handelt, ist zudem die Menge der Kills/Assists/Deaths zunächst unerheblich, da diese nur sehr indirekt (wenn überhaupt) eine Aussage über die Kooperation innerhalb des Teams ermöglicht. Es ist durchaus möglich ein Spiel zu gewinnen, ohne das einer der Werte jemals größer als 0 wird. Das wäre ein sehr interessanter Fall, welcher aber keinerlei verwertbare Daten für diese Art der Datenaufbereitung bieten würde. Außerdem wurde bei dieser Visualisierung komplett ignoriert, ob der Spieler letzten Endes siegreich war. Ein Einbezug dieser einfachen Variable wäre eine Voraussetzung um herausfinden zu können, ob eine gute Zusammenarbeit vorliegt oder nicht. Des Weiteren besteht die Möglichkeit die Daten mit dem entsprechenden Elo-Rating ii der Spieler eines Matches zu gewichten. Da wir jedoch nur über Daten von ungewerteten Spielen verfügen, und das Rating der Spieler dabei geheim bleibt, konnten wir diese Gewichtung leider nicht vornehmen. 5 BETRACHTUNG DER KORRELATIONEN 5.1 Zugrundeliegende Fragestellung Bei der Entwicklung der Atomansicht haben zwei interessante Fragen den Ursprung gebildet. 1. Ich spiele gerne Champion A, welche Champions könnten mir auch gefallen? In League of Legends gibt es Einflusspunkte, welche eine Währung im Spiel darstellen. Anfangs kann man noch nicht jeden Champion spielen, sondern muss ihn sich erst mit Einflusspunkten kaufen. Da man diese sich durch regelmäßiges Spielen hart erarbeitet, möchte man es dann natürlich nicht in einen Helden investieren, welcher einem keinen Spaß macht. Daher wäre eine Übersicht interessant, welche Champions so in Verbindung setzt, dass ich Eingebungen gewinnen kann, welchen Helden ich mir genauer anschauen sollte. 2. Mein Mitspieler hat Champion A gewählt, welcher Champion ergänzt sich gut mit ihm? Bei dem Spiel gibt es zusätzlich zu dem 5er Team noch kleinere Unterteams. Dadurch das drei Wege die Kontrahenten verbinden, teilt sich das Team meist in zwei Zweierteams und ein Einerteam auf. Um nun eine besonders Schlagkräftige Kombination auf einem der Wege zu haben, wäre eine unterstützende Visualisierung praktisch. So könnte man mit seinem Partner ein besonders starkes Duo suchen, oder wenn der andere schon einen Helden gewählt hat, einen Champion nehmen, welcher sich gut mit ihm ergänzt. 5.2 Ansichtsentwicklung Bei beiden Fragestellungen ist die Beziehung von jedem Champion zu jedem anderen Champion interessant. Bei 1. ist es ein Ähnlichkeitsmaß (bzgl. des Spielstils) und bei 2. ein Synergiemaß, also wie gut die beiden Champions als Subteam bestehen können. Daher ist eine Ansicht vonnöten gewesen, welche eine komplette Vernetzung aller Helden erzeugt. Des Weiteren steht bei beiden Ansichten ein Champion im Mittelpunkt, welchen man in diesem Moment mit den Anderen vergleicht. Diese Bedingungen konnten wir in der Atomansicht umsetzen. Dort steht ein Held fest im Mittelpunkt und zwischen den einzelnen Atomen wirken Kräfte, welche sich aus dem verwendeten Maß ergeben. Der Abstand der anderen Helden zum Mittelpunkt gibt deren Anziehungskraft gegenüber dem Mittelpunkt wieder. Da dies in diesem Moment als zentrales Augenmerk gilt, kann der Abstand durch andere Kräfte nicht beeinflusst werden. Die Kräfte der anderen Atome verteilen die Helden kreisförmig um die Mitte herum, wobei Champions mit hoher Anziehungskraft näher aneinander liegen, als die Anderen. Durch diese Art der Darstellung kann sowohl das gesamte Netz dargestellt werden, wobei das zentrale Augenmerk auf dem gewählten Champion liegt und diesbezüglichen Informationen detaillierter abgelesen werden können. 5.3 Algorithmus Wir haben uns gegen eine zweidimensionale Kraftstrukur entschieden, da die Atome sich meist nur gleichmäßig geordnet haben und keine Clusterbildung erzeugt wurde. Dadurch konnten die Informationen nicht ordentlich transportiert werden. Um einen gesicherten Informationsgehalt zu gewährleisten, haben wir Polarkoordinaten genutzt, wobei wir den Abstand mit Hilfe von den exakten Werten berechnet haben. Damit kann durch Kräftegleichgewichte kein Zustand enstehen in dem inkorrekte Daten ablesbar wären. Im Gegensatz dazu wird die Kräftesimulation aller Atome nur über den Winkel berechnet. Dabei kann es auch passieren, dass ein Atom zwische zwei anderen Atomen die sich anziehen eingekeilt wird, wodurch die dort abgelesenen Informationen nicht immer vollständig korrekt sind. Direkt eine optimale Verteilung zu berechnen wäre allerdings zu aufwendig bzw. nicht möglich gewesen. Die Simulation approximiert die Kräfteverteilung allerdings gut. Damit die Atome nicht dauerhaft schwingen und ihre Position verändern, haben wir noch eine Abkühlung des Systems eingebaut, welche die wirkenden Kräfte langsam abschwächt und Kernabstoßungskräfte induziert, welche die Atome auseinanderschiebt damit es zu keinen Überlappungen kommt. 5.4 Einschätzung Insgesamt finden wir die Ansicht hilfreich und nützlich. Allerdings sind die zugrundeliegenden Daten nicht hundertprozentig für die Fragestellungen geeignet, wodurch es zu unerwarteten Ergebnissen kommt. So verfälschen zum Beispiel die Spieler die gerne sehr unterschiedliche Helden spielen die Ergebnisse für die erste Fragestellung enorm. Ein schwerwiegender negativer Punkt ist, dass durch die Kräftesimulation, vor allem bei vielen Atomen, eine Information dargeboten wird, welche nicht korrekt ist. Es kommt dort sehr häufig dazu, dass die Atome sich zwar in einem lokalen Energieminimum befinden, aber das globale Minimum nicht erreicht wird. 6 SCHLUSS Alle Fragen konnten durch die Visualisierungen im Ansatz beantwortet werden. Für eine genauere Analyse fehlt es jedoch an Daten was die Anzahl und den Zeitraum betrifft. Sollte das Programm weiter entwickelt werden, so wäre es sinnvoll die Datenverarbeitung zurück auf SQL umzustellen. Das würde natürlich einen öffentlich verfügbaren SQL-Server erfordern, böte dafür aber auch die Möglichkeit auf Live-Daten bzw. automatisiert mit aktuellen Daten zu Arbeiten. REFERENZEN i ii http://euw.leagueoflegends.com/champions The Rating of Chessplayers, Past and Present (1978), Arco. ISBN 0-668-04721-6