Zum Hauptinhalt springen

CloudNet Release v3.4.0 - Earthquake!

· 5 Minuten Lesezeit
Linus F. (Sarsum)

Wir präsentieren stolz eine neue Version von CloudNet v3!
Es ist eine Weile her, seit wir das 3.3 Update veröffentlicht haben. Ehrlich gesagt ziemlich lang, der letzte Release war am 16.05.2020, seither hat sich einiges in CloudNet geändert.

  • Mehr als 1220 Klassen wurden in über 450 Commits bearbeitet und hinzugefügt.
  • 19 Personen waren am Update beteiligt. Nicht nur unsere Teammitglieder haben mitgewirkt, sondern auch die Community.

Änderungen

  • Java 16 und Minecraft 1.17 werden nun unterstützt!
  • Viele Synchronisierungsprobleme des Clusters wurden behoben.
  • Leistungsverbesserungen an vielen Stellen, und alle bisher bekannten Fehlern wurden behoben.
  • IPv6 wird jetzt überall unterstützt.
  • In der Konfigurationsdatei der Node wurde eine Möglichkeit hinzugefügt, die Standard-JVM-Flags für alle Services festzulegen.
  • Die Zeit, bis ein Service gestoppt wird, kann nun in der Node Konfiguration gesetzt werden.
  • Alle Tasks können nun mit einem separaten JVM-Befehl gestartet werden, zum Beispiel um Java 8 für Lobbies und Java 16 für Proxies zu verwenden.
  • Alle Tasks können nun eine bestimmte Permission haben, die benötigt wird, um sie betreten zu können.
  • Services werden nicht mehr von allen Nodes verwaltet, eine Node übernimmt die Leader-Rolle im Cluster (sog. "Head-Node") und stellt sicher, dass die Services gestartet bzw. gestoppt werden.
  • Alle Nachrichten sind jetzt auch in französischer Sprache verfügbar.
  • Das LabyMod-Modul wurde um weitere Funktionalitäten erweitert.

Eine detaillierte Änderungsliste gibt es hier.

Updaten

Für dieses Update wird empfohlen, die launcher.jar mit der aus dem 3.4.0 Build von unserem Download-Server zu ersetzen. Die Verwendung von auto-update würde trotzdem funktionieren (wenn es in der launcher.cnl Datei auf true gesetzt ist), aber das LabyMod Modul würde nicht korrekt aktualisiert werden.

Nodes, die auf v3.3 laufen, sind nicht in der Lage sich mit v3.4 Nodes zu verbinden! Deswegen müssen alle Nodes gleichzeitig aktualisiert werden.

Neues SpigotMC Design

Wir haben das Design unserer SpigotMC Seite von Grund auf überarbeitet.
Wir würden uns diesbezüglich über Feedback freuen! Wir hoffen, dass sich unsere Mühen gelohnt haben und das neue Design gut ankommt.

Hinweis für Snapshot-Nutzer

Nutzer die den CloudNet v3 Snapshot nur auf Grund der verbesserten Stabilität der Version 3.4 nutzen, sollten erwägen, Snapshots zu deaktivieren! (Die Snapshot-Versionen können durch das Umstellen von use-snapshots auf false in der launcher.cnl Datei deaktiviert werden.)
Wir werden weiter an CloudNet v3 in der development Branch arbeiten. Dies kann dazu führen, dass möglicherweise instabile oder kaputte Builds über das Snapshot-System bereitgestellt werden.

API

Ein paar Worte zur API sind ebenfalls wichtig.
Viele der API-Methoden, die in v3.3 seit langer Zeit enthalten waren (einige seit 3.0), wurden ersetzt und als deprecated (veraltet) markiert. Die Dokumentation enthält diesbezüglich alle wichtigen Informationen! Wir haben dort Informationen über den Ersatz für jede neue deprecated Methode hinzugefügt, ohne vorherige Notiz (deprecation) wurde nichts entfernt. Methoden, die als ScheduledForRemoval für 3.4 markiert wurden, wurden entfernt.

Die Dependency-Informationen können hier gefunden werden.

Über die Cluster-Probleme

Wir konnten das CloudSystem bisher nicht in großem Maßstab mit mehr als drei Nodes und ein paar hundert Spielern testen.
Ein Nutzer hat uns kontaktiert, da er Probleme mit mehreren Servern mit der gleichen ID (wie z.B. "Lobby-1" auf verschiedenen Nodes oder sogar derselben) hatte.
Vor der Version 3.4 haben wir versucht, die Nodes selbst entscheiden zu lassen, ob sie einen neuen Server starten müssen. Leider hat das nicht gut funktioniert und wir haben es als Ursache für die Probleme identifiziert.
Daher haben wir ein Head-Node-System implementiert. Sobald sich die Nodes untereinander verbinden, tauschen sie ihre Startzeit aus und nutzen diese, um die aktuelle Head-Node zu bestimmen.
Wenn die aktuelle Head-Node die Verbindung verliert, weiß jede andere Node, welche die nächste Head-Node sein wird, und das Cluster läuft einfach weiter.

Nachdem wir die Cluster-Probleme behoben hatten, haben wir erfahren, dass einige große Netzwerke keine weiteren Probleme hatten.
Um es anschaulicher zu machen: Wir wissen, dass CloudNet mit 6 Nodes im Cluster und mehr als 600 gleichzeitig verbundenen Spielern gut funktioniert!

Ein ganz besonderes Dankeschön an die Netzwerke, die eng mit uns zusammengearbeitet haben, um die Probleme zu lösen und die Korrekturen zu testen!

Fazit

Wir hoffen, dass dieses große Update gut ankommt!

CloudNet wird so bereitgestellt wie es ist - wir sind nicht für Datenverlust oder Beschädigung verantwortlich. Wir empfehlen ein Backup jeglicher Daten vor jedem Update zu erstellen!

TL;DR