Ich habe mir mal die Mühe gemacht, eine etwas größere Anzahl an Videospiele-Reviews (etwa 40.000) über mehrere Konsolen hinweg auszuwerten. Die Daten liegen als CSV-Datei vor und enthalten mehrere Spalten: Name des Spiels, Release-Datum des Spiels, Plattform, Bewertung.

Hier ein Auszug:

Baja: Edge of Control,"Sep 22, 2008",playstation-3,61
Asphalt: Urban GT,"Nov 17, 2004",ds,60
NCAA March Madness 08,"Dec 11, 2007",xbox-360,69
GripShift,"Dec 12, 2007",xbox-360,72
[...]

Manche Spiele haben keine Bewertung, diese sind trotzdem aufgelistet (mit leerem Bewertungseintrag).

Wie viele Spiele erschienen unter welcher Plattform

In der Hoffnung, dass die Übersicht relativ vollständig ist, kann man sich zum Einstieg die Frage stellen, wie viele Spiele auf welcher Plattform erschienen sind.

Hierzu müssen wir lediglich ein Balkendiagramm über die Plattform ausgeben lassen. Dieses können wir mit ggplot auch noch ein wenig sortieren, in meinem Fall z.B. grob nach den Generationen der Konsolen (portable Konsolen und PC separat zum Schluss).

library('ggplot2')

t <- read.csv('data.csv')

m <- c('nintendo-64', 'playstation', 'gamecube', 'playstation-2', 'xbox', 'w    ii', 'playstation-3', 'xbox-360', 'wii-u', 'playstation-4', 'xbox-one', 'ds'    , '3ds', 'playstation-vita', 'pc')

t$system2 <- factor(t$system, levels=m)
ggplot(t, aes(factor(system2))) + geom_bar() + theme(axis.text.x = element_text(angle=90)) + xlab('Platforms') + ylab('No of reviews')

Anzahl der Spiele auf verschiedenen Konsolen

Die Playstation 2 scheint ihrerzeit eine enorme Vielfalt an Spielen gehabt zu haben. Zur nächsten Generation haben Nintendo und Microsoft hier ziemlich aufgeholt und in der aktuellen Generation sieht man bisher kaum Unterschiede (aber immer hat Sony die Nase etwas vorne).

Aus eigener Erfahrung gehe ich jedoch davon aus, dass hier bei manchen älteren Konsolen nicht alle Spiele aufgelistet sind. In meinen Daten sind für den Nintendo 64 lediglich 95 Spiele verzeichnet. Laut Wikipedia müsste es in Europa aber 254 offizielle Spiele geben:

Of the console’s 388 official releases, 84 are region-locked to Japan, 50 to North America, and 4 to Europe.

Welche Konsole hat die besten Bewertungen?

Nun nützt einem die größte Anzahl an Spielen nichts, wenn die Spiele dann entsprechend schlecht sind. Wie schneiden die Konsolen also durchschnittlich in etwa bei den Reviews ab?

Hierfür ist ein Whisker-Plot eine gute Wahl, da wir so den Median der Bewertungen auf jedem System sehen, aber auch die Verteilung der Bewertungen. Nachteil ist jedoch, dass Whisker-Plots üblicherweise den Durchschitt (mean) nicht beinhalten. Der Standard-Whisker-Plot lässt sich mit ggplot sehr leicht erstellen, aber den Durchschnitt müsste man manuell dazumalen. Ich habe vorerst nur den Standard-Whisker-Plot genommen.

library('ggplot2')
 
t <- read.csv('data.csv')
 
m <- c('nintendo-64', 'playstation', 'gamecube', 'playstation-2', 'xbox', 'w    ii', 'playstation-3', 'xbox-360', 'wii-u', 'playstation-4', 'xbox-one', 'ds'    , '3ds', 'playstation-vita', 'pc')
 
t$system2 <- factor(t$system, levels=m)
ggplot(t, aes(x=system2, y=rating)) + geom_boxplot() + theme(axis.text.x = element_text(angle=90)) + xlab('Platforms') + ylab('Rating')

Bewertungen der Spiele verschiedener Konsolen

