Posts by Devidian

    Wenn ich auf meinem Testserver den DiscordBot im plugin aktiviere bin ich schon out of memory :D
    Aber das Problem auf meinem Testserver ist auch das der kein SWAP (Auslagerungsdatei unter Windows) hat und daher hart beendet wenn der RAM aus ist.


    1GB ist aber schon recht wenig, damit läuft Windows allein doch schon nicht gut.



    Error occurred during initialization of VM
    Could not reserve enough space for 2097152KB object heap
    Drücken Sie eine beliebige Taste . . .

    Das sagt ja er versucht 2GB zu reservieren, das geht bei 1GB natürlich nicht

    Ich ich denke das Problem ist zu wenig Speicher oben steht memory 1037 MB beim Start im log das ist definitiv zu wenig. Mein Server unter Linux läuft gerade so mit 4 Gigabyte RAM.


    In der letzten Meldung steht ja auch could not Reserve enough space...

    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.

    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 ;)

    Das macht nichts bei meinen Servern gilt immer rl first. Durch meine kleine Familie bin ich mehr oder weniger auch nur noch Gelegenheitsspieler, im Vergleich zu früher :D

    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!

    DE:


    So ein paar fixes wurden bereits von mir veröffentlicht, hier die Zusammenfassung des changelogs ;)


    EN:


    A few fixes were already released but no changelog so here is the summary ;)



    Funktioniert super, bin gerade mal durch unbekanntes Gebiet und habe in bekanntem Gebiet auf resresh gedrückt. Keine Einschränkungen bzgl. lag oder sowas bemerkt, auch wenn bei refresh gleich mehrere übertragen werden. Eis ist mir noch aufgefallen das auch vorher schon war. im Server-Log steht immer SERVER MAPTILE 0 0 UPLOAD FROM _name_ COMPLETED! also immer 0 0 ;)

    Oh süß, eine Kinder-Hüpfburg!


    Spass, ja ein paar mehr Formen wären sicher nicht schlecht, das was du suchst wäre dann wohl ein Kegel, Pyramide wäre auch noch gut und eine Kugel bitte ;)

    DE:


    Jetzt wo die neue API raus ist, konnte ich unter Verwendung von player.requestMapTileRaw ein echtes Plugin schreiben das die beiden fake Komponenten überflüssig macht. Die Backend Komponente habe ich erst einmal so erweitert, das sie mit den lokalen raw files direkt arbeiten kann. Dies erfordert allerdings das der map-renderer direkt auf dem game-server installiert ist. Da nicht jeder die Möglichkeit hat diesen auf seinem game-server zu installieren, werde ich später noch eine WebSocket Variante ins Plugin einbauen.


    Das Plugin läuft aktuell in einer 0.1.0-SNAPSHOT (pre release) version auf meinem Hauptserver.


    Derzeit ist das ganze aber noch nicht ganz ausgereift, da ein Spieler mit alten ingame Karten neuere Kartendaten überschreiben kann, ich hoffe das @red51 meinem API Vorschlag für ein neues Event entgegen kommen kann, dann sollten auch die Überschreibungen mit alten Daten passe sein.


    Wann ich das ganze public mache kann ich noch nicht sagen, wenn dann wird es im Plugin Forum zu finden sein.


    EN:


    Now , where we have the new API, i could use player.requestMapTileRaw to create a real Plugin that can be installed on game servers. The two fake components are now deprecated. I extended the backend component to work with the local map tiles fetched by the plugin. This requires currently to have the rendering backend installed on the same machine, but im aware that not everybody can install node apps on his game server so in the future there will also be a websocket solution that solves this problem.


    Currently the plugin runs with an pre-release version 0.1.0-SNAPSHOT on my main server for testing purposes.


    The future is not yet perfect as for example player with old ingame maps that are not refreshed can override newer map-data as there is no check for the age of the files. I hope @red51 can add a new event that i have requested. Then there should be no more overrides of old map data.


    I cant't say when i will release the first Version of my plugin yet, but i will post it to the Plugin forum as soon as it is ready for the next stage.

    Hallo @red51,


    nachdem ich jetzt die screenshot Funktion in meine Plugins eingebaut habe (DiscordPlugin / GlobalIntercom) bin ich gerade dabei die neue requestMapTileRaw Funktion für mein Map Plugin zu verwenden und bin noch nicht ganz zufrieden.


    Mein erstes Problem: es fehlt noch das richtige Event um die Funktion zu verwenden. Aktuell habe ich diese prototyp code hier in Verwendung:


    Ist noch nicht ganz korrekt der code aber damit komm ich erstmal weiter.
    Der Vergleich mit dem MD5 funktioniert soweit, nur kam mir der Gedanke das ja die ingame MAP nicht immer direkt aktualisiert wird, also manchmal muss man halt den refresh button drücken.
    Wenn jetzt jemand mit einer alten ingame map kommt hat der natürlich einen anderen MD5 weil die Daten anders sind. Dies verhindert dann aber nicht das die alten Daten die neueren überschreiben. Hier müßte man dann das datum der Datei noch vergleichen können oder besser dieser Vorschlag:


    Ein neues Event "onPlayerGenerateMapTile" das gefeuert wird wenn der client ein map tile rendert bzw. gerendert hat. dort müßten dann die x/y Koordinaten übergeben werden. Diese kann man dann in requestMapTileRaw wieder verwenden um das entsprechende tile anzufragen.
    So könnte man gewährleisten das immer nur neue tiles übertragen werden und keine alten.