Posts by Devidian

    Ich glaube ABM ist kaputt

    Super, damit kann ich dann ein Plugin schreiben das meine Fake API ersetzt, werde wohl aber einfach die raw files auf dem server speichern und meine rendering-app dementsprechend anpassen, das diese auf Änderungen im raw Verzeichnis reagiert und dann on-the-fly dekomrimiert und die bilder in allen zoomstufen aktualisiert.


    Clientseitig würde ich noch einen Flag in den Einstellungen einbauen (default true), mit dem Spieler der API das anfordern erlauben kann oder nicht (falls jemand Probleme mit seiner Internetleitung und dem feature hat). bei false würde die API immer null senden, fertig.

    Das klingt doch schon mal gut, meine aktuelle Lösung arbeitet auch nur mit den komprimierten original-files. Kannst du kurz erläutern wie du es genau implementiert hast wenn du Zeit findest @red51? Meine aktuelle Lösung (Server) merkt sich datum und hash der Dateien und vergleicht erst vor einer Übertragung um Daten zu reduzieren. Und mein aktueller Client sendet onfilechange hash und erstell datum an den Server zum Abgleich bis dieser dann ein ok für die Übertragung gibt.

    DE:


    Ich konnte die Tage kaum Zeit aufbringen, habe heute aber ein kleines Update für die map. Man sieht jetzt unten links die Ingame-Koordinaten.


    EN:


    I had less time the last days but today i made a small update that displays the ingame coordinates in the bottom left corner of the map.

    DE:


    So die erste Version des Frontends habe ich auch fertig, wie gesagt als Angular+ leaflet. Das Repo mit dem Quellcode findet ihr hier:
    https://github.com/Devidian/oz_rw_risingmap_frontend


    Unter releases gibt es dort eine version die ihr nicht kompilieren müsst, einfach einen unterordner map/z/x/y.png hinzufügen mit den map-tiles, (oder wie ich es gemacht habe mit nginx als alias)
    Wie gesagt richtet sich das aktuell an erfahrene Spieler die sich mit dem Aufsetzen eines Webservers und dergleichen auskennen. Versionen für weniger erfahrene Server-Besitzer kommen später. Wer mag kann aber gern eine Anleitung schreiben. ;)
    Wer Hilfe braucht einfach hier fragen!


    Die aktuelle Live Version meines Servers findet ihr wie immer hier: https://rwmap.omega-zirkel.de/



    EN:


    So, the first version of the frontend is ready now. As i said i used Angular+leaflet. The repo with sources can be found here:
    https://github.com/Devidian/oz_rw_risingmap_frontend


    There is also a release version that can be rolled out on your webserver, just create a subfolder map/z/x/y.png with the map tiles created from the backend.
    As said, currently this aims at players with knowledge of webservers and stuff like that. There will be more user-friendly installs/manuals later. If some experienced server owner wants to create a manual, feel free to do so.
    If anyone needs help just ask here.


    As always you can find the current version running on my server here: https://rwmap.omega-zirkel.de/

    DE:


    Habe ein wenig getestet mit der windows exe. Funktioniert soweit gut, der Map Server hat noch nen kleinen Bug gehabt der dazu führte das ein Prozess sich aufgehängt hat und seine Queue nicht abgearbeitet wurde. Das sieht dann so aus


    teste gerade mit einem Fullsync ob der Bug behoben ist.


    EN:

    just tested a bit with the windows client. So far it works, only the map server had a bug that caused processes to hung up and stop working on map tiles they became from the master process. (see picture above)
    Currently i'm doing a full sync of my map files to test if the bug still occurs or if it is fixed now.

    DE:


    Ich habe noch ein paar Bugs behoben, der Backend Server zum Beispiel hat teilweise Kartendaten selbst überschrieben wenn die parallelen Prozesse die selbe Bilddatei bearbeitet haben. Das führte zu teilweise leeren Kartenfragmenten.
    Der Client konnte mit dem paket nexe in eine Ausführbare Datei umgewandelt werden. Die ist zwar riesig im Vergleich zum code, dort steckt aber NodeJS mit drin für die Ausführung als standalone.
    Theoretisch könnten sich also die ersten Freiwilligen Tester melden. Ihr braucht dazu einen Server auf dem ihr GIT+NodeJS installieren könnt, es muss nicht euer Gameserver sein. Die Repositories findet ihr hier:


    Das Map-Backend:
    https://github.com/Devidian/oz_rw_risingmap_backend
    Der FakeAPI Server:
    https://github.com/Devidian/oz_rw_risingmap_fakeapi_server
    Der FakeAPI Client:
    https://github.com/Devidian/oz_rw_risingmap_fakeapi_client


    Für das Frontend hab ich noch kein repo, daher als Anhang.
    Wer nur den Client mit testen möchte kann dies mit meinem Vorkompilierten WindowsClient machen. Ich kann gerne noch die Linux Version hinzufügen wenn gewünscht.
    In der enthaltenen config/config.json müßt ihr nur den Pfad zu eurem RisingWorld Verzeichnis anpassen.


    https://github.com/Devidian/oz…lient_win_0.1.0-alpha.zip


    Spielen müßt ihr dafür auf meinem Server "[DE] Omega-Zirkel ..." und das Gebiet das ihr erkundet dann unter https://rwmap.omega-zirkel.de/ (am besten ihr lauft in unbekanntes Terrain zum testen)
    Bitte erst dem Server einmal beitreten und dann erst das Tool verwenden. Ich werde im Spawnraum in den Kisten Karten hinterlegen damit auch jeder eine Karte hat um dies zu testen. (bitte jeder nur eine nehmen)


    Detaillierte Anleitungen etc. kommt alles später!


    EN:


    I have fixed some bugs, for example the backend server threads had overridden each other when saving the same map tile, resulting in loss of some map-data in certain zoom levels.
    With nexe package i managed to build an executable client. The file is big in compare to the source but it contains a whole nodeJS environment for standalone execution.
    So in theory, the first volunteers could try to test this stuff. As Serveradmin you need to know how to install GIT+Nodejs with typescript and how to compile the source, if you need help feel free to ask. The server doesn't need to be the gameserver itself!
    The repositories you need can be found on github:


    Map-Backend:
    https://github.com/Devidian/oz_rw_risingmap_backend
    FakeAPI-Server:
    https://github.com/Devidian/oz_rw_risingmap_fakeapi_server
    FakeAPI-Client:
    https://github.com/Devidian/oz_rw_risingmap_fakeapi_client


    I dont have a repo for the frontend yet, just my prototype so its in the attachments.


    If you just want to help testing the client you can do this with my compiled windows client, if you are a linux user i can add a linux client too if you ask. You just have to edit config/config.json and change the location of your RisingWorld directory.


    https://github.com/Devidian/oz…lient_win_0.1.0-alpha.zip


    To test this you must play on my server until any other serveradmin setup his own map server, its called "[DE] Omega-Zirkel ..." and the map https://rwmap.omega-zirkel.de/ (for testing best results would be exploring unexplored areas)
    I will add some ingame maps into one of the containers in the spawnroom of my server, please only take one.


    Detailled instructions will follow if every part is more stable.

    Files

    • RWMap.zip

      (618.97 kB, downloaded 650 times, last: )

    Ok then, my Server would fit your needs it's called "[DE] Omega-Zirkel | Plugins: [AP] [ABM] [GPS] [PNB] [OZGI] [OZDP]", although the name currently may indicate german language only, we also had english player in the past and it should be renamed anyways - i just do not want that everybody looses his/her ingame map.


    Our settings are survival pve, you can build where you want what you want - if its not just a big block :D. As soon as you've found a place to stay i may also protect your area, so in case other players may join can't grief your stuff.


    Currently Plugins are:
    Areaprotection
    gps
    PNB
    AnimalBreedMaster
    DiscordPlugin
    GlobalIntercom


    And i'm working on a Online-Map, preview: https://rwmap.omega-zirkel.de/


    Maybe you just join look around and maybe stay or not if you dont like, its all up to you ;)

    DE:


    Gestern Abend konnte ich noch etwas am Projekt arbeiten. Ich hab es jetzt soweit das ich in die nächste Phase gehen kann, heißt alle Komponenten sauber in git repos stecken und auf meinen Servern zum testen ausrollen.


    EN:


    Yesterday i could invest some time into this project to get it ready for the next stage, which means cleanup code and create initial git repos and then test it on my own servers.

    Fine! I had time to study java (plugin development). Let me ask you for help in case of errors or clarifications? I will be very grateful for your help.


    Großartig! Ich hatte Zeit, Java (Plugin-Entwicklung) zu studieren. Darf ich Sie um Hilfe bitten, falls Sie Fehler oder Klarstellungen haben? Ich werde für Ihre Hilfe sehr dankbar sein.

    EN:


    Of course you can, but for a better/faster help just ask in a new thread in this forum and everybody may help you (including me)


    DE:


    Natürlich kannst du, aber damit du schnellere / bessere Hilfe bekommst stelle deine Fragen einfach hier ins Forum, dann hilft dir sicher jeder (auch ich)

    DE:


    Gestern habe ich es geschafft das "RisingMapBackend" mit meinem code aus dem Prototypen zum laufen zu bringen. Ich habe den output gestern nicht mehr geprüft aber es hat ca. 500MB Kartenmaterial erzeugt aus meinen lokalen Dateien (Alle Zoomstufen von 0 bis 4, wobei 4 Ausgangsstufe ist). Das aktuelle Prozessmanagement gefällt mir noch nicht und ich werde dies als nächstes überarbeiten. Aktuell gibt es einen Master Prozess der für jedes Kartenteil einen eigenen Kindprozess für die Verarbeitung startet, bis zu 10 gleichzeitig. Da aber die einzelnen Prozesse so schnell sind, erzeugt diese einen ziemlichen overhead und ich werde den Master so ändern, das er eine feste Anzahl an MapRenderern startet was man in der Konfigurationsdatei einstellen kann. Der Master wird dann die ankommenden Kartendaten einfach in rotation an die Renderer senden. (Der Master speichert die roh-map files lokal, sendet dem Renderer die Koordinaten und den Dateinamen (hash des inhalts) und der Renderer löscht die Datei nach dem bearbeiten wieder)


    Der FakeAPIClient macht jetzt beim ersten start eine vollständige Synchronisation und überwacht dann den map Ordner auf Änderungen. Das Funktioniert soweit einwandfrei.


    Der FakeAPIServer muss sich jetzt nur noch die aktuellen Kartendaten merken, damit er auch nach einem neustart den aktuellen Stand aller MapTiles kennt und nicht bei einer vollständigen synchronisation zum Beispiel schon vorhandene neuere Kartenteile überschreibt.


    EN:


    Yesterday i had some time and managed to get the "RisingMapBackend" running with my prototype code. I did not check the results yet but it generated ~ 500MB map data out of my local map files (all zoom levels from 0 to 4 where 4 is origin map tile). I don't like my current process management of the backend and will change it next. Currently there is a master process that spawns a child which computes a single tile and then exits for each tile. Up to 10 processes spawn at the same time but the single process of one tile is so fast that creating a new child on every tile is a huge overhead. I will change the master to spawn a fixed number of childs that can be set in the config file. Then the master will rotate the incoming map tiles to the childs via IPC. (the master saves the file locally, the child takes coordinates and map file name and deletes the file after computing).


    The FakeAPIClient now makes a fullsync at first startup and then watches the map directory, this is working fine.


    The FakeAPIServer now has to remember all current map data, so that he in case of a restart can reload them. The map-tile-data is needed in case some client sends a fullsync with older map tiles then someone else already uploaded.

    Total der Rotz wenn ihr mich fragt. Ich fand die DSGVO schon der größte mist auf diesem Planeten, weil die Umsetzung des Grundgedanken hier total das Ziel verfehlt hat, aber das schießt den Vogel ab. Hab schon überlegt ob ich dann aus Spass eine Plattform gründe, die ich alle 3 Jahre einstampfe um die selbe unter anderem Namen wieder neu zu erfinden haha ... Am besten das Internet gleich ganz abschalten, zumindest den sichtbaren Teil, denn dann stehen eh nur noch Unwahrheiten und gemachte Meinungen drin... demnächst kann man nur noch im deepweb surfen wenn man seine Meinung frei äußern will. Komm mir schon vor wie in NK

    First of all i have to say that i never used any game servie provider as i own myself a (virtual) root server but i can tell you that nitrado is not a good choice. Everybody i know that used nitrado has made bad experience. For example one of my family members had a 7 Days to die Server by nitrado and it got 3+ rollbacks in a week with several days loss of progress.


    If you have at least a little experience in linux i recommend renting a virtual server. I don't know which provider in your region fits your needs but for example i have a vServer for 30€/month (16 vCores 32vRam) rent at Strato and i'm running more than just risingworld.
    For my current RisingWorld configuration i could also rent a smaller server for 14€/month having 4 cores and 8GB ram maybe.


    What do you pay currently?

    DE:


    Danke @yahwho


    Ich hatte wenig Zeit die Tage, habe es trotzdem schon mal geschafft die Basis für 3 von 4 Komponenten zu erstellen.


    Die "RisingMapFakeAPIClient" Komponente kann sich zur "RisingMapFakeAPIServer" Komponente verbinden, welche wiederum mit dem "RisingMapBackend" verbunden ist. Alles über WebSockets und alles in Node.js geschrieben. Ich muss mal gucken wie ich zumindest die Client Komponente so gestalte das jeder normale Spieler sie einfach benutzen kann.
    Meine Testfunktion sendet schon mal eine datei mit rohdaten vom client zum server wo diese dann geprüft / validiert werden bevor sie dann von dort zum backend gesendet werden. Im backend muss ich nun als nächstes den code aus meinem Prototyp implementieren um die Rohdaten in png's umzuwandeln.
    Die letzte fehlende Komponente ist das Frontend, quasi "RisingMapFrontend", hier werde ich vorerst meinen Prototypen nehmen bis alle anderen Komponenten soweit ihren Job machen. Ich werde dann eine Angular Anwendung draus machen die das Leaflet Framework nutzt (verwende ich im prototyp quasi nur). Diese Komponente wird dann später mit weiteren coolen Funktionen ausgestattet wie WebSocket Verbindung für Live-Updates der Kartendaten oder zum verfolgen der Spieler die gerade online sind.

    EN:


    Thanks @yahwho ;)


    I had very less time in the past days but i've created the basics for 3 of 4 components.


    The "RisingMapFakeAPIClient" Component can connect to the "RisingMapFakeAPIServer" which is connected to the "RisingMapBackend". All connections go through websockets, all components are written in node.js. I have to look how i can get at least the client to be easy used by "normal" players, like an executable.
    My test case takes one map file and sends them from the client to the server where it is "checked" / validated and then send to the backend component. On the backend i now have to implement my prototype code next to convert the raw map data into png's.
    The last missing component 4 of 4 is the frontend component "RisingMapFrontend" i will use my prototype until all other components do their job but then i'll create an angular Project with that leaflet map framework. This component will later get some other cool functionality like websockets connection for live map updates (reload map images or track online player location)

    Oh yeha i know that Problem too. I also would Like to Change My Server Name again, but i do Not want that everybody looses His map again. Last Time i changed My local folder but i cant change those of my players. Not everyone knows where to change that.
    I would like that the directory name does not take the Servername into account.




    PS: all spelling errors are presented by My mobile phone autocorrection.

    Hm Autorennspiele gibt es aber auch genug andere ;)