Status Update #27 - BDL, Teil 4: WorldRestore, Roadblocks

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

      Status Update #27 - BDL, Teil 4: WorldRestore, Roadblocks



      Hey,

      in diesem Update geht es um den Weltengenerator des neuen Serverkonzepts.
      Mit Minecraft 1.13 wurden einige größere Änderungen in Minecraft vorgenommen. Dies wurde auch hier schon angesprochen. Im Bild sieht man eins der Probleme, dass ich bei der Umsetzung des neuen Servers hatte.


      WorldRestore


      Konzept
      Grundlegend kennt man als Kadcon-Spieler die Funktionsweise vielleicht schon aus der Spawnie-Welt. Es gibt einen Bereich auf der Karte, der für Spieler unzugänglich ist (A im Bild). Dieser Bereich gilt als "Blaupause" für das Spielgebiet. Ein Script kann nun im Hindergrund diesen Bereich beliebig oft in die Spielwelt einfügen (B). Dies hat einige Vorteile die wichtig für das Kadcon-Konzept sind.
      • Es ist möglich Fehler in der Ursprungskarte zu korrigieren und diese Fehler auf die ganze Spielwelt zu übertragen.
      • Es erlaubt Grundstücke zu regenerieren, wenn sie inaktiv geworden sind.
      • Es erlaubt gegriefte/von Admins zerschrottete Straßen usw. wieder herzustellen ohne viel Aufwand.
      • Die Spielwelt ist dynamisch zur Laufzeit erweiterbar wenn der Platz nicht mehr reicht.
      • Die Straßen der Spielwelt können beliebig geändert werden (Winter/Sommer Designs).



      Aufbau der Spawnie-Welt. A = Restore-Bereich, B = Spielbare Kopien von A



      Fehlende Funktionen & Probleme

      Aber das Spawnie-System auf Kadcon hat leider auch starke Einschränkungen. Für das BDL-Projekt ist das System nicht gut genug.
      • Die Welt ist in 1x1 GS Grundstücke aufgeteilt.
      • Es ist nicht möglich ohne weiteres ein "5x5" GS-Gebeit für einen Spieler zu belegen. Der Spieler müsste sofort all diese GS kaufen.
      • Der Restore-Bereich (A) muss per Hand eingefügt werden. Es gibt keine "Beschreibung" von diesem Bereich. Er ist fest vorgegeben über einen Script.
      • Das Design der Straßen zu ändern ist daher relativ eklig.
      • Das Hauptproblem für BDL also: Ein Spieler kann nicht ein größeres Stück Land bekommen und belegen. Es gäbe nur 1x1 GS und das wird schnell langweilig.

      Vielleicht noch interessant. Bei der Entwicklung der Spawnies war auch das Setzen der Straßen im Restore-Bereich alles per Hand. Einige Zeit später ist dann dazu gekommen, dass wir
      die Straßen austauschen können zu Ostern, Weihnachten usw. dabei hat @ICETE4 dann ein kleines Excel-Hilfsprobgramm gebastelt um die Erstellung zu vereinfachen. Über dieses Tool wird dann eine Datei generiert, die es uns erlaubt in Chunkli gespeicherte Grundstücke automatisch in einen ausgewählten Bereich einzufügen.

      Typischerweise baut das Team dann auf dem Testserver an neuen Straßendesigns. @stefm90 prüft dann i.d.R. dass diese auch alle passen und die richtige Struktur haben und erstellt eine neue Restore-Area.
      Ich füge diese am Ende dann auf den einzelnen Servern nach einer letzten Prüfung ein und lasse die Scripts zur Regenerierung laufen. Am Ende sind so alle Straßen in ~1 Stunde komplett durch neue ersetzt.



      Das Excel-Script zur Generierung von Spawnie-Regionen. Welcher Straße benötigt wird, wird automatisch errechnet.


      Anpassungen

      Für den BDL-Server reicht dies aber nicht. Es muss mindestens noch dazu:
      • Generierung von Restore-Gebieten (A) über mehrere Wege: Aus gespeicherten Chunkli-Gebieten, aus Zufallsinseln mit korrekt passender Größe und einfach noch Zufallsgebiete.
      • Es muss möglich sein größere Gebiete auf einmal zu kaufen oder zumindest für genau einen Spieler zu besetzen.
      • Es muss möglich sein größere Gebiete nur dann zu er neuen, wenn kein einziges der einzelnen GS vergeben ist.
      • Es soll möglich sein das eigene Grundstück zurückzusetzen. Dafür muss es einem Spieler möglich sein ein größeren Bereich als 1x1 GS mit /land restore zu bearbeiten.
      • Einige Befehle sind nötig für die Verwaltung solcher Bereiche :)

      Einige der Befehle um Restore-Gebeite zu erstellen/verwalten.



      Probleme

      Aber auch wenn eigentlich alles geplant, überlegt und nach und nach programmiert wird kann es am Ende etwas ganz anderes sein, was Kopfzerbrechen bereitet. Grundsätzlich ist das Ersetzen solcher großen Bereiche auf der Karte etwas, was eigentlich in MC so nicht vorkommt. Um dies zu ermöglichen habe ich dann sehr viel Zeit in Chunkli investiert - Chunkli erlaubt es überhaupt, dass diese Art von Bearbeitung der Spielwelt zur Laufzeit möglich ist. Aber dafür muss man natürlich auch ganz tief in Minecraft rumpfuschen. Unter anderem musste ich dafür Fehler in MC selber beheben.

      Wie man ganz oben im Bild erkennen kann ist auch hier irgendetwas schief gelaufen :rolleyes: . Im oberen Teil sieht man die Restore-Area. Bei der Welt handelt es sich um eine Insel-Welt mit verschieden großen Inseln. Die Straßen sind in diesem Fall einfach Wasser-Straßen. Man muss mit dem Boot fahren um von A nach B zu kommen. Im unteren Teil sieht man dann das Problem: Es gibt ganz viele "schwarze Löcher" auf der Karte. Irgendwie wurde die Spielkarte nicht richtig generiert. Diese Art von Problem tritt leider häufiger auf und dies ist nur ein Beispiel dafür. Meistens liegt dies daran, dass der Welt-Generator von Minecraft selber auch irgendwie dazwischenspringt oder häufig liegt dies auch daran, dass die Grundstücke zwar alle fleißig generiert und eingefügt werden - aber nicht korrekt/schnell genug gesichert werden. Probleme dieser Art (nicht dieses speziell) haben bisher in der Entwicklung vom 1.13 Server wohl ~2 Monate gekostet.

      In diesem Fall war das Problem, dass die veränderten Grunstücke (Chunks) von Minecraft nicht schnell genug gespeichert wurden und dies beim Herunterfahren des Servers zu einem Timeout geführt hat. Das Problem konnte ich lösen, indem ich ein paar Anpassungen am Speicher-Algorithmus in Minecraft selber vorgenommen habe.





      So viel in diesem Update,
      Kade

      PS: Ich weiß, dass es einige Bedenken gibt. Auf diese habe ich auch geantwortet. Aber ich habe m.E. hier im Vorwort auch schon alles nötige dazu gesagt. Meine Entscheidung habe ich getroffen und sehe jetzt auch nichts Neues, was nicht erwartet war.
      Bilder
      • islandserror.jpg

        685,21 kB, 3.840×2.160, 18.829 mal angesehen
      • islandserrormini.jpg

        35,89 kB, 600×338, 1.112 mal angesehen
      • spawniegen.jpg

        190,75 kB, 747×579, 1.144 mal angesehen
      • spawnieroads.png

        29,28 kB, 992×658, 1.120 mal angesehen
      • worldregencmd.png

        33,33 kB, 636×514, 1.122 mal angesehen
      Bitte möglichst alle Fragen im Forum stellen und nicht mir per Privatnachricht.
      Ich Teile meine Zeit aktuell: 2,5 Tage 1.13, 2,5 Tage Arbeit, 1 Tag Kadcon. Eine PN-Antwort kann entsprechend länger dauern.
      Und keiner traut sich hier etwas drunter zu schreiben? :)
      [Sieht leider nicht mehr nach der voll aktiven Community aus. :( ]

      Lieber Kade,

      willst du den Server noch mit Leben füllen? Dann drück 3 Knöpfe und es wird eine Menge positives passieren. Du musst es nur wollen.



      LG web

      PS: @Kademlia
      "Es ist leichter, ein Atom zu spalten als ein Vorurteil." (Albert Einstein) :tea:

      Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „webnaex“ ()

      @webnaex

      ich hatte hier angefangen nochmals alles zu beschreiben, Probleme, Kritik, blablabla

      doch dann habe ich gemerkt... Zeitverschwendung und mir ist eine wichtige Erkenntnis klar geworden

      Kade geht seinen Weg und nicht den Wunsch der Community.

      Ich für meinen Teil werde als Konsequenz schauen, ob ich auf einen Nachfolger von Minecraft wechseln werde.
      Aktuell kommen einige und darunter gibt es nen paar sehr vielversprechende in naher Zukunft
      Vielleicht sollte hier auch eher jemand schreiben, der Kade bei seinen Problemen helfen kann im Programmierbereich und nicht Mecker-/Heul- Menschen.

      Jeder einzelne ist ein Teil einer Zukunft. Und wenn jemand geht kommt jemand Anderes.
      Wer Böses von mir spricht, betrete meine GS nicht.
      Denn jeder hat in seinem Leben auf sich selber Acht zu geben!


      Eisnebel schrieb:

      Vielleicht sollte hier auch eher jemand schreiben, der Kade bei seinen Problemen helfen kann im Programmierbereich und nicht Mecker-/Heul- Menschen.

      Jeder einzelne ist ein Teil einer Zukunft. Und wenn jemand geht kommt jemand Anderes.


      Es geht nicht ums Programmieren. ||

      Siehe 1: Die Zukunft Kadcon's
      Siehe 2: Die Zukunft Kadcon's


      [Edit 27.04.2019; 11:41] PS: @Eisnebel und "Meckern" oder "Heulen" tut hier auch keiner. Ich finde es erschreckend wie du hier die Arbeit der Community mit konkreten Vorschlägen und einfachen Massnahmen mit Füssen tretest. Da haben sich einige Leute Stunden und Tage Gedanken gemacht für Kadcon und du betiteltst das als "Meckern."
      Bitte lösch deinen Beitrag, weil er völlig unangemessen ist.

      PS2: Seit 18.03.2019 bist du hier im Forum registriert. Beschäftige dich bitte mehr mit der Lage, bevor du solche Falschnachrichten postest.
      "Es ist leichter, ein Atom zu spalten als ein Vorurteil." (Albert Einstein) :tea:

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „webnaex“ ()

      Ich denke mir so.

      Man konnte alte server in v12 bleiben lassen und neue karte mit 13-14 beginnen, aber so dass beide nebeneinander laufen koennen. Ich bin nicht sicher ob das gar moeglich ist.

      So habe ich schon geschrieben em Ende von Teil 3. aber darf fragen auch hier:

      Wäre nicht sinvoll die Alle drei alte Welten als 3 Inseln in Nordsee bein Deutschlandskarte einzustecken?

      Nordsee kann vielleicht als Übergang-Grenze zwischen MC-Karten mit verschiedenen versionen dienen. Dann werden vielleicht alle zufrieden sein: Neue und alte Hasen.

      Fasolek Bahnbauer
      Wenn die Umstellung nicht klappt fände ich es super wenn man die Texturen von der neuen Version mopst und eine ID draufhaut... So ala' ins alte System integrieren.
      Zum Beispiel: neue Tiere, Pflanzen (Korallen!<3), ect.

      Ich bin gespannt wie es am Ende dann wird, aber ich bin sicher es wird ne Lösung gefunden die Allen halbwegs passt.
      Wer Böses von mir spricht, betrete meine GS nicht.
      Denn jeder hat in seinem Leben auf sich selber Acht zu geben!