Posts by red51

A small new update is available now!

    Vielen Dank fürs Feedback! ^^ Das Design kann im ersten Moment tatsächlich etwas gewöhnungsbedürftig sein, aber immerhin haben wir jetzt ein einheitliches Design für Homepage, Forum und Store (vor allem die alte Homepage und der alte Store waren katastrophal :hushed:). Vieles hat sich natürlich auch durch die neue Forensoftware geändert.


    Die Galerie werden wir definitiv noch etwas erweitern, bei Videos waren wir uns erst nicht sicher (wir haben sie vorerst nur im Store hinzugefügt). Vielleicht macht es aber Sinn, diese auch in die Galerie einzufügen :thinking:

    We've finally updated our website and our forum! Apart from a unified design for forum and website, this introduces a few other changes.


    First of all, there is now only a single account for website and forum. This mostly affects Standalone users - from now on, you can no longer login via username + password, instead you have to enter a serial number. If you've purchased the Standalone in the past, you can migrate your old "legacy account" to get a serial number.

    Here you find more information about that: https://forum.rising-world.net/thread/10502


    Now it's also possible to login through Steam (if you already have an account, you can still link it to Steam), and there is an optional two-step verification available.


    Apart from that, we've reworked our store. In addition to the Standalone, you can now also get Steam-Keys. We will also run some smaller sales from time to time - currently there is a 25% sale active ;)


    Buy (EUR 14.99)

    Rising World Standalone

    Rising World is a voxel based open-world sandbox game, featuring a procedurally generated world, playable in single and multi-player.


    Buy (EUR 14.99)

    Rising World Steam Key

    Product key that can be used to activate Rising World on Steam. This enables you to download and play the game via Steam



    If you have any feedback or if you notice any errors, please let us know :)

    Wir haben endlich unsere Webseite sowie unser Forum aktualisiert! Abgesehen von einem vereinheitlichten Design für Forum und Webseite, bringt das einige Änderungen mit sich.


    Allem voran gibt es nun einen einheitlichen Account für Webseite und Forum. Das betrifft in erster Linie Standalone-Nutzer - denn ab sofort findet die Authentifizierung nicht mehr über Benutzername + Passwort statt, sondern über eine Seriennummer. Bisherige Käufer der Standalone können in ihrem Benutzerkonto den alten "Legacy Account" migrieren, um eine Seriennummer zu erhalten.

    Hier gibt es dazu weitere Informationen: https://forum.rising-world.net/thread/10501


    Nun ist es übrigens auch möglich, sich über Steam einzuloggen (bestehende Accounts können auch nachträglich verknüpft werden), außerdem bieten wir eine optionale Zwei-Faktor-Authentifizierung an.


    Abgesehen davon haben wir unseren Store überarbeitet. Wir bieten nun zusätzlich zur Standalone auch Steam-Keys an, zudem werden wir von Zeit zu Zeit kleinere Rabattaktionen durchführen - aktuell ist ein 25% Rabatt aktiv ;)


    Buy (EUR 14.99)

    Rising World Standalone

    Rising World is a voxel based open-world sandbox game, featuring a procedurally generated world, playable in single and multi-player.


    Buy (EUR 14.99)

    Rising World Steam Key

    Product key that can be used to activate Rising World on Steam. This enables you to download and play the game via Steam



    Falls ihr Feedback habt oder euch Fehler auffallen, lasst es uns bitte wissen :)

    deutsche Version


    We've updated our website and our forum. They use a single account now, which means the original website account is no longer used. Unfortunately this also means that you can no longer use your account to login to the game, instead a serial number is now required - but of course you don't have to purchase the game again!


    To get a serial for the game, please follow these instructions:


    1. If you don't have an account for the forum yet, create a one. Otherwise you can use your existing one. The username has no relevance for the game.
    2. Login to your forum account. This will be your new Rising World account
    3. Click on your avatar in the top right corner and select "Rising World Legacy" (under "User Account"). Alternatively you can use this link: https://www.rising-world.net/rising-world-legacy/
    4. Enter your old username and password, then hit "Link Account". If you can't remember your password, you can request a new password at the bottom of the page.
    5. Your old account is successfully linked to your new account now and you should see your serial number. Alternatively you find your serial in your license overview.
    6. Run the game and enter your new serial. You can instruct the launcher to remember the serial, so you don't have to enter it again the next time you start the game.



    If you don't want to migrate your account to the new system, we can alternatively offer you a Steam key for the game. In this case, just send an email to steam@jiw-games.net including your old username and mail address.



    If you run into any issues or if you have any questions, please let us know :)

    english version


    Wir haben unsere Webseite und Forum überarbeitet. Beide verwenden nun einen einheitlichen Account. Das bedeutet, dass der alte Webseiten-Account nicht mehr verwendet wird. Leider bedeutet das auch, dass dieser Account nicht mehr verwendet werden kann, um sich ins Spiel einzuloggen, stattdessen benötigt das Spiel nun eine Seriennummer - aber natürlich musst du das Spiel nicht erneut kaufen!



    Um eine Seriennummer für das Spiel zu erhalten, führe bitte folgende Schritte durch:


    1. Falls du noch keinen Foren-Account hast, erstelle einfach einen neuen. Ansonsten kannst du deinen bestehenden Foren-Account verwenden. Der Accountname hat für das Spiel keine Relevanz.
    2. Logge dich im Foren-Account ein. Dieser wird dein neuer Rising World Account.
    3. Klicke auf deinen Avatar in der oberen rechte Ecke und wähle "Rising World Legacy" (unter "Benutzerkonto"). Alternativ kannst du einfach diesen Link aufrufen: https://www.rising-world.net/rising-world-legacy/
    4. Gib deinen alten Benutzernamen sowie dein altes Passwort ein und klicke auf "Account verknüpfen". Falls du dich an dein altes Passwort nicht mehr erinnerst, kannst du am Ende der Seite ein neues Passwort anfordern.
    5. Dein alter Account ist nun erfolgreich mit dem neuen Account verknüpft und du solltest nun deine Seriennummer sehen. Alternativ findest du deine Seriennummer auch in der Lizenzübersicht.
    6. Starte das Spiel und gib deine neue Seriennummer ein. Du kannst optional den Launcher anweisen, die Seriennummer zu speichern, sodass du sie beim nächsten Spielstart nicht mehr eingeben musst.



    Wenn du deinen Account nicht zum neuen System migrieren möchtest, können wir dir alternativ einen Steam Key für das Spiel anbieten. Sende uns in dem Fall einfach eine E-Mail mit deinem alten Benutzernamen sowie deiner Mail-Adresse an steam@jiw-games.net



    Falls du auf Probleme stößt oder Fragen hast, lass es uns einfach wissen :)

    another voxel game i play, 7 days to die, similarly will crash after a period of time

    If 7d2d uses OpenGL on Linux, it could be indeed the same driver bug that is triggered. Unfortunately there is always a higher chance to run into driver bugs when it comes to OpenGL, since the majority of games out there use DirectX - so if there is a bug in the DirectX driver, it doesn't take long until it's found and fixed :/


    But on the other hand, voxel games are usually more demanding than games with static/pre-designed worlds, so this could basically also play a role when it comes to this crash (irrespective of the graphics API)... who knows...


    But if there is no newer driver available for Linux, you could try to rollback to an older driver.


    Let's hope there will be less trouble in the new version (we will drop OpenGL support and switch to Vulkan - but unfortunately I have no idea about the stability of the Linux Vulkan drivers) :)

    Vielen Dank für das Feedback! :D


    Wie sieht es mit denen die im Stein eingearbeiteten Fackeln aus? . . .Was heißt innerhalb der Wand? Zwischen beiden Putzschichten?

    Wenn sich die Fackel bzw. die Flamme exakt innerhalb des Blocks befindet, würde der Block keinen Schatten werfen. Wenn es um die Schatten geht, "sehen" die Lichter quasi dasselbe wie der Spieler auch. Die Rückseite bzw. Innenseite von Polygonen wird in Rising World generell nicht gerendert, daher würde das Licht, welches nur die Innenseite eines Polygons trifft, auch keinen Schatten werfen.


    Konkret könntest du den Flugmodus aktivieren und mit der Kamera genau dorthin fliegen, wo sich die Lichtquelle befinden soll. Alles, was du dann sehen kannst, würde auch vom Licht ausgeleuchtet werden ;)


    Sehe ich das richtig, dass ihr bei den Texturen auch Normal, Roughness, Height usw. einsetzt? Ich arbeite momentan gerne mal mit eigenen Texturen - wird das auch möglich sein, in eigenen Texturepacks Normal-Maps usw. zu hinterlegen

    Messerscharf beobachtet :thumbup: Tatsächlich wird die neue Version - anders als das jetzige RW - Albedo-, Normal-, Smoothness-, Metallic- und Height-Maps verwenden. Natürlich müsste das bei Texturepacks entsprechend berücksichtigt werden, wobei das der Einfachheit halber wohl ein optionales Feature wäre (d.h. man könnte auch einfach eine simple Diffuse-Map nehmen, die dann aber natürlich deutlich langweiliger aussähe).


    Möchte man auch Normal-Maps & Co einbinden, müssten wir mal schauen, wie wir das am besten umsetzen. Denn RW wird alle o.g. Texturen auf 2 Texturen reduzieren (und die jeweiligen Maps auf die einzelnen Farbkanäle verteilen) - hier müssten wir mal schauen, ob wir dafür entweder ein Tool anbieten (vielleicht auch direkt ein Ingame-Tool, um Texture-Packs zu erstellen), womit man diese "Spezialtexturen" dann selber erstellen kann, oder ob wir die Texturen dann einfach beim Spielstart zusammenfügen (wäre die einfachste Lösung, würde aber den Spielstart verlangsamen)...

    Wenn dann alle Blöcke und Elemente skalierbar und drehbar sind, könnte man es einrichten, das sich die Textur nicht mitdreht oder noch besser, das man die Textur separat drehen kann

    Prinzipiell ja, die Sache ist nur, dafür eine halbwegs sinnvolle Steuerung hinzubekommen ^^ Wir müssen uns da mal Gedanken machen.


    Kann man dann auch Barren, Waffen, Werkzeuge und Bauzutaten platzieren?

    Das ist auf jeden Fall geplant ;)

    Freut mich, dass du es hinbekommen hast :thumbup: Ansonsten ist der kommentierte Source-Code des Jukebox Plugins auch hier verfügbar: Example: Jukebox


    Generell kann im Source-Code in der Klasse "MusicPlayer" die Mindest- und Maximalreichweite der Sounds eingestellt werden (über die Konstanten "MIN_RANGE" und "MAX_RANGE"). MIN_RANGE gibt dabei die Entfernung an, bis zu welcher die Musik noch mit 100% Lautstärke zu hören ist (standardmäßig 1), MAX_RANGE gibt hingegen die maximale Entfernung an ab wo das Musikstück nicht mehr hörbar ist (standardmäßig 25) - zwischen den beiden Werten nimmt die Lautstärke kontinuierlich ab.

    I'm sorry to hear you ran into another crash, however, this time it's a different crash: It's a SIGSEGV which occurred in our underlying graphics library (LWJGL) during an internal call (line 96 in the log). That doesn't seem to be related to Java at all. It could be either an issue with LWJGL or - more likely - a bug in the NVIDIA driver =O You could try to install the latest NVIDIA driver.

    I believe this also goes for player names correct? I know we have to ask players to change their name if it has a special character in it.

    Special characters in player names can indeed cause problems, however, this shouldn't interfere with the map ;)

    but from what i understand looking over the game directory, your game includes its own full java instance due to the current game engine correct? it doesn't refer to the java installed for/by the operating system?

    Yes, the Steam version is shipped with its own JRE. Basically it can be updated manually by replacing the Java folder in the game directory with a newer version ;)

    Das bedeutet, dass das Event Objekt nach Aufruf der Event Funktion ungültig wird. Hier ist ein Beispiel:

    Java
    @EventMethod
    public void onChatMessage(PlayerChatEvent event){
    //Hier überall ist das event gültig
    String msg = event.getChatMessage();
    event.setChatMessage("[UselessPrefix] " + msg);
    //AB HIER IST EVENT UNGÜLTIG
    }


    Innerhalb der "onChatMessage()" Funktion kannst du mit dem Event machen was du willst. Nachdem die Event-Funktion aber abgearbeitet wurde (also ab Zeile 7) verliert das Event seine Gültigkeit.


    Du kannst natürlich weiterhin andere Sub-Funktionen aufrufen, zB sowas ist absolut ok:


    Was aber nicht erlaubt ist, ist Events irgendwo zwischenzuspeichern und später irgendwie nochmal zu verwenden. Folgendes ist zB verboten:


    Was aber hingegen wieder ok wäre, wenn du die eigentlichen Daten des Events zwischenspeicherst. Statt also im obigen Beispiel das "PlayerChatEvent" zwischenzuspeichern, wäre es besser, die eigentliche Chatnachricht (oder was auch immer) zu speichern. Beispiel:


    Was auch geht: Eine eigene Klasse erstellen die alle Daten des Events entgegennimmt:



    Generell wird es in der neuen API so sein, dass die Events auf Java Seite nur noch eine "leere Hülle" sind mit nur einer Variablen - nämlich einen Pointer auf die Memory-Adresse des nativen Events (genau genommen gibt es in Java keine Pointer, daher wird einfach die Memory-Adresse als 64 bit Wert gespeichert - es handelt sich also vielmehr um einen Handle). Bei Funktionsaufrufen wie zB "getChatMessage()" wird eine native Funktion aufgerufen und der Pointer (bzw. die gespeicherte Memory-Adresse bzw. der Handle) des Events übergeben. Auf nativer Seite wird das Event aus dieser Memory-Adresse ausgelesen und dann der gewünschte Funktionswert zurückgegeben (in dem Fall die Chat-Nachricht).
    Nachdem aber alle Event-Funktionen durchlaufen sind, wird das native Event gelöscht und der verwendete Speicher freigegeben - d.h. das Java Event würde nun auf eine ungültige Memory-Adresse verweisen (und ein Zugriff darauf würde in den allermeisten Fällen das Spiel crashen). Um das zu verhindern, wird nach Ende des Event-Aufrufs die Memory-Adresse bzw. der Handle auf 0 gesetzt und bei jedem weiteren Funktionsaufruf stattdessen eine Exception geworfen.


    Insgesamt sieht das ganze in etwa so aus:


    • Natives PlayerChatEvent wird erstellt und die Memory-Adresse, an der es sich befindet, ausgelesen
    • TriggerEvent(PlayerChatEvent) wird aufgerufen - eine zentrale Funktion, die alle Event Listener benachrichtigt
      • Ein Java Objekt "PlayerChatEvent" wird erstellt und der Pointer bzw. der Handle übergeben
      • Für jedes einzelne Plugin wird nun die registrierte Fkt. für das Chat-Event aufgerufen, in unserem Beispiel wäre das "OnChatMessage(PlayerChatEvent)" - bis hier hin ist alles cool
      • Wenn eine Event-Funktion von einem Plugin aufgerufen wird (zB "getChatMessage()"), wird auf nativer Seite das native Event an der entsprechenden Memory-Adresse ausgelesen und der gewünschte Wert zurückgegeben - hier also die eigentliche Chat-Nachricht als String
    • Nachdem alle Plugin-Funktionen aufgerufen wurden, werden die Pointer bzw. die gespeicherten Memory-Adressen in den Java-Events auf 0 gesetzt (ab sofort kann keine Event-Funktion wie "getChatMessage() mehr aufgerufen werden)
    • Die geänderten Daten im nativen PlayerChatEvent werden vom Spiel weiterverwendet (wie zB die möglicherweise geänderte Chat-Nachricht) und das native Event wird gelöscht - der Memory an der Stelle wird für andere Dinge freigegeben


    Ich hoffe, das war einigermaßen verständlich ;) In den meisten Fällen sollte diese Änderung eigentlich keine größere Einschränkung bedeuten - denn auch schon in Java wäre sowas in manchen Fällen etwas gefährlich gewesen (bspw. wenn ein Event-Objekt gespeichert wird, und dann ne halbe Stunde später der Player dahinter oder so ausgelesen worden wäre - der möglicherweise gar nicht mehr auf dem Server ist).
    Es dürfen wie gesagt alle Daten eines Events in Listen gespeichert werden (im Zweifelsfall kann man auch eine eigene Klasse erstellen die die einzelnen Event-Daten aufnimmt), es darf nur das Event-Objekt selber nicht in eine Liste gepackt werden.

    Hmm... that's strange... the crash occurs in the "libjvm.so" and seems to be related to garbage collection. This could be a bug in Java =O It looks like the same issue was reported some time ago for Java 7, but apparently it couldn't be reproduced: https://bugs.openjdk.java.net/browse/JDK-8020236


    2. running rising world directly from the game folder seems to help, but then it's not using steam's launch options so it just uses default memory options. also have to have steam already running if doing this method. running directly seems to allow the game to operate seemingly without issue. i played rising world for several hours yesterday and no crash.

    This sounds like Steam is loading some libraries which aren't really compatible with the game or with Java :huh: However, you can still set the memory manually without starting the game through Steam. To do that, just create a file called "args.txt" in your game directory ("steam/steamapps/common/RisingWorld"), then you can enter the arguments you want to pass to the JVM. If you want to assign more RAM, you can add this to the file:

    Code
    -XmxHEAPm
    -XX:MaxDirectMemorySize=DIRECTm

    Just replace HEAP and DIRECT with the amount of RAM (MB) you want to assign as heap/direct memory. For example, if you want to assign 16 GB of RAM to the game (e.g. 8 GB heap and 8 GB direct memory), you could enter:

    Code
    -Xmx8192m
    -XX:MaxDirectMemorySize=8192M


    Maybe you could also try to add this to the end of the file:

    Code
    -XX:+UseParallelGC

    This uses a different garbage collector. Maybe this helps to avoid the crash :)

    Thanks a lot for your feedback! :)


    also just wondering will lighting effect the player as well i.e will we be able to hide from bandits if we are in the dark?

    Well, basically that's not directly related to the lights & shadows ^^ The lights and shadows are really just a rendering thing. Since lights aren't static anymore, the light & shadow information is only available on the GPU basically, while npc AI is handled by the CPU.


    Being able to "hide" in shadows only works if the lighting was static (or in a static world, so the "dark spots" can be defined beforehand)...


    This means shadows won't affect the npcs unfortunately... but things like current time of day could be taken into account for the AI.


    We didn't start working on the npcs, so unfortunately I can't say much about that yet :/


    Also another aspect is the sound having great sound effects in surround 5.1 / 7.1 can also make a game come to life, are you going to be re-doing these or just porting the old sound files over?

    We are re-using our old FMOD project for the new version. Starting from scratch would be way too time consuming (there are already so many sounds in the game) :whistling: But we're reworking and improving many sounds (item sounds, footsteps, ambient sounds etc).

    Danke fürs Feedback! :D


    Also wären skalierebare Glow-effekt Bauteile möglich ?

    Also bisher haben wir das noch nicht eingebaut, aber es wäre auf jeden Fall möglich. Wir können das grundsätzlich einbauen :) Allerdings würden diese Bauteile dann die Umgebung nicht wirklich ausleuchten, sondern nur wie auf dem obigen Screenshot sein^^


    Das Bett gefällt mir und hat sogar zwei Kopfkissen. Für Pärchen zum Kuscheln sicherlich gut, aber es sieht für ein Doppelbett etwas schmal aus.

    Hehe, das ist tatsächlich als Einzelbett gedacht. Zwei Kopfkissen sahen irgendwie besser aus als nur eines, und da dachten wir uns, man gönnt sich ja sonst nix :whistling:


    Kann ich auf einen Script-Ersatz hoffen?

    Schwer zu sagen... wir hatten für die alte Version mal ein Plugin vorbereitet (welches nie veröffentlicht wurde), mit welchem Lua Skripte eingebunden werden konnten (die Idee war gewesen, dass wir endlich die Lua API rauswerfen können, aber bestehende Skripte weiterhin funktionieren). Nun könnte dieses "Lua Plugin" zwar in der neuen Version *theoretisch* weiterhin verwendet werden, aber einige API Aufrufe ändern sich ja - was ggf. auch in Lua Skripten berücksichtigt werden müsste. Das müssten wir uns nochmal genauer angucken, wenn die neue Plugin API etwas weiter ist.
    Bis dahin kann ich leider keine wirkliche Aussage dazu treffen. Ich würde deshalb lieber erstmal davon ausgehen, dass es in der neuen Version kein Lua mehr gibt... :|


    Besser wäre es, die Funktionen, die über bestimmte Lua Skripte bereitgestellt werden mittelfristig in Plugins zu übertragen. Bzw. bestimmte Dinge wollen wir ja auch direkt ins Spiel integrieren, wie zB Teleportieren.


    Besteht vielleicht eine Möglichkeit in alten Blaupausen die Lampen/Lichter zu sondieren oder irgendwie zu löschen ohne explizit nach ihnen suchen zu müssen? Durch die neue Lichtveränderung scheinen viele alte Lampen überflüssig.

    Das ist eine berechtigte Frage... durch die Änderungen am Licht wäre das absolut legitim. Vielleicht wäre es auch gar nicht so verkehrt, generell alle Lampen aus alten Blaupausen zu löschen (vll bis auf ein paar Spezialfälle, wie Lagerfeuer etc). Wir müssen uns da mal Gedanken machen ;)


    Wenn man Licht in die Wand etc. eingearbeitet hatte, gab es diverse Effekte. Das ist nun vorbei, oder?

    Also grundsätzlich könnten Lampen auch in Wände eingebaut werden. Denn die "Innenseite" der Wand ist ja nicht sichtbar, sodass diese auch keinen Schatten wirft. Das gilt aber nur, wenn das Licht wirklich innerhalb der Wand ist (wenn es hinter der Wand ist, dann funktioniert das leider nicht mehr).


    Wir könnten aber vielleicht auch ein paar "technische Lichter" einfügen, die generell keine Schatten werfen. Diese wären nur über die Konsole verfügbar, aber damit könnte man natürlich Effekte erzielen, die mit den normalen Lichtern & Schatten nicht so einfach möglich wären.