Wochenrückblick: Planungen, Organisation und Prototypen

Neuerungen

Nachdem wir den Bauserver in der letzten Woche auf Minecraft 1.17 geupdatet haben, stehen uns seit dieser Woche nun auch wieder alle Tools zur Verfügung. Dies war sicher auch ein Grund dafür, dass zaPuffi an der Bau-Front wieder ordentlich vorlegt: Erst vor zwei Wochen zuvor haben wir große Teile unserer Vision zu Klaninseln und Klankrieg enthüllt. Nun ist ein erstes Terrain fertig geworden!


Der innere Bereich ist nach wie vor so groß, wie eine Klanbasis auf dem derzeitigen PvP: 49 Chunks. Mehr als genug Platz, um eine ordentliche Festung zu errichten. Wie ihr am Bild oben jedoch vielleicht schon erahnen könnt, wird auch das umliegende Gebiet, wofür ihr dann auch andere Designs freischalten könnt, mehr als nur Deko sein. Doch dazu wollen wir in einem späteren Wochenrückblick mehr verraten.


Für den Hub wurde ein neuer Bereich im Navigationsmenü hinzugefügt, durch welches man sich bequem zu den Microgames (also Bogenschießen, Jump and Run, etc.) teleportieren kann. Außerdem gibt es nun eine Einstellung, durch die man sich in den Highscore-Listen gezielt mit den eigenen Freunden vergleichen kann (diese Features werden Teil eines späteren Updates).


Auch wurden in dieser Woche unsere ersten Server auf "cgroups v2" aktualisiert. Da wir ausschließlich mit Containern arbeiten, hat diese Änderung Auswirkungen darauf, wie die Ressourcen der Container intern verwaltet werden. Kurz gesagt, erhöht dies die Stabilität und Sicherheit unserer Services und erlaubt eine noch effizientere Aufteilung der zur Verfügung stehenden Ressourcen.

Problematik der Server-Skalierung

Als wir vor vielen Jahren die allgemeine Vision des PvPs formuliert haben, war für uns ein wichtiger Aspekt die Größe der Schlachten, die wir uns dabei vorstellen. So haben wir bereits damals Benchmarks (also Leistungsprüfungen) durchgeführt, um zu ermitteln ob sich unsere Vision so in Minecraft durchführen lässt. In früheren Minecraft-Versionen reichte die Performance aus, das sich gleichzeitig hunderte Spieler auf einer einzelnen Server-Instanz tummeln konnten. Große Netzwerke mit skalierbaren Server-Aufteilungen waren zu der Zeit noch die absolute Seltenheit waren. Heute ist es, zumindest im Rahmen unseres Konzepts, nicht mehr möglich so viele Spieler auf eine einzelne Server-Instanz zu schicken, wie wir es für das richtige Spielgefühl des PvP-Servers gerne würden.


In kurzer Zeit waren über 20 Spieler gleichzeitig aktiv, um den PvP auf Herz und Nieren zu testen.

Darüber hinaus fühlt es sich nicht richtig an, ein System mit einem festen Limit nach oben zu entwickeln. Wenn wir dabei bleiben würden, eine einzelne Server-Instanz für den gesamten PvP-Server zu nutzen, können wir in die Situation rutschen, dass wir einige Zeit zur Umstrukturierung benötigen, während die Spieler-Slots lange Zeit voll ausgereizt sind. Wir können aktuell noch keine Benchmarks hierzu durchführen (und entsprechend auch keine genauen Zahlen herausgeben). Wir gehen jedoch aufgrund der bisherigen Performance-Beobachtungen davon aus, dass wir dieses Limit sogar recht schnell erreichen könnten.


Bereits im Vorfeld der Teambesprechung, haben sich einige unserer Entwickler also zusammengefunden um über die technische Umsetzung der Klanwelten und Klankriege zu beraten. Die interessanteste Idee war hierbei, diese Elemente von gekapselten, eigenen Server verwalten zu lassen. Dies wäre praktisch die logische Fortsetzung unserer bisherigen Nutzung von Containern. Leider hindern uns aktuell aber noch ein paar technische Schulden daran, dass wir den PvP ohne zusätzliche Vorbereitung in verschiedene Server aufteilen können. Insbesondere die verlässliche Synchronisation der Attribute unserer Nutzer-Objekte und Klans stellt hier noch eine große Hürde dar.

Planung, Konzeption und Prototyp

Die Umstellung auf eine deutlich zukunftssicherere Technologie würde allerdings viel zusätzliche Zeit benötigen und unsere Release-Planungen so umstoßen. Die Alternative wäre es, den PvP mit einer Zwischenlösung zu veröffentlichen. Dies hat jedoch den Nachteil, dass wir etwas programmieren würden, was am Endeer gar nicht mehr benötigt wird. Wir würden also langfristig gesehen, unnötigen Aufwand betreiben, Lags tolerieren müssen und nach dem Release dann recht schnell an einer langfristen Lösung arbeiten müssen. Hierdurch gäbe es lange Zeit keine Content-Updates. Und wenn das Update release wird , gäbe es für die Spieler keine Neuerungen. Das einzig Neue wäre das Ausbleiben von Laggs.


Um hier die bestmögliche Entscheidung treffen zu können und damit wir den hiermit verbundenen zeitlichen Aufwand überhaupt abschätzen können, erarbeiten wir momentan gemeinsam einen Prototypen für die neue Synchronisierung, Speicherung und Verarbeitung der Daten. Wir möchten so bessere Einblicke in die Probleme dieser Umsetzung gewinnen, uns mit der Technologie vertraut machen und evaluieren, welche zusätzlichen, ausstehenden Verbesserungen sich hiermit gut kombinieren lassen. Darüber hinaus analysieren wir unseren Code gerade näher, um zu ermitteln an welchen Stellen überhaupt mit Daten gearbeitet wird und welche (vielleicht zum aktuellen Zeitpunkt noch nicht berücksichtigten) Schwierigkeiten dabei auf uns zukommen könnten.


Sobald wir dann den Prototypen für die neue Synchronisierung und Speicherung erstellt haben, werden wir für uns abschätzen, welcher Ansatz sich besser mit unseren Zielen und einem zeitigen Release vereinbaren lässt. Bevor wir also vorschnell die (womöglich) falsche Entscheidung treffen, möchten wir erst einmal alle Optionen prüfen. Sobald wir neue Erkenntnisse haben, werden wir diese über die bekannten Kanäle mit euch teilen!

Ausblick

Wir haben im Verlauf der nächsten Tage noch einige Meetings angesetzt und kommunizieren auch sehr aktiv über die verschiedenen Möglichkeiten, die wir hierbei verfolgen können. Das vielleicht spannendste Meeting findet heute statt, denn hier werden wir unsere nächsten Etappen genauer durchplanen. Im Idealfall können wir euch bereits in der kommenden Woche anschaulicher präsentieren, was wir uns alles vorgenommen haben.


Übrigens wird der Beta-Server nach wie vor weiter laufen und gelegentlich neue Updates erhalten. Natürlich geben wir den Testern in diesem Fall sofort in unserem Discord Bescheid.


Und abonniert uns gerne auch auf Instagram und Twitter, um nichts zu verpassen ;)! Euer JustChunks-Team.