Status Update #38 - BDL, Teil 14: 4096 x ~0,8sec = -.-

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

      Status Update #38 - BDL, Teil 14: 4096 x ~0,8sec = -.-





      Um den Code lesen zu können auf 1080p ansehen


      Hey,

      das Ziel war dieses mal die automatische Generierung einer Spielwelt mit Inseln zu testen. Die Inseln sind einfach in Chunkli gespeichert und werden nach einem Muster eingefügt.
      Die "Straßen" (Bojen in diesem Fall) sind auch einfach nur gespeicherte Grundstücke. Das System erlaubt am ende beliebige Welten automatisch zu generieren.

      Dafür muss aber natürlich das Generieren ohne Fehler funktionieren und auch die Map-Erneuerung einwandfrei laufen. Mit den im Video beschriebenen Problemen würde etwas wie die Map-Erneuerung von Kadcon wohl 2-3 Tage dauern um mit der Lichtberechnung fertig zu werden. X/
      Ich werde es aber zunächst mal dabei belassen, da in der 1.15 auch weiter an der Chunk-Verwaltung geschraubt wird.

      Kade

      PS: Jo die Musik ist etwas zu laut im Video.


      Bilder
      • xls.png

        32,81 kB, 1.109×720, 574 mal angesehen
      • lightparty.jpg

        175,46 kB, 1.277×714, 7.611 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.
      Auf jeden Fall richtig cool (y) Was mir noch eingefallen ist, ist dass du (irgendwann in der Zukunft) noch daran denken solltest, dass der Meeresgrund an den Gebietsgrenzen angepasst wird. Sonst hat man da ja so unschöne Kanten. Ich habe keine Ahnung, ob das irgendwie technisch sinnvoll möglich ist, oder ob man einfach die Template so baut, dass die einfach alle das selbe Muster an den Kanten haben und dadurch einfach aneinander passen.
      Um nicht zu lange vom Problem der Lichtberechnung aufgehalten zu werden hätte ich einen Vorschlag:
      1. Lichtberechnungen werden benötigt
        Ein Auftrag zur Lichtberechnung wird in die Queue gelegt, da Grundstücke eingefügt, angehoben, oder sonstwie verändert wurden.
      2. Lichtberechnungen werden durchgeführt
        Die Lichtberechnung wird nicht direkt durchgeführt. Erst zwischen 02:00 und 07:00, wo Spielerzahlen wahrscheinlich auf einem Minimum sind, wird die Queue Stück für Stück abgearbeitet. Wird nicht alles innerhalb dieser Zeit geschafft, bleiben die restlichen Grundstücke in der Queue und warten auf den nächsten Zeitraum der Lichtberechnung.
      3. Spieler wollen JETZT Lichtberechnungen
        Für Spieler, die sofort die Lichtberechnungen für ihre angepassten Grundstücke haben wollen, soll es einen Befehl geben, der ihre Lichtberechnungen direkt startet. Jedoch werden manuell angeforderte Lichtberechnungen nur mit einem Bruchteil der Leistung durchgeführt, damit das Spielerlebnis von anderen Spielern nicht durch Lags beeinträchtigt wird.
        Benutzten mehrere Spieler diese Funktion gleichzeitig, teilen sie sich die den Lichtberechnungen zugeteilte Leistung, wodurch beide Aufträge jeweils etwas länger brauchen.
      Mit diesem System sind, ohne manuelle Anforderungen von Spielern, täglich Lichtberechnungen für 22500 Grundstücke möglich.
      Es können direkt Ergebnisse für Spieler erzielt werden, die direkt sehen wollen, wie ihr verändertes Grundstück aussieht.
      @Kademlia kann sich vorerst anderen Problemen widmen, anstatt sich den Kopf weiter an der Optimierung der Lichberechnungen zu zerbrechen.

      Ich denke, dass diese Übergangslösung ein guter Kompromiss zwischen sofortiger Wirkung, und praktikabler Umsetzung ist.
      Solange weniger als 22500 Grundstücke am Tag editiert werden, ist am nächsten Tag alles frisch berechnet, und hübsch anzusehen.

      Für große Welt-Regenerierungen wird es zwar mehrere Tage brauchen, bis überall das Licht korrekt angezeigt wird, aber vielleicht hat es seinen Charme, wenn man sieht, dass die Umgebung noch "frisch" ist.. ;)
      Mein Forenkram

      MC387:0 [Hilfe] KadLinks
      Alle wichtigen Links für Kadcon an einem Ort

      MC137:0 [Makro] Makro-Sammlung
      Hier findet ihr ein paar Makros, die euch das Spiel etwas erleichtern können

      MC399:0 [Fun] Kadcon Achievements
      Eine Auflistung von vielen verschiedenen Achievements die man auf Kadcon erreichen sollte um den Server "durchzuspielen"
      Im Video nutze ich bereits ein System, welches immer nur dann, wenn gerade nichts anderes an steht die Lichtprüfungen weiter führt. Im Prinzip was du in 1. und 2. ansprichst - bis auf dass keine Uhrzeitbeschränkung existiert. Du willst ja eine "load"-Beschränkung eher haben.

      Auch Punkt 3 ist so halbwegs mit drin: Manuell getätigte Licht-Aufträge (/land relight) werden bevorzugt und vorne in die Warteschlange gelegt. Andere indirekte Licht-Updates (Umziehen, einfügen, erneuern usw.) stehen dann hinten an.

      Aber das ist für mich nicht so das Problem - mir gehts um die administrative Verwaltung von hundertausenden Grundstücken. Beispielhaft soll es möglich sein per Knopfdruck einen neuen Test-Server von 0 komplett auf zu setzen. Die Korrektur der Lichtwerte würde - etwas das aktuell vollautomatisch ~15-30Min dauert je nach gewählten Welten - auf einen halben Tag hochschrauben. Da ist kein schnelles Testen des kompletten Stacks/Deployment mehr möglich.
      Ich würde SEHR gerne an etwas anderem sitzen, da dieser Teil ("Chunkli Probleme") mittlerweile über 2 Monate gefressen hat - leider ist die Alternative auch nicht doll und würde mich nach und nach nur immer mehr aufregen :poop:


      Aktueller Stand:
      Ich habe das Problem am Ende des Videos gelöst. Probiere aber noch immer die Licht-Probleme zu minimieren. Soweit ich es einschätzen kann habe ich zumindest die Geschwindigkeit etwa verdoppelt.

      Kade
      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.