Sonstiges: Entwicklertagebuch - Der Weg zum eigenen Switch-Spiel
Michael Grönert, am 26.12.2016, Seite 17 von 25

BadToxic Discord-Server | GameMaster Discord-Server | BadToxic auf Twitter
BadToxic auf Instagram | BadToxics Entwickler-Instagram | BadToxic auf YouTube
Teil 17: Statistiken
Heute widmen wir uns den Zahlen. Doch keine Sorge, es wird nicht sonderlich mathematisch. Es wird Zeit, sich allerlei Daten zu merken, um sie später für verschiedene Dinge auswerten zu können. Im Mittelpunkt stehen hier die Achievements, denn diese hängen häufig nicht von nur einem speziellen Event ab, sondern brauchen oft eine gewisse Anzahl von einem oder mehreren Ereignissen. Außerdem können Zahlen den erbrachten Leistungen mehr Ausdruck verleihen, deswegen wollen wir die gesammelten Statistiken dem Spieler auch direkt anzeigen.
Leistung gehört belohnt
Achievements sollen als Ansporn dienen, Spiele häufiger oder länger zu spielen und nicht nur das Hauptziel vor Augen zu haben. Wie bei einer Trophäensammlung haben hier Stolz auf erbrachte Leistungen, mit denen man auch mal angeben kann und der Sammeldrang eine wichtige Rolle. Doch wenn ich eine Auszeichnung dafür bekommen soll 100 Punkte erzielt zu haben, müssen diese natürlich auch mitgezählt werden. Und wenn ich das Spiel neu starte, soll nicht von vorne gezählt werden müssen, also gehören diese Zahlen mit in den zu speichernden Spielstand.
Wie immer wollen wir von Wiederverwendbarkeit profitieren. Deswegen legen wir anfangs ein paar Aktionen fest, die wir in jedem Minispiel zählen möchten:
1. Wie oft wurde das Minispiel geöffnet (z.B. der GameGuy eingeschaltet)? (n)
2. Wie lange war das Spiel insgesamt offen? (t)
3.Wie lange wurde das Spiel effektiv gespielt (nicht pausiert, nicht in den Menüs)? (t)
4. Wie viele Spiele wurden gemacht? (n)
5. Wie viele Spiele wurden gewonnen? (n)
6. Erzielte Punkte (spielübergreifend)? (n)
Dazu habe ich sogleich notiert, um was für eine Art von Zahl es sich jeweils handelt, damit wir wissen, in welchem Datentyp wir sie speichern können. (n) für eine ganze natürliche Zahl und (t) für eine Zeit in Sekunden oder Millisekunden. Wir legen also eine Liste von Zahlen an, die bei den entsprechenden Aktionen jeweils erhöht werden. Diese müssen dann regelmäßig in den Spielstand geschrieben und beim nächsten Start wieder ausgelesen werden. Aktuell kann unser Spielstand nur manuell per Klick auf einen Button gespeichert oder geladen werden. Wenn GameMaster später ein automatisches Speichern unterstützen soll, bleibt noch abzuwägen wie oft diese Daten wirklich geschrieben werden sollen. Da solche Prozesse etwas Zeit benötigen, steht es nicht zur Debatte, diese bei jeder Änderung sofort zu schreiben, sondern immer in gewissen Intervallen oder bei bestimmten Aktionen.
Zu diesen allgemeinen Statistiken gesellen sich noch solche, die vom jeweiligen Minispiel abhängen. Für unser Kartenspiel Pairs aus dem letzten Tagebucheintrag bietet sich beispielsweise noch die Anzahl aufgedeckter Kartenpaare an. Die oben erwähnten „Punkte“ können je nach Spiel für etwas anderes eingesetzt werden. In diesem Fall die Anzahl der zusammenpassenden aufgedeckten Kartenpaare und bei Gong die „geschossenen Tore“. Danach können wir die neuen Achievements anlegen, inklusive Bildern und Kurzbeschreibungen. Bei Pairs können wir nun beispielsweise ein Achievement für das erste gefundene Paar verleihen, aber auch mitzählen und ein weiteres für die ersten 100 gefundenen Paare.

