In letzter Zeit habe ich ja etwas häufiger Urban Terror gespielt und versucht die Linuxer um mich herrum davon zu überzeugen sich das Spiel auch zu installieren - bei 20% war ich erfolgreich mit meiner Überzeugungsarbeit (nunja, nur das die oftmals ohne mich zocken mittlerweile *g*) - Irgendwann kam dann der Gedanke, Statistiken. Und ich hatte Lust, ein Tool für die Statistiken zu programmieren und kein fertiges zu nutzen. Dabei kamen ein paar Probleme und ein paar Gedanken auf. Der erste Gedanke ist wohl: Was gehört alles in die Statistiken. Nunja. Ich denke mal an etwas lustiges wie “most died deaths” - Wie Till schon erwähnte klingt das total bescheuert aber bei Gamern macht das wohl nichts (Nein ehrlich, mir fällt nichts besseres ein - Bei dem Teil gehts um Tode die durch $Welt passieren, d.h. verbluten, selbstmord, herrunterfallen, ertrinken), most played maps (Na, die meist gespielte Map sollte schon dabei sein), most used weapons (nice to have aber vllt. interessierts ja wirklich wen) und Top Players.
Tja. Knackpunkt der Aktion ist wohl das Log, welches sich nicht so einfach parsen lässt, aber schauen wir uns einfach mal an, welche Bewertungen bei “Top Players” eine Rolle spielen beziehungsweise eine Rolle spielen könnten:
Komplexität? Nunja. Generell wird bei einer Statistik der “beste” Spieler ermittelt. Wie soll man den besten Spieler ermitteln? Viele Statistiken machen es sich dabei einfach und ich muss sagen, den perfekten Weg habe ich noch nicht gefunden. Einfach machen wäre: Wer die meisten Kills hat, ist der beste. Das Problem: Ich analysiere ein Logfile, welches durchaus 7 wochen alt sein kann, in welchem keine “Zeit” gespeichert ist. Ich kann also nicht so einfach eingrenzen, wer wieviel gespielt hat - Hierdurch würde ein Spieler der 2 Wochen lang gespielt hat, immer besser sein, als einer der eine Runde mitgespielt hat. Was die Statistik an sich wiederrum verfälschen würde. Ein Workarround waere es wohl, die insgesamt gespielten Spiele mit zu analysieren und entsprechend zu bewerten: Kills / Gespielte Spiele - Hat jemand 2 Spiele und 10 Kills hat er eine Score von 0.20 - Hat jemand 20 Spiele und 100 Kills hat er dieselbe Score. Durch diesen Ansatz, ist es also egal wie oft jemand was gespielt hat. Es sieht allerdings in der Statistik selbst, blöd aus -> Wenn auf Platz 1 jemand mit 3 Spielen ist, und auf platz 20 jemand mit 300 spielen ist. Auch ist hierbei ein Problem das die Berechnung je höher die Zahlen werden, genauer werden. So kann man bei 3 Spielen und 10 Kills nicht so genau “scoren” wie bei 333 Spielen und 9999 kills.
Aber egal. Hierdurch ist schonmal ein grundlegendes Ranking möglich. Aber, ist der mit den meisten Kills tatsächlich der beste? Nein. Leider nicht. Denn wenn jemand 10 Kills und gleichzeitig 10 Deaths hatte, sieht das nicht unbedingt gut aus, oder? Wenn jemand hingegen 10 Kills aber nur 5 Deaths hatte, hat er pro “Runde” bzw “Leben im game” 2 Gegner abgeschossen - Ist also besser obwohl er die selben Kills hatte. Das heisst, es muss noch ein Kills / Deaths mit einfliessen. Das waeren bei 10 Kills und 10 Deaths 1 und bei 10 Kills und 5 Deaths 2.
Aber haben wir jetzt schon den wirklich besten Spieler? Wenn es nach vielen anderen Statistiken geht, hatten wir den besten Spieler schon laengst. Nach meiner Statistik nicht. Nehmen wir mal an, man braucht um einen Gegner zu töten, einen Schuss (Headshot ohne Helm). Je mehr “Hits” man also hat, desto mehr Schüsse hat man gebraucht um einen Gegner zu töten, desto schlechter ist man. Jemand mit weniger Hits ist also durchaus besser. Rechnen wir also nochmals Hits / Kills bei 800 Hits und 300 Kills haben wir 0,375 und bei 300 Hits und 300 Kills haben wir 1 - Hierdurch können wir jetzt noch in gut und schlecht, den Faktor benötigte Schüsse für Kill einfliessen lassen. Diese Berechnung hat allerdings ein kleines Problem: Ich kann auch 5 Hits bei einem Gegner gehabt haben ohne das er stirbt.
Gut, dann haben wir jetzt also den besten Spieler? Nein, leider immernoch nicht. Wenn wir vom “besten Spieler” reden sollten Headshots noch mit in die Berechnung aufgenommen werden - Zwar heisst es, dass Headshots oftmals zufall oder von wirklich guten Spielern sind, aber ich denke das ein Spieler der keinen einzigen Headshot geschafft hat, nicht unbedingt ein guter Spieler ist. Man darf aber nicht vergessen - Nur weil jemand keine Headshots geschafft hat, ist er kein schlechter Spieler. Hits / Headshots waere unsere weitere Berechnung, die wiederrum nur als kleiner Bonus gelten darf.
Jetzt gibt es nur noch ein weiteres Problem wo man entscheiden muss, ob man das möchte oder nicht: Und zwar ist es die Spieler kontinuität. Generell ist ein Spieler nicht besser als ein anderer nur weil er öfter spielt. Ist die Statistik allerdings für einen speziellen Server kann man es schon so sehen das ein “Top” Player einer der Spieler ist die öfter und regelmaessig auf diesem Server spielen. Auch zeigt die Statistik zum jetzigen Zeitpunkt zwar schon den theoretisch besten Spieler an - Würde aber auch jemanden auf Platz 1 zeigen der Glück hatte und nur 3 Runden auf dem Server gezoggt hat. Das heisst, die letzte Berechnung sollte nicht fehlen, diese kommt zustande in dem wir die vorhandene Score mit den gespielten Spielen multiplizieren. Das heisst jemand der eine Score von 5 hat, und 3 spiele gespielt hat, hätte eine Score von 15. Jemand der eine Score von 50 hat und 3 spiele gespielt hat, hätte eine Score von 150. Das Problem hierbei ist, das so wahrscheinlich ausschliesslich spieler die oft spielen in den top 10 sein werden - Hier, fehlt mir noch ein Weg zum “entschärfen” leider.
Und das Ergebnis? Nunja. Wer kaputtes HTML mag und keinen IE hat, kann sich folgende Seite ansehen, aber: Ich arbeite noch dran.
http://jeanbruenn.info/urtchainstats/index.php
Danke an Goetz für das einwerfen von mathematischen Gedanken
Danke an Daniel für das schicke Layout
Danke an Till, der mich immer wieder ermahnt meine Zeit nicht mit solchem Schund zu vergeuden ![]()
Posted by: jean
Categories:
Allgemeines