[Server Plugin] Rising Maps v0.3.0

  • Intro
    DE:


    Hallo zusammen,


    heute möchte ich mein kleines Plugin "Rising Maps" vorstellen. Es dient dazu die Ingame-Map Karten der Spieler auf einem Server zu sammeln und auf dem Server abzulegen.
    Mit einer weiteren Komponente "MapRenderer" (siehe "Renderer") können diese Rohdaten dann in Bilder für eine online-map umgewandelt werden.
    Die fertigen Bilder können dann online mit Komponente 3 "WebMap" (siehe "WebComponent") im Browser angesehen werden (Beispiel mein Server: https://rwmap.omega-zirkel.de/)


    EN:


    Hello everybody,


    Today I want to introduce my little plugin "Rising Maps". Its goal is to collect the in-game map tiles of all the players on a server and place them on the game-server.
    With another component "MapRenderer" (see "Renderer"), this raw data can then be converted into images for an online map.
    The rendered images can then be viewed online with component 3 "WebMap" (see "WebComponent") in the browser (for example my server: https://rwmap.omega-zirkel.de/)


    Plugin
    DE:


    Das Plugin wie gewohnt in das plugin Verzeichnis eures Servers kopieren, bitte nicht vergessen auch den shared Ordner aus dem shared-x.x.x.zip in euer plugin Ordner zu entpacken.
    Wer will kann in den properties.settings noch tileRoot und webURL einstellen, per standard landen alle raw Dateien von den Spielern im plugin Unterordner tiles


    Das Plugin sammelt alle Karten-Daten sobald diese bei den Spielern gerendert werden und kopiert diese auf den Server.


    EN:


    The Plugin can be extracted as usual into your servers plugin directory, don't forget to extract the shared zip as well into your plugins directory (this is used by other Plugins too)
    If you like you can than change tileRoot and webURL in your properties.settings. By default all tiles will be saved in the sub-directory tiles of the Plugin directory.


    The plugin fetches all map data from players when they got rendered on the client and copies them over to a local directory on the server.


    Renderer
    DE:


    Der Renderer ist ein Node.js basiertes Programm, aktuell gibt es nur den weg für "Experten", ihr müßt dazu auf eurem game-server node.js (10) mit typescript installieren, euch das repository über git (muss ggf. auch installiert werden) clonen (am besten unter /srv/apps/...) und dann mit npm i;tsc;./app-init.sh die Abhängigkeiten installieren, den code Kompilieren und den service initialisieren. Ihr braucht dafür ggf. root Rechte auf eurem Server. Kopiert euch noch die ./config/config.default.json nach ./config/config.json und passt dort die Einstellungen an.
    Wie gesagt die Anleitung ist vorerst nur für experten, ich werde sowohl eine ausführliche Anleitung (Debian Linux ggf. Windows) sowie eine Vorkompilierte Variante später hinzufügen.


    EN:


    Currently there is only one way to use the rendering component. Due to Canvas dependencies you have to install it with all dependencies on your root or vm server. I cant tell you if you can run it on a rented game server - i predict not. There may be a solution for you later.
    The Manual how to install can be found in the GIT repository README.md (see below)


    (i tried to compile it with nexe into a standalone executable for linux. It runs on the machine where i compiled it but not on my testserver as it fails with missing canvas shared files)


    WebComponent
    DE:


    Die Web Komponente ist eine Angular Anwendung, die Vorkompilierte Version erfordert das eine Datei `mapid.info` im web Hauptverzeichnis erstellt wird mit der ID der map. Die ID findet ihr im log des servers wenn dieser startet.


    Die Vorkompilierte Version befindet sich im Anhang (RisingMapsFrontend-0.4.0.zip) und kann auf jedem webserver installiert werden (kein php kein nodejs, nur html+css+javascript werden verwendet)


    EN:


    The Web component is an Angular application. The pre-compiled version requires you to create a file called `mapid.info` in your web root directory. You can pick your id from your server log files when it starts up.


    The pre-compiled version can be found in the attachments (RisingMapsFrontend-0.4.0.zip). You can install it on any webserver as it dosent need php or nodejs. It's just html+css+js files.


    Code: mapid.info
    {"id":"YOUR MAP ID HERE"}


    Manual + Description / Anleitung + Beschreibung:
    Plugin
    Deutsch: https://github.com/Devidian/oz…/blob/master/README.de.md
    English: https://github.com/Devidian/oz…aps/blob/master/README.md
    Renderer
    English: https://github.com/Devidian/oz…end/blob/master/README.md
    WebComponent
    English: https://github.com/Devidian/oz…end/blob/master/README.md



    History:
    Plugin
    Deutsch: https://github.com/Devidian/oz…blob/master/HISTORY.de.md
    English: https://github.com/Devidian/oz…aps/blob/master/README.md
    Renderer
    English: https://github.com/Devidian/oz…nd/blob/master/HISTORY.md
    WebComponent
    English: https://github.com/Devidian/oz…nd/blob/master/HISTORY.md



    GitHub Sources:
    Plugin
    https://github.com/Devidian/oz_rw_plugin_risingmaps
    Renderer
    https://github.com/Devidian/oz_rw_risingmap_backend
    WebComponent
    https://github.com/Devidian/oz_rw_risingmap_frontend


    ===============================================================================


    WICHTIG: https://forum.rising-world.net…ibrary-for-plugins-0-7-0/ muss auch installiert werden!
    IMPORTANT: https://forum.rising-world.net…ibrary-for-plugins-0-7-0/ must be installed too!

  • was ganz anderes mein mini Map ist ganz leicht speziell bug da ich kann da auch tunnel und viel andere Sachen sehen die unterirdisch sind wird das dann auch auf alle übertragen ?

    das ist unser Einkaufs Zentrum
    für alle andren ist das einfach nur ein graue Fläche wie das dach ist
    ich sehe alle möbel :D

  • In dem Fall wäre es so das der letzte der das Map Tile oder die tiles aktualisiert auch derjenige ist dessen map man sieht. Kommt also ein anderer Spielr vorbei ist das Dach drauf, wenn du wieder kommst ist es wieder weg (vorrausgesetzt du hast auf den refresh button gedrückt) mit der aktuellen Version werden nur noch tiles übertragen die neu gerendert wurden. Wenn also 10 Spieler die bereits das Einkaufszentrum auf ihrer Map haben dort herumlaufen wird wohl gar nichts übertragen, bis einer den ingame refresh button drückt ;)

    Gamer aus Leidenschaft
    (Web) Entwickler aus Leidenschaft
    <3 Vater aus Leidenschaft <3
    (prio in aufsteigender Sortierung ;) )


    ~~~~~~~~~~~~~~~~~
    1. Entweder man macht etwas richtig oder lässt es bleiben!
    2. Egal wie lange etwas dauert, Hauptsache es wird fertig (irgendwann)
    ------------------------
    Discord: Devidian#1334

  • DE:


    Im Git zum renderer gibt es eine Installationsanleitung. Ich habe versucht eine vorkompilierte Version zu erstellen die man einfach ausführen kann, dies gestaltet sich aber durch die Canvas Komponente im renderer schwieriger als gedacht, weshalb aktuell nur die Möglichkeit über eine installation aus den sources bleibt.


    Ich werde in das Map Plugin wohl einen Socket-Client einbauen müssen, der dann auch die map files an die rendering Komponente senden kann wenn diese auf einer externen Maschine liegt.


    EN:


    there is now a manual to install the renderer in the git README. The precompailed version of the renderer did not work yet, some dependencies of Canvas that is needed to generate the images broke the executable when moved to my test server. The only way currently seems to be compilation from source.


    I will have add a websocket to the map Plugin in order to send the map tiles to an external renderer in case someone cant install it on his game server.

    Gamer aus Leidenschaft
    (Web) Entwickler aus Leidenschaft
    <3 Vater aus Leidenschaft <3
    (prio in aufsteigender Sortierung ;) )


    ~~~~~~~~~~~~~~~~~
    1. Entweder man macht etwas richtig oder lässt es bleiben!
    2. Egal wie lange etwas dauert, Hauptsache es wird fertig (irgendwann)
    ------------------------
    Discord: Devidian#1334

  • DE:


    Bescheibung hinzugefügt & aktualisiert.
    Achso und wenn jemand das ganze ausprobiert, bitte mal feedback geben ;)


    EN:


    Updated descriptions in the first post.
    And if someone tries it, please give some feedback!

    Gamer aus Leidenschaft
    (Web) Entwickler aus Leidenschaft
    <3 Vater aus Leidenschaft <3
    (prio in aufsteigender Sortierung ;) )


    ~~~~~~~~~~~~~~~~~
    1. Entweder man macht etwas richtig oder lässt es bleiben!
    2. Egal wie lange etwas dauert, Hauptsache es wird fertig (irgendwann)
    ------------------------
    Discord: Devidian#1334

    Edited once, last by Devidian ().

  • devi da das ganze im multiplayer funktioniert, kannst du bitte eine option hinzufügen. das spieler die nicht dazu beitragen wollen dieses einmalig wählen können und weiterhin ihre vanilla karte nutzen können.
    sprich karte beim erstmaligem öffnen mit dem plugin auf dem server, fenster mit wahlfläche, willst du zur globalen map beitragen und diese daten nutzen können feld klicken ja oder nein
    was auch gehen würde wenn du @red51 nach einem extra map item für eine standalone vers. für die globale map fragen würdest und das plugin nur über diese funktioniert, würde die normale karte im spiel weiterhin ermöglichen


    warum ich das gerne hätte.


    wenn da grosse projekte im multiplayer wo laufen, die erst gezeigt werden sollen wenn die abgeschlossen sind, oder auch dinge die privat sein sollen,
    kann man das nicht geheim halten wo diese stattfinden, oder wo die privaten baubereiche sind.
    bzw kann man alles sehen und erahnen vorab auf der map was zu unerwünschten plagiaten und/oder ähnlichem auch führen kann, wenn zb. serverbesucher an die kartendaten kommen würden.
    die turnen dann überall herum auch da wo die nicht hinsollen, wenn serverseitig das area protekt nicht funktionieren sollte aua hah, weil die alles finden können. wäre vermutlich auch extremst übel für einen pvp server.


    refresh wird früher oder später auch von jedem mit der vanilla karte benutzt spätestens beim terraforming, auch spieler die garnicht zur karte beitragen wollen, werden so ja durch dieses plugin auf dem server irgendwie dazu genötigt.


    eine möglichkeit zur freiwilligen teilnahme wäre darum wünschenswert, zusätzlich admin gesteuerter auschluss bestimmter gruppen in der permissions.
    das plugin scheint segen und fluch gleichzeitig sein zu können,

  • Also erstmal ändert die map ja nichts an der ingame karte der Spieler, die bleibt unentdeckt, ein Serveradmin kann ja den Zugang zur onlinemap einschränken.
    Wenn der Admin den link zur Online Map nicht aus gibt, wird auch kein Besucher die map finden von sich aus ;)


    Auf einem pvp Server würde ich das feature nur als admin Übersicht verwenden.


    Ich hatte in meinem ursprünglichen request, bzw. zu den Bedenken die @red51 wegen des traffics hatte geäußert er könne ja in den Optionen des clients einen Schalter machen "Karte mit Server Teilen" dieser ist aber nicht eingebaut worden - das finde ich wiederum auch gut weil nehmen wir mal einen anderen Fall, wenn Nachts "böse" Spieler einloggen und irgendwo weit entfernt "unfug" treiben, möchte ein Admin vielleicht trotzdem gerne wissen wo.

    Gamer aus Leidenschaft
    (Web) Entwickler aus Leidenschaft
    <3 Vater aus Leidenschaft <3
    (prio in aufsteigender Sortierung ;) )


    ~~~~~~~~~~~~~~~~~
    1. Entweder man macht etwas richtig oder lässt es bleiben!
    2. Egal wie lange etwas dauert, Hauptsache es wird fertig (irgendwann)
    ------------------------
    Discord: Devidian#1334

  • schwarze schafe hats halt überall in jeder konfiguration * nur nicht als tier npc in rising world * ich bin trotzdem skeptisch, wenn das plugin die server zusätzlich noch mit einem traffic anstieg belastet hm ...... :) .. na ja ich drücke dir die daumen das dein plugin erfolgreich verwendung findet :)

  • Hehe danke,


    ...ich seh das mit den Plugins immer so, ich baue die in der Regel hauptsächlich weil ich die selber gerne hätte (auf meinem Server), und ich teile sie gerne falls jemand anders auch daran Interesse hat und ich bau auch gerne Features ein für Leute die es verwenden, wenn diese ihre Wünsche äußern.
    Von daher ist es bereits erfolgreich in Verwendung ;)

  • DE:


    Ich brauche mal jemand unabhängigen der testen kann ob der LinuxRenderer auf seinem server funktioniert: http://rwdist.omega-zirkel.de/ auf meinem Testserver läuft es. Wenn jemand anders damit keine Probleme hat, dann habe ich einen weg eine executable zu bauen! ;)
    (nicht vergessen: config.default.json kopieren -> config.json und anpassen!)


    EN:


    I need someone who can try the new precompiled renderer for Linux http://rwdist.omega-zirkel.de/ on his Server. It runs fine so far on my Server but i need some more results than just mine before i can release it for all.
    (do not forget: copy config.default.json -> config.json and edit for your needs)

  • EN:


    Updated shared lib attachment to 0.6.0 to avoid someone accidently overrides a newer version with this old one.


    DE:


    Habe den shared lib Anhang mal auf die neuste Version aktualisiert, damit nicht aus versehen jemand die neue mit einer alten überschreibt.

    Gamer aus Leidenschaft
    (Web) Entwickler aus Leidenschaft
    <3 Vater aus Leidenschaft <3
    (prio in aufsteigender Sortierung ;) )


    ~~~~~~~~~~~~~~~~~
    1. Entweder man macht etwas richtig oder lässt es bleiben!
    2. Egal wie lange etwas dauert, Hauptsache es wird fertig (irgendwann)
    ------------------------
    Discord: Devidian#1334

  • DE: Nur ein kleiner fix der lange nicht released wurde


    EN: Just a short fix that wasn't released for a long time now

    Code: Changelog 0.2.0
    ### Fixed
    - Exception thrown when typing `/rm` without parameter
    ### Added
    - Code for plugin update-auto-restart added (`restartOnUpdate` option)
    - Short-manual for installation
    ### changed
    - default language of *.md files is now English

    Gamer aus Leidenschaft
    (Web) Entwickler aus Leidenschaft
    <3 Vater aus Leidenschaft <3
    (prio in aufsteigender Sortierung ;) )


    ~~~~~~~~~~~~~~~~~
    1. Entweder man macht etwas richtig oder lässt es bleiben!
    2. Egal wie lange etwas dauert, Hauptsache es wird fertig (irgendwann)
    ------------------------
    Discord: Devidian#1334

  • Updated Frontend Code:


    Code
    ## [0.3.0] - 2019-05-12
    ### Added
    - environment configuration setting `omega`
    - `mapTileSubdomains` array in all environment files
    - refresh button and refresh interval control in the bottom left corner
    - cacheBuster for image files (refresh does not work without a buster)
    - 2 new routes `:posX/:posY` and `:posX/:posY/zoom` to bookmark and share map locations
    - added component for 404 Errors

    Bookmarking now possible: https://rwmap.omega-zirkel.de/-4136/13248/3

  • updated plugin:


    Code: 0.3.0
    ## [0.3.0] - 2019-12-10
    ### Added
    - map-tiles can now be send to a rendering service through webSockets
    - setting `enableWebSocket` to enable websocket client
    - setting `wsURI` websocket server uri
    - setting `wsSendTiles` to enable sending map-tiles to websocket server
    ### Fixed
    - `enableWebSocket` setting was ignored when creating WSEndpoint


    updated Frontend Code:

    Code: 0.4.0
    ## [0.4.0] - 2019-12-10
    ### Added
    - map-id service
    - public environment configuration

    Gamer aus Leidenschaft
    (Web) Entwickler aus Leidenschaft
    <3 Vater aus Leidenschaft <3
    (prio in aufsteigender Sortierung ;) )


    ~~~~~~~~~~~~~~~~~
    1. Entweder man macht etwas richtig oder lässt es bleiben!
    2. Egal wie lange etwas dauert, Hauptsache es wird fertig (irgendwann)
    ------------------------
    Discord: Devidian#1334

  • I hate to necro this thread but I could use some advice.

    I'm following the readme on GitHub page for this plugin but there are a couple of steps that confuse me.


    1. After cloning the repo into the /srv/apps/ folder, there is a step that says to navigate to the oz_rw_risingmap_backend folder and run cp config/config.default.json config/config.json;. However, there is no such folder config nor any files for config.json or config.default.json in the repository. Should these files be part of the repo?


    2. In later steps the instructions say to run tsc and then run node bin/main to test the build. Should the tsc command create the bin/main folder and file? I'm not seeing the folder or file after running tsc.


    Any help anyone could give would be much appreciated. :)

  • Hi there and sorry, but the README was not updated with the latest changes when i last worked on that project. There was less interest from others to keep that up to date.

    There is no config json anymore, instead this tool uses env variables

    Gamer aus Leidenschaft
    (Web) Entwickler aus Leidenschaft
    <3 Vater aus Leidenschaft <3
    (prio in aufsteigender Sortierung ;) )


    ~~~~~~~~~~~~~~~~~
    1. Entweder man macht etwas richtig oder lässt es bleiben!
    2. Egal wie lange etwas dauert, Hauptsache es wird fertig (irgendwann)
    ------------------------
    Discord: Devidian#1334

Participate now!

Don’t have an account yet? Create a new account now and be part of our community!