Klankrieg-Titelbild

Wochenrückblick: Matchmaking-Director, Balancing und Bugfixes

Wochenrückblick6. Feb. 2022

Kreativ

Das große Thema des Kreativteams dieser Woche war das Balancing. Hier wurde eine große Überarbeitung fällig, denn es kamen viele neue Systeme wie etwa die Beutejagd und der Klankrieg hinzu.

In dieser Woche haben wir uns intensiver in die Details eingearbeitet und diese neuen Faktoren und Elemente grob angelegt. Insgesamt lag der Fokus darauf, das ganze System so modular und flexibel wie möglich zu gestalten. Man kann zum Beispiel recht übersichtlich speziell die Münzausschüttung in der Beutejagd oder die Erfahrungspunkte-Verteilung in der Arena mit einem Klick verändern.

In unserem Balancing Sheet kann man recht übersichtlich speziell die Münzausschüttung in der Beutejagd oder die Erfahrungspunkte-Verteilung in der Arena mit einem Klick verändern.

Außerdem wurden die Ränder der Klankriegs-Skins gefixt. Nicht jedem war dieses Detail aufgefallen, doch die Karten waren nicht ganz bündig. Jetzt schließen sie mit jeder Klankriegsmap bündig ab.

Entwicklung

PvP Allgemein

Ein großer Teil der Arbeit floss aber darin, faire Duelle und Matches zu erstellen und die Prozesse dahinter technisch zu managen. Ein Teil der Entwickler hat damit begonnen, sich kleineren Fehlern und Problemen zu widmen. Etwa wurde ein Fehler im PVP behoben, der dafür gesorgt hat, dass sich manche Items im PVP nicht stapeln ließen (der Grund dafür waren unnötige NBT-Daten, welche Items, die sowieso keine Haltbarkeit haben, unzerstörbar machen).

Da wir die Server inzwischen wieder gut betreten können, haben einige von uns schon fleißig Bugs und Dinge für das Polishing erfasst und detailliert beschrieben, damit wir uns geordnet und priorisiert den offenen Aufgaben widmen können. Dabei haben wir bewusst versucht der "Betriebsblindheit" ein wenig entgegenzuwirken, die sich einstellt, wenn man jeden Tag aufs neue auf den Server verbindet und mit der Zeit manche Fehler einfach als gegeben ansieht.

Elo und Matchmaking

Wir nutzen für unsere Arena ein Elo-System um möglichst faire Matches zu erstellen. Bislang wurde dabei jedoch nicht der Fall berücksichtigt, wenn es zu einem "Unentschieden" bei einem Match kam. In diesem Fall wurde bislang einfach zufällig einer der Spieler als Verlierer und der andere als Gewinner bestimmt. Nun berechnen wir die Punktevergabe so wie vom offiziellen Elo-System vorgesehen.

Auch haben wir die Verbindung zwischen Servern beschleunigen können, sodass nun insbesondere von den PvP Unter-Servern zum PvP-Hub sehr schnell gewechselt werden kann.

Director für Klankriege

Wie in der letzten Woche angekündigt, haben die Arbeiten am "Director" für die Klankriege begonnen. Der Director ist die Software-Komponente, die die Durchführung eines Matches abwickelt. Im Grunde genommen kann man sich das so vorstellen: Der Director befragt in kleinen, regelmäßigen Abständen (bei uns zum Beispiel alle drei Sekunden) unser Matchmaking-System zu neuen Vorschlägen für Matches. Dabei werden ihm nur solche Vorschläge unterbreitet, die unser System für spaßig hält und für die genügend Spieler bereitstehen. Der Director setzt diese Vorschläge dann um und koordiniert beispielsweise das Einrichten des Servers, das Verbinden der Spieler auf den Server und die Entfernung der Spieler aus der Warteschlange.

Nun mit grafischem Interface: Die Arenawertung

Wir haben bereits einen Director für Arena und Conquest gehabt, bei dem wir jedoch zunächst vermutet hatten, dass wir ihn nicht ohne großen Aufwand für den Klankrieg verwenden werden können, weil die Warteschlange für Klankriege grundsätzlich anders funktioniert und viele spezielle Anforderungen hat. Deshalb war der Plan diesen speziellen Director einzeln in Kotlin – einer modernen Sprache für die Cloud, die (wie Java selbst) auf der JVM (Java Virtual Machine) basiert und daher recht viele Überschneidungen mit unserer sonstigen Infrastruktur hat – zu entwickeln und so Zeit zu sparen.

Praktisch finden wir, dass wir doch den bestehenden Director leicht umbauen konnten um so nicht nur den Klankrieg zu unterstützen, sondern auch potentiell viele weitere Spieltypen (durch die wesentlich flexiblere Konfiguration) in der Zukunft. Obendrein spart das auch noch eine Menge Zeit, weil wir schon auf dem bestehenden System aufbauen können und so eine dauerhafte Lösung haben. Erste Details dazu verraten wir aber frühstens in der kommenden Woche. Zumal wir noch Ingame die Warteschlange einbinden und die Klankrieg-Server in das Matchmaking-System integrieren müssen.

Web

Im letzten Wochenrückblick sind wir tiefer auf unsere Arbeiten an einem OAuth2-Athentication-Server und unserer API Charon eingegangen und in dieser Woche ging es fleißig weiter: Fertig wurde das Erstellen von Clients (z. B. einer externen Webseite, die mit unseren Daten arbeiten möchte), die Erstellung von Tokens für die Authentifizierung von Clients, die Erstellung von Tokens für Nutzer (also Minecraft-Spieler), die Zuweisung von Nutzerrollen zu den damit verbundenen Berechtigungen und die Authentifizierung für alle Anfragen mit Tokens.

Fast fertig wurde das Erstellen von Website-Profilen für Nutzer. Hier fehlt noch das Senden von E-Mails mit dem Code sowie die Interaktion mit der Webseite. Zudem wurden in dieser Woche die ersten automatisierten Tests für unsere API Charon geschrieben. Diese simulieren Anfragen an die verschiedenen Endpoints.

Ausblick

Diese Woche endete mit der monatlichen Teambesprechung. Unserem kleinen Team steht noch einiges an Arbeit bevor, wenn wir wie geplant bald komplett ins Polishing übergehen wollen, doch ein Ende ist zum Glück so langsam in Sicht. Wir sind schon ganz heiß darauf, all die Spielelemente in gemeinsamer Action erleben zu können und werden bis dahin weiter jede Woche hier und per Discord, Instagram und Twitter auf dem Laufenden halten!