Hier sehen wir z.B., dass die Median-Bewertung des Nintendo 64 wesentlich besser ist als die von Playstation. Insgesamt nahmen die Nintendo-Bewertungen aber bis zur Wii wesentlich ab und wurden erst mit der Wii-U wieder besser (ein für mich sehr interessanter Effekt, weil die Meinung zur Wii-U anfangs sehr skeptisch war). Seitdem Microsoft auf den Markt eingestiegen ist, liefern sich die Microsoft- und Sony-Konsolen ein heißes Rennen. Mal hatte die X-Box die besseren Bewertungen, mal die Playstation.

Was man aus einem Whisker-Plot auch ablesen kann - er enthält wirklich viel Information in einer kompakten Darstellung - ist der Maximal- und Minimalwert. Und zudem noch die Information, welche Werte bereits als Ausreißer gelten könnten (diese sind durch einzelne Punkte dargestellt). Den Maximalwert sehen wir als oberes Ende der Linie, die aus der Box hervorgeht. Demnach hatte ein Nintendo-64-Spiel die beste Spielebewertung von allen Konsolen.

Generelle Verteilung von Bewertungen

Der bisherigen Grafik nach scheinen die Bewertungen grob um den Wert 70 (von 100) herum orientiert. Allerdings kann man das noch nicht so genau ablesen. Hierzu brauchen wir ein weiteres Diagramm. Auch das ist wieder sehr einfach, entweder als Balkendiagramm oder als Dichtediagram (density plot).

library('ggplot2')

t <- read.csv('data.csv')

g_tmp <- ggplot(t, aes(rating)) + xlim(0, 100) + xlab('Rating')

g_tmp + geom_density()
g_tmp + geom_histogram(binwidth=1)

Histogramm der Bewertungen von Videospielen

Hier sieht man, dass die meisten Spiele mit 70 Punkten bewertet werden. Wenn man sich solche Histogramme ansieht, ist man oft jedoch nicht am tatsächlichen Höhepunkt (bei 70 Punkten) interessiert, sondern an dem Wert, der bei einer glatten Wahrscheinlichkeitsverteilung der Höchstwert wäre (Modus). In diesem Fall wäre der Modus bei etwa 72 oder 73 Punkten.

Die schlechteste Bewertung eines Spiels liegt bei 8 Punkten, die beste bei 99. Das sieht man in dieser Grafik relativ schlecht, kann man aber in R mit summary(t) (t ist die eingelesene Tabelle) sehr schnell einsehen.

Veränderung von Bewertungen über die Zeit

Nun hat man ja manchmal den Eindruck, wir seien eine kritikunfähige Gesellschaft geworden. Sehen wir uns also mal an, wie die Bewertungen sich über die Zeit verändert haben. Sind diese im Durchschnitt eventuell immer besser geworden?

Aufgrund des obigen Datumsformats erkennt R dies nicht automatisch als Datum. Das kann man jedoch korrigieren:

t$game_release <- as.Date(t$game_release, "%b %d, %Y")

Um genügend Daten pro Gruppe zu haben, gruppiere ich außerdem nur nach Jahren. Der Rest ist ähnlich wie bereits zuvor, auch hier eignet sich wieder ein Whisker-Plot.

library('ggplot2')

t <- read.csv('data.csv')
t$game_release <- as.Date(t$game_release, "%b %d, %Y")
t$year <- format(t$game_release, "%Y")

ggplot(t, aes(x=year, y=rating)) + geom_boxplot() + theme(axis.text.x = element_text(angle=90)) + xlab('Year') + ylab('Rating')

Bewertung von Videospielen nach Jahren

Auffällig ist, dass die Bewertungen sprunghaft schlechter geworden sind vom Jahr 1999 auf das Jahr 2000. Es wäre möglich, dass sich hier etwas am Datenstand geändert hat. Möglicherweise sind bis 1999 nur sehr gut Spiele in der Datenbank erfasst worden. Ab 2000 sind die Daten recht kontinuierlich, sodass man diese erstmal vergleichen kann. Hier sieht man, dass die Bewertungen von 2006-2009 etwas schlechter waren und danach wieder besser wurden. Nur ist jetzt noch offen, ob dies an den Bewertenden liegt und auf ein gesellschaftliches Phänomen zurückzuführen ist oder ob die Spieleindustrie in diesen Jahren etwas schlechter war.

I do not maintain a comments section. If you have any questions or comments regarding my posts, please do not hesitate to send me an e-mail to stefan@eliteinformatiker.de.