Zwei der Achievements von Pairs wurden freigeschaltet
Das Auge spielt mit
Wie angekündigt, wollen wir dem Spieler anbieten, die gesammelten Statistiken auch selbst einsehen zu können. Dazu wurde abermals ein neuer Menü-Unterpunkt angelegt. Dieses Mal handelt es sich aber um einen kleinen Button mit Diagrammicon rechts neben den bisherigen Buttons, um nicht alles zu überladen. Außerdem schaut man hier vermutlich seltener rein, als in die anderen Untermenüs. Auf der Statistikseite finden wir dann die Zahlen mit Kurzbeschreibungen. So kann man immer prüfen, wie viel man noch von etwas benötigt, um an bestimmte Achievements zu kommen, sofern man weiß was dazu nötig ist, was sich meist an den noch nicht freigeschalteten Achievements ablesen lässt. Damit das Ganze etwas beeindruckender aussieht, wollte ich Diagramme anbieten. So habe ich es mir erlaubt zunächst ein Tortendiagramm zu implementieren. Für solche Grafiken bieten sich natürlich nur zusammenhängende Werte an, etwa die Anzahl der gemachten Spiele, der Anzahl der gewonnen Spiele gegenübergestellt. An dieser Stelle sei erwähnt, dass ich bewusst entschieden habe, die Anzahl der verlorenen Spiele nicht aufzuzeichnen. Wir wollen einen Spieler nicht daran erinnern, wie schlecht er einmal war. ;) Es sei also angemerkt, dass nicht gewonnene Spiele nicht automatisch verlorene Spiele sind. Es kann auch ein Unentschieden geben oder man kann ein Spiel vorzeitig abgebrochen haben. Außerdem verleitet ein solcher negativer Zähler manche Leute dazu, absichtlich ein Spiel abzubrechen, wenn ein Gewinnen nicht mehr in Aussicht ist, um schlechte Statistiken zu vermeiden. Dies wäre vor allem in Mehrspielerpartien unangebracht.

Beschriftetes Tortendiagramm
Der Kuchen lügt nicht
Das Tortendiagramm war eigentlich die einzige, wenn auch nur kleine, mathematische Herausforderung bei dieser Thematik. Aber ich hatte auch Lust auszuprobieren, ob ich das einfach so hinbekomme. Glücklicherweise bietet unsere Entwicklungsumgebung Unity 3D bereits die Möglichkeit, angezeigte Bilder „kreisförmig aufzufüllen“. Es gibt verschiedene Füll-Funktionen, die für Dinge wie Lebens- oder Fortschrittsbalken gedacht sind. Dazu gehört auch diese Kreisausschnittvariante. Es muss lediglich eine Prozentzahl (0 bis 1) angegeben werden. Es bleibt also nur noch auszurechnen, wie viel Prozent die Anteile jeweils einnehmen und die Kreisausschnitte so zu drehen, dass sie einen vollen Kreis bilden. Um das mal am Beispiel des obigen Screenshots zu verdeutlichen: wir haben zwei von drei Spielen gewonnen. Es gibt also einen Ausschnitt mit 33,3% und einen mit 66,6%. Der zweite Ausschnitt muss dann um den prozentualen Anteil von 360° des ersten gedreht werden. Wenn der rote mit 33,3% der erste ist, muss der zweite um 33,3% (ein Drittel) von 360°, also 120° gedreht werden. Ein dritter Ausschnitt müsste dann um die Anteile der beiden ersten gedreht werden und so weiter. Durchaus etwas komplizierter ist dann die Berechnung der Positionen und Ausrichtungen der kleinen Beschriftungen, welche ebenfalls im Screenshot zu sehen sind. Doch ich möchte euch nicht mit weiteren Rechnungen langweilen.
Das soll es für heute gewesen sein. Nächstes Mal wird es etwas fischig - das dritte Minispiel steht an. Bis die Tage!
Ihr möchtet die Auszüge aus dem Leben eines Entwicklers lieber in englischer Sprache lesen? Unter diesem Link findet ihr die englische Version dieses Tagebucheintrags!
ANZEIGE:
Um Kommentare zu schreiben, bitte oben einloggen oder jetzt Registrieren!