Titelbild

Wochenrückblick: Grafiken für die Website und technische Hintergründe zum Worldloading

Wochenrückblick17. Apr. 2022

Allgemein

Weil unsere Entwickler in dieser Woche mit dem Worldloading ein doch sehr großes Paket zu stemmen haben, können wir hiervorn zwar noch nichts groß zeigen, dafür nehmen wir uns etwas Zeit, tiefer in die Hintergründe einzusteigen. Wer als Entwickler schon immer näher verstehen wollte, wie man Minecraft in Sachen Performance auf die Sprünge helfen kann, bekommt bei uns wie immer mehr als nur die üblichen Infos.

Doch ganz ohne ein visuelle Leckerbissen wollen wir den Sonntag natürlich nicht ausklingen lassen. Denn auf der Website kommen immer mehr Designs zum Abschluss und wir arbeiten eifrig daran, die finalen Grafiken vorzubereiten.

Design

Neben Screenshots zum Spielgeschehen und Grafiken wie diesen beiden, wollen wir die Website in etwas verwandeln, was sozusagen "richtig Bock auf's Spielen macht!". Die Grafiken wurden mit Blockbench erstellt und werden im nächsten Schritt in Blender gerendert, um ein paar kleinere Fehler zu korrigieren und den Grafiken noch mehr Ausdruck zu verleihen.

Wir wollen mit der neuen Website noch vor unserem Release online gehen. Derzeit holen wir uns möglichst viele Meinungen ein, damit die technische Umsetzung des Designs beginnen kann.

Jede Figur wurde liebevoll designed
So kommen unsere Grafiken zum Einsatz

Entwicklung eines Worloaders für Minecraft

Im letzten Wochenrückblick haben wir über den Beginn der Entwicklung unseres Paper-Forks namens "Cardboard" berichtet. Da wir derzeit mitten in der Entwicklung stecken und noch nichts groß dazu zeigen können, haben sich unsere Entwickler bereit erklärt, für den heutigen Wochenrückblick mal etwas genauer zu erläutern, wie wir auf diese Weise Paper so für unsere Zwecke optimieren, dass wir ein massives Performanceplus haben werden:

In unserem Netzwerk sind mindestens 90 Prozent aller Welten "synthetisch". Das bedeutet, es handelt sich nicht um normale Vanilla-Welten, sondern um Welten, bei denen die Spieler entweder nichts oder nur sehr gezielt die Welt verändern können. Wichtig ist, dass wir bei diesen Welten keine Generierung haben, sondern direkt mit einer vorgebauten Welt starten. Das betrifft zum Beispiel die Maps für Arenen, Eroberung und Klankrieg, den PvP-Spawn, den Hub-Server, die Klaninseln, etc..

Nun speichert der Minecraft-Server bei allen Welten aber zumindest beim Herunterfahren (oft aber auch während der Laufzeit) die Welt auf der Festplatte oder aktualisiert die Welt beim Laden auf die neueste Version. Bei Vanilla Minecraft-Servern ist dies sehr sinnvoll, doch wir benötigen diese Speicherung und das Updaten der Welten nie, weil wir die Welten schon genau so in unsere Datenbank legen, wie wir sie beim Laden benötigen.

Unser Schematic-System (SHARD) ist komplett losgelöst von existierenden Blöcken und kann vollständig asynchron (also abseits vom Hauptthread) verwendet werden. Auch das Initialisieren der Welt sowie das Laden der einzelnen Chunks kann bei uns vollständig asynchron geschehen. Wir sparen uns also nahezu alle Verzögerungen auf dem Hauptthread, was zu einer insgesamt besseren und verlässlicheren Performance beiträgt. Darüber hinaus werden alle Chunks, die einmal geladen wurden, dauerhaft geladen gehalten, da das ständige Entladen und Laden in unserem Fall mehr Performance kostest als es einspart.

Nicht existierende Chunks werden über ein einzelne, besonders optimierte Instanz eines Chunks dargestellt. Das ist noch einmal wesentlich leichtgewichtiger als das "Generieren" leerer Chunks. Und wenn sich kein Spieler in der Nähe dieser Chunks befindet, werden sie nicht getickt, was zum Sparen der Leistung im Leerlauf beiträgt.

In der Theorie könnten wir später so auch ganze Chunks während der Laufzeit einfach asynchron austauschen und neu an die Spieler senden. Für die erste Implementation verzichten wir jedoch darauf und beschränken unseren Worldloader auf das Allernötigste um möglichst schnell mit der Entwicklung fortschreiten zu können.

Die wichtigsten Punkte für uns sind: Extrem schnelle Ladezeiten und optimierte Laufzeitperformance, Verzicht auf jegliche Speicherung, Ersetzen der normalen Standardwelten und vollständige Kompatibilität zu unserem SHARD-Format für Welten und Schematics.

Ausblick

Schul- und Uniprüfungen und schönstem Wetter zum Trotz merkt man: Wir lassen uns nicht abschrecken und versuchen jede Woche, unserem Ziel näher zu kommen!

Mit der Website können wie unser Account-System, unsere API und damit einige wichtige Spielelemente endgültig testen und sobald unser Worldloader steht, dürfte auch die Performance endlich stimmen. Damit wären wir technisch mit den wichtigsten Dingen durch und können endlich in die nächste Phase übergehen. Da es hier darum geht, die Features für Spieler zugänglicher zu machen und optisch zu polieren, werden wir in den kommenden Wochenrückblicken bestimmt einige schicke Bilder und Details zu Gesicht bekommen. Es wird also spannend!

Unser Wochenrückblick erscheint (nahezu) jeden Sonntag um 19 Uhr. Folg uns gerne auf Discord, Instagram und Twitter, um keine News zu verpassen!