
Schon seit längerer Zeit habe ich die Idee, ein paar technische Hintergründe zu Terraconia zu erläutern. Immerhin hat man als Spieler den Vorteil, sich nicht über die technischen Details Gedanken zu machen. Aber in den vergangenen Jahren waren dann doch immer wieder Spieler interessiert daran, woran aktuell gearbeitet wird und wie der Stand zu Terraconia ist.
Hier eine kurze Zusammenfassung zu den aktuellen Entwicklungen:
Aktuell hat das Update auf die 1.18 die höchste Priorität. Dabei ist Terraconia bereits seit 8 Jahren online und viele der Plugins sind in der Zwischenzeit veraltet. Immerhin entwickelt man sich in 8 Jahren weiter und neue Mechaniken kommen dazu. Daher nehme ich auch dieses Update zum Anlass um alle Plugins aufzuräumen und zu vereinheitlichen.
Die aktuellen Probleme
Aktuell (1.15.2) nutzen wir über 100 unterschiedliche Plugins auf Terraconia. Dabei gibt es einige externe Plugins, die wir kostenlos oder kostenpflichtig benutzen. Ein Großteil der anderen Plugins sind allerdings selbst geschrieben, während davon ein Großteil für minimale Änderungen zuständig sind. Diese enorme Anzahl von Plugins stellt uns bei Versionsupdates regelmäßig vor Probleme, weswegen ich die Gesamtanzahl an Plugins durch sinnvolles zusammenlegen minimieren möchte.
Gleichzeitig ist in der Vergangenheit aufgefallen, wie unterschiedlich die Plugins strukturiert sind. Während ein Großteil unserer Plugins in Java programmiert worden sind, nutzen einzelne Plugins Kotlin als Sprache. Einige Plugins nutzen ein neues Befehlsframework (z.B. das Städteplugin), andere die originale Spigot-API, die in den letzten Jahren kaum weiterentwickelt wurde. Einige weitere Plugins lassen die Nachrichten für Spieler in einer Datei editieren. Einige andere haben die Nachrichten in den Code programmiert.
Diese ganzen Eigenheiten führen auch dazu, dass man "nicht mal eben" eine Änderung einfügen kann. Gerade die nicht änderbaren Nachrichten sind immer wieder problematisch, weswegen auch diese Probleme bei den anstehenden Überarbeitungen angegangen werden.
Die notwendigen Änderungen
Aber um etwas konkreter zu werden, hier eine kleine Liste von Änderungen:
- Überarbeitung der Entwicklung:
Es wird Zeit für einige Anpassungen unserer internen Organisation. Bisher wurden veraltete Skripte für das Kompilieren von unseren Plugins benutzt, die über die Zeit mehr schlecht als recht gepflegt worden sind. Das ändert sich nun: Mit einem extra Gradle-Plugin (Erweiterung für unser Entwicklungsframework) lassen sich die notwendigen Abhängigkeiten und Versionen einfach organisieren und verwalten. Gleichzeitig übernimmt dann auch der Testserver das automatische Kompilieren der Plugins (CI) und stellt die Abhängigkeiten zuverlässig bereit. - Zusammenfassung der Bibliotheken von Terraconia:
Für die Plugins von Terraconia gibt es schon immer einige Bibliotheken, die einige wiederkehrende Funktionen vereinheitlichen. Aufgrund der historischen Entwicklung von Terraconia liegen diese in vollständig unterschiedlichen Plugins, die dann immer einzeln zusammengefasst werden. So werden Methoden für Operationen mit dem Servernetzwerk (ServerAPI und BridgeAPI) in unterschiedlichen Plugins aufbewahrt. Und Befehle haben wieder andere Bibliotheken (CommandFramework und TerraconiaCommandFramework). Das ist schnell verwirrend, weswegen diese ganzen unterschiedlichen Plugins zusammengefasst werden. - Reduzierung von verschiedenen Plugins:
Wie weiter oben erwähnt haben wir über 100 Plugins. Das führt dazu, dass wir bei Updates immer sehr viele Probleme lösen müssen. Daher werden einige Plugins reduziert. Als einfache Beispiele: Die Plugins zum Spieler verwarnen (WarnAPI), Jails (Jail), für den Jail NPC (JailNPC), zum Bannen (BanManager) und zum kombinierten Anzeigen dieser Vergehen (/warns, Penalties), werden zusammengefasst. Dadurch werden mehrere einzelne Projekte zusammengefasst und wir müssen in Zukunft weniger Plugins verwalten. - Aktualisierung der Abhängigkeiten:
Mit der Zeit entwickelt man sich. Vor Jahren war Terraconia noch modern, die eingesetzten Sachen waren das neuste, was es gibt. Doch in der Zwischenzeit wurden neue Sachen entwickelt, schönere Tools, bessere APIs. Und genau diese Änderungen möchten wir auch gerne einsetzen. Die notwendigen Änderungen dafür lassen sich nun durch die grundlegende Überarbeitung ideal einarbeiten und umsetzen. Eine erste Änderung sieht man an dem Einsatz von MiniMessage zu der Anzeige von Nachrichten.
All diese Änderungen und noch ein paar neue Features kommen also mit der 1.18, weswegen das Update sich noch etwas Zeit lassen wird.
Aktueller Stand
Die Änderungen an der Entwicklung mit dem neuen Gradle-Plugin und den automatischen Bauen sind bereits abgeschlossen. Die Bibliotheken für die Plugins wurden aufgeräumt, überarbeitet und zusammengefasst. Aktuell werden die verschiedenen Plugins zusammengefasst und aktualisiert. So sind bereits das Tutorial-Plugin, das Chat-Plugin, das komplette Info-System (FAQs, Broadcasts, alerts, etc.) und das Voteplugin so gut wie vollständig aktualisiert.
Die aktuellen Arbeiten umfassen noch das Strafsystem (Jails, Banns, Warns, Mutes) und das Navigator-Plugin (TPs zu anderen Spielern, Warps, Homes).
Das alles nimmt die kommenden Wochen immer mehr an Fahrt auf, weil die nervigen Anpassungen an den Bibliotheken nun so gut wie abgeschlossen sind. Diese Anpassungen müssen immer mit Bedacht gemacht werden, weil dies dann die API ist, die wir in den kommenden Jahren nutzen werden.
Noch mehr Tiefe oder noch Fragen?
Du möchtest noch mehr wissen oder hast Fragen zu den technischen Hintergründen auf Terraconia? Dann hab ich vielleicht eine passende Idee dafür.
Ich möchte als Experiment am Samstag, den 28.05.2022 ab 16 Uhr das Entwickeln streamen und euch die Möglichkeit geben, mir live über die Schultern zu schauen.
Der Stream wird auf dem offiziellen Terraconia Twitch Account verfügbar sein.
Dabei werde ich im Teamspeak sein und eure Fragen beantworten und auf Vorschläge eingehen. Wenn du bereits jetzt konkrete Fragen hast, würde ich mich freuen, diese in den Kommentaren hier zu sehen. Dadurch kann ich diese direkt hier beantworten oder bereits für Samstag eine passende Antwort vorbereiten.
Schaut doch mal vorbei
Kommentare 9
HerrSandoros
Hier ein kleiner Fragenkatalog meinerseits,könnte etwas ausschweifend sein:
-Nach Abschluss der Umstrukturierung,wie lange wird es schätzungsweise dauern, um auf die neuste Minecraftversion Terraconia zu bringen?
-Wird die gewonnene Zeit,welche dank der Neustrukturierung für zukünftige Updates auf neuere Minecraftversionen gewonnen wurde langfristig genutzt um grundlegende Konzeptionelle des Servers zu lösen (Mietermangel,schwächelnde Wirtschaft,langzeitcontetnt außerhalb des Städtesystems für Spieler/innen,welche bereits sehr lange dabei sind)?
-Kannst du etwas zu den Dungeons verraten oder gar zeigen (wie viele unterschiedliche wird es geben,wie viele Leute braucht man für die Dungeons und wie schwer sind sie )?
-Was ist mit der 3.Welt (Lumenia;seit knapp über einem Jahr gab es kein neuen Post mehr auf dem Instagramkanal von Terraconia zu Lumenia)?
-Wann soll das neue Tutorial kommen?
-Welche Inhalte der 1.18 werden auf Terraconia verfügbar sein und was nicht (und warum)?
HerrSandoros
-Wird es weitere Custom Mobs zukünftig geben (zusätzlich zu den wütenden Erzen)?
-Wird es weitere Möglichkeiten geben die Devs (Unterstützung für das Update auf 1.18: Community hilft Entwicklern) zu unterstützen?
Joo200 Autor
- Ich kann nur schlecht Schätzungen abgeben, wie lange bestimmte Sachen (noch) dauern werden und wann genau wir auf die 1.18 updaten können. Da die Umstrukturierung direkt auch die Anpassungen der Plugins auf die 1.18 beinhalten, werden beide Sachen quasi gleichzeitig gemacht.
- Es gibt keine gewonnene Zeit. Es gibt nur Zeit, die ich weniger in Versionsupdates investieren muss. Ich glaube, dass du an dieser Stelle grundlegend nicht verstehst, wie ehrenamtliche Arbeit funktioniert. Ich "gewinne" durch alle Arbeiten an Terraconia nie Zeit. Durch eine Umstrukturierung habe ich nur mehr Zeit für andere Themen. Ich hoffe, dass ich nach der 1.18 dann auch andere Themen angehen kann, die schon länger auf der ToDo-Liste stehen. Ich empfehle hierzu dringend den folgenden Thread von mir: Gedanken eines Entwicklers. Ich investiere meine Zeit, so wie ich kann und möchte. Eine solche Frage suggeriert mir aber, dass wir als Team zu wenig Zeit investieren würden. In meinen Augen steht dir eine solche Bewertung nicht zu.
- Dungeons sind aktuell nicht aktiv in der Entwicklung, deswegen kann ich dazu auch nichts zeigen.
- Die 3. Welt kommt, dort sind noch Terraforming-Aufgaben offen, die bei Zeiten angegangen werden.
- Das neue Tutorial kommt, wenn dazu Zeit ist. Idealerweise also gestern, aber da war ich zu faul.
- Wenn wir mal die 1.18 haben, werden wir auch erklären, welche Mechaniken geändert sind. Da dies noch nicht alles fix ist, gibt es keine Aussage dazu.
- Ja, es wird weitere Custom Mobs geben.
- Wenn es sinn macht, werde ich weitere Aufgaben an die Community abgeben. Künstlich irgendwelche Aufgaben mir auszudenken, macht da aber keinen Sinn.
Robbe707
Heute/Gestern hat Mojang das 1.19-Update für den 7.6. angekündigt.
https://www.minecraft.net/en-u…le/the-wild-update-coming
Gibt es da schon Pläne, wie das dann abläuft, also geht Terra gleich auf die 1.19 oder nur auf die 1.18, oder müssen wir da noch warten, bis das entschieden werden kann?
Joo200 Autor
Wir werden wohl direkt auf die 1.19 gehen. Vorerst entwickle ich weiter für die 1.18 bis die 1.19 soweit stabil ist.
Mit den Änderungen sind für uns dann Versionsupdates auch weniger Aufwand.
HerrSandoros
Würde mir wünschen wenn das VOD nach dem Stream auf dem Terraconia Twitchkanal verfügbar ist,da ich etwa Nachmittags arbeite und erst ab 21 Uhr oder später zuhause bin.
Mr_Leroux
Alternativ gibt es ja den Terraconia Youtubekanal auf den man das hochladen könnte.
Auf Twitch muss man ja um den Stream länger als VOD online zu haben Partner sein.
Joo200 Autor
Ich werde den Livestream auf jeden Fall aufzeichnen. Ob und wie ich das Video danach auf YouTube hochlade, wird sich dann zeigen.
An sich wäre das wohl aber eine gute Idee, damit ich bei der Fortsetzung des Formats dann nicht alle Fragen doppelt bearbeiten muss und auf den vorherigen Stream verweisen kann.
Joo200 Autor
Der Stream ist hier verfügbar: