Posts by red51

    Thanks for the error log! Unfortunately this a native crash which is caused by the underlying physics engine :( It looks like this happens if chunks with lots of construction elements are modified or if blueprints are placed which contain lots of construction elements...
    Do you always run into this crash when placing a blueprint? Does it also happen if you place the blueprint in a new, empty world?


    I was able to place the blueprint in question, but the physics-crash seems to be a random issue anyway :|

    Basically a Connection reset by peer indicates that the other side (in this case the player) did unexpectedly close the connection. This can have a lot of reasons: Either the player has an unstable connection (especially when using WLAN, for example), or he just cancels the loading procedure by pressing ESC, or his game crashes, or he just left the server. Unfortunately Connection reset by peer doesn't provide any further information about what's going on exactly, it's rather a generic error :(


    If some players cannot join a certain server (while they're able to join other servers without issues), it's possible that there is too much data the server is sending to the client. This can either be lots of custom images or too many buildings in the spawn area (for example, if the spawn building consists of hundreds of thousands of building parts, this can be a major problem for players with lower hardware), or plugins downloading too many assets like custom models (loading process halts until all assets were downloaded).


    If it's an old world (created before the npc update last year), it's also possible that there are too many npcs in the world. In old versions there was a chance that npcs fell through the ground, resulting in many npcs being lost somewhere in the underground (never being seen by a player, but still having an impact on performance). Some servers had issues in the past if there were more than 100,000 npcs in the world. In this case it helps to delete the npcs (the deleteallnpcs command removes all npcs in the world, optionally you can restrict it to a certain npc type and a radius).

    Wenn es eine Möglichkeit gäbe, im Nachhinein Achievements für die bereits erledigten Sachen zu bekommen, wäre das meiner Meinung nach gut. Ich kann mir jetzt wirklich nicht vorstellen, nach 5 Jahren Spielzeit stumofsinnig eine Schneise durch den Wald zu schlagen, nur um ein Achievement zu erhalten

    Leider geht das nicht so einfach :/ Es gibt ja keinerlei Daten darüber, wieviele Km man in den alten Spielversionen schon gelaufen oder wieviele Bäume man gefällt hat. Ich persönlich denke aber, es ist zu verschmerzen, dass man in der neuen Version wirklich bei 0 anfängt (hinsichtlich der Statistiken) - immerhin stellt die Version ja einen Neuanfang dar.


    Generell werden die meisten "stumpfen" Achievements (wie "Fälle x Bäume") aber tendenziell eher einfach zu bekommen sein (immerhin müssen die ja einigermaßen so ausgelegt sein, dass auch Gelegenheitsspieler sie bekommen können). Und die meisten komplexeren bzw. hochwertigeren Achievements werden sehr wahrscheinlich zum Großteil auf neue Features (oder im Vergleich zur alten Version stark abgeänderte Features) bezogen sein ;)


    Nichtsdestotrotz werden Achievements ohnehin ein rein optionales Feature sein - sie werden also keinen Einfluss auf das Gameplay oder so haben.

    es gibt da leider das problehm das sich die gespawnten objekte steine etc... nicht an die eingestellte despawntime halten und nach paar sec schon verschwinden!

    Ja das stimmt leider. Der Grund dafür ist, dass davon i.d.R. recht viele Items gespawnt werden und wenn diese zu lange liegen bleiben, vor allem im Multiplayer zu ernsthaften Performanceproblemen führen können... ich denke es macht aber Sinn, diese auch an die eingestellte Despawntime anzupassen (oder evtl. eine zweite Einstellung dafür einzuführen). Wir werden das mit der neuen Version ändern ;)

    Wie schaut es mit Errungenschaften für Steam aus ? Gibt es evtl ein Contest für die Grafiken ?

    Wir haben schon damit begonnen, an Achievements und Statistiken zu arbeiten - zumindest steht die technische Seite schonmal ;) Jetzt fehlen noch passende Achievements, Texte und Bilder. Viel mehr aber ist das Spiel noch nicht ganz so weit, Achievements und Statistiken mit den richtigen Stellen zu verknüpfen (weil die meisten Spielmechaniken einfach noch fehlen).


    Eine Art Contest für Achievements wäre keine schlechte Idee :thumbup: Ich würde damit aber noch ein klein wenig warten, zumindest solange, bis die Grundmechaniken im Spiel sind. Denn dann kann man wesentlich einfacher beurteilen, was für Achievements man generell braucht.


    Von Anfang an werden aber auf jeden Fall Statistiken (also zB zurückgelegte Kilometer, gefällte Bäume usw) in der neuen Version sein (was ja auch die Grundlage für Achievements ist).

    Im letzten Abschnitt schreibst du das es generell keinen msql Support mehr geben wird. Ist dies jetzt nur auf die Plugin bezogen ( so würde ich es jetzt verstehen) oder auch generell für den mp Server ?

    Das gilt generell für den MP Server. In der neuen Version haben wir eine wesentlich schlankere SQLite Implementation, die keinen unnötigen Overhead mit sich bringt und spürbar schneller arbeitet als die alte Java Integration - insgesamt sollte das den Geschwindigkeitsvorteil von MySQL schon weitestgehend aufwiegen können. Optional wird es voraussichtlich auch die Möglichkeit geben, Memory-Datenbanken zu erstellen (daran arbeiten wir noch) - diese dürften noch schneller als MySQL sein. Dadurch, dass wir uns nur auf SQLite konzentrieren, können wir auch direkt ein paar Zusatzfeatures bieten wie zB automatische Welt-Backups.


    Wir halten uns die Option mit MySQL aber offen - wenn wir feststellen, dass es wider Erwarten doch zu Performanceproblemen kommt, werden wir eine MySQL Integration hinzufügen. Aber wie gesagt, es sieht momentan stark danach aus, dass die neue SQLite Integration schneller als die alte Java MySQL Integration sein wird ;)

    SEVERE: Invalid GlobalItemID for player S.(ItemID: 523)

    Even though the message states "severe", it's not a big issue at all ;) Unless the log gets spammed with this...
    Basically it indicates that a player interacted with an item which does no longer exist in the world. In most cases, this is caused by desync. It can also happen if two players try to pick up the same item at the same time, for example. If you just see this message sporadically, it's safe to ignore it :)


    com.codedisaster.steamworks.SteamException: InvalidTicket

    This is actually a different problem: It indicates that Steam could not authenticate the ticket of a player. Either the player sent an invalid ticket (this can happen sometimes if Steam was running a long time without restart for example), or if there is an issue with the Steam servers (in fact some Steam services are unavailable sporadically).


    Apart from that, the log looks ok so far.

    Hehe, sehr aufmerksam beobachtet ;)


    Tatsächlich war die Formulierung in der Roadmap etwas irreführend... ich habe das jetzt abgeändert, damit sollte es eigentlich keine Unklarheiten mehr geben ^^


    Grundsätzlich wird Java weiterhin die Programmiersprache für Plugins bleiben. Ggf. werden wir langfristig noch JavaScript hinzufügen, aber das steht noch nicht ganz fest. Andere Sprachen wie C# werden leider nicht unterstützt (die neue Version des Spiels wird zwar überwiegend in C# geschrieben, aber der fertige Code wird durch IL2CPP in C++ umgewandelt)


    Die neue Plugin API wird in weiten Teilen identisch zur bisherigen API bleiben, es wird aber aus technischen Gründen ein paar kleinere notwendige Änderungen geben (zB wird der Zugriff auf die Server und World Klassen statisch sein [d.h. z.B. nicht mehr getServer().getPlayer(); sondern direkt Server.getPlayer();], Events sind nur noch innerhalb der Eventfunktion gültig [d.h. Events können leider nicht in Listen gespeichert oder an andere Threads übergeben werden - in dem Fall müsste man sich die Daten aus einem Event vorher selber rauskopieren], EventMethod.Threaded wird entfernt [ich glaube das wurde eh nicht so oft verwendet, und ist in den meisten Fällen auch gar nicht nötig] und noch ein paar kleinere Syntaxänderungen). D.h. Plugins können zwar leider nicht 1:1 übernommen werden, doch die nötigen Anpassungen durch den Pluginersteller werden insgesamt überschaubar bleiben. Etwas größere Änderungen *könnten* lediglich bei der GUI stattfinden, da kann ich leider noch nicht ganz so viel zu sagen... auch kann es sein, dass sich der Workflow für Custom Items und so etwas ändert. Auch bei der WorldDatabase kann es sein, dass es etwas Probleme gibt.


    Ich werde demnächst noch einen Thread erstellen, der die Änderungen an der API etwas genauer beleuchtet (zumindest die Änderungen, die nach jetzigem Stand feststehen). Generell spricht nichts dagegen, weiterhin Plugins zu schreiben, denn die später notwendigen Anpassungen sollten in den meisten Fällen recht zügig vonstatten gehen (lediglich in puncto GUI wäre es vll ratsam, sich vorerst aufs Wesentliche zu beschränken).


    Also kurz gefasst könnte man folgendes schonmal berücksichtigen:

    • Events nur innerhalb der Event Funktion nutzen (wenn sie getriggert werden), niemals in eine Liste reinschreiben oder an einen anderen Thread übergeben. An Funktionen übergeben ist hingegen ok, sofern diese sich an die selben Regeln hält
    • EventMethod.Threaded sollte nicht mehr verwendet werden, da es wie gesagt rausfliegt. Meistens ist es eh nicht so sinnvoll, diesen Modus zu verwenden, da die meisten Events ohnehin aus verschiedenen Threads getriggert werden
    • Man sollte vermeiden, zu viele Threads zu erzeugen. In den meisten Fällen sind Threads ohnehin nicht nötig, da der Server die API-Aufrufe bereits aus verschiedenen Threads tätigt. Wenn man wirklich eigene Threads braucht, sollte man vorsichtig sein wenn API Funktionen aus diesen Threads aufgerufen werden: Jeder erstmalige Aufruf einer API Funktion aus einem neuen Thread sorgt für viel Overhead! Wenn man nun zB einen Executer bzw. Scheduler verwendet, der unter der Haube immer wieder einen neuen Thread spawnt, kann das schon sehr ins Gewicht fallen
    • Evtl. wäre es ratsam, die WorldDatabase erstmal nicht zu benutzen. Hier kann es sein, dass es einige Änderungen gibt (muss aber nicht). Das Problem ist, dass die Datenbank bereits vom Spiel gelocked wird, und der Zugriff über Java dann nicht mehr so einfach ist. Normale SQLite Datenbanken (also von Plugins erstellte Datenbanken) sind aber kein Problem
    • Es wird vom Spiel generell keinen MySQL Support mehr geben. Dadurch werden möglicherweise auch die MySQL Funktionen aus der API entfallen. In Java gibts aber natürlich andere Lösungen dafür, d.h. wenn ein Plugin unbedingt MySQL Zugriff braucht, muss es notfalls selber den JDBC Treiber als Lib laden

    why not Vulkan on Windows too?

    It's very likely that we add optional Vulkan support on Windows too, but we still want to stick to DX11/12 as primary APIs for the time being. The reason is that DX11 and 12 are more battle-proven and usually these APIs (at least DX11) are better supported by graphics drivers in general.


    Actually we had a lot of trouble in the past with broken OpenGL drivers. If a new graphics driver comes out, there is always a chance that it has some bugs. However, since the majority of games out there is using DirectX, most bugs in DirectX drivers were discovered and fixed in no time. In case of OpenGL, it usually took a lot longer until the graphics manufacturers fixed these issues (if at all), resulting in a lot of trouble for Rising World...


    But we will definitely keep a close eye on Vulkan. It's still too early to perform solid tests, but if we find out that Vulkan provides better performance than DirectX, we will think about using Vulkan as primary API on Windows :)

    Thanks for pointing that out! I agree this can be confusing... Basically it just means the plugins can either be installed in the game directory OR the server directory (for multiplayer servers), but I've updated the pinned topic to clarify this.


    Nevertheless, I'm glad to hear you have it working now :)

    The plugins instructions is using different terminology than the folders in the English language folder systems

    Hmm... can you tell me which part of the instructions is confusing (or differs from standard teminology)? Basically all plugins belong into the "plugins" folder in the game directory (if this folder does not exist, just create it). So plugins are not installed per world.
    If you want to install the plugins on a server instead, just put them into the "plugins" folder in your server directory accordingly.


    You always have to unzip the plugin zip, but make sure that every plugin still has a separate subfolder. E.g. if a plugin is called "MyPlugin" and has a few files in it (like "myplugin.jar", "config.txt" etc), make sure the plugin folder "MyPlugin" goes into the "plugins" folder. Most plugin creators zip their plugins with an appropriate folder already, so you just have to unzip the file, but if a zip file just contains a "myplugin.jar" file, for example, you have to create the "MyPlugin" folder yourself.


    Example: If you want to install the ChickenCoops plugin (this is really just an example), you just have to unzip the "ChickenCoop" folder from the zip file in the plugins folder.


    Your game directory could look like this:



    Hope that helps :)

    Happy new year :) And thanks for the log! Actually the overflow exception isn't caused by a plugin directly, instead it occurs when the game tries to save the player inventories - which indicates that one (or more) players have broken items in their inventory. It's very likely that the invalid item was added by a plugin, but unfortunately the log provides no information about the plugin which is responsible for this :(


    The error is indeed a big problem, on the one hand, it has a big impact on the server performance, on the other hand, player inventories are no longer saved properly... Does the error still occur after restarting the server? What happens if you remove the plugins and restart the server? If the error is still there in this case, this would indicate that the inventories are also broken in the database.

    Internally the plugin API uses an int to store the ID of an area, which enables us to have more than 4 billion unique areas in theory - so this doesn't seem to be the issue here. Unfortunately I can't say much about the WorldProtection plugin, since I don't have source code access, but it looks like this issue is caused by the way how the plugin calculates its own area ID - the ID the plugin calculates is prone to collisions. I'm afraid only @yahgiggle can fix this issue... :/

    For the new version we will drop OpenGL support. Instead we will use DirectX 11/12 on Windows, Metal on Mac, and Vulkan on Linux.


    While Metal and Vulkan will certainly result in better performance on Mac and Linux, older hardware may not support these APIs. On Mac, you need at least MacOS High Sierra 10.13 (which should be supported by all post-2010 Macs), and on Linux, you need a graphics adapter which is compatible with Vulkan (e.g. NVIDIA GeForce GTX 650 or higher, AMD Radeon R9 series, Intel HD 4000/5000 or higher etc).


    On Windows, you need at least a DirectX 11 compatible graphics card.


    Please let us know if your hardware does not meet these new minimum requirements.

    Hmm... does it only happen after playing some time, or is the red dot missing from the beginning? Do you play via P2P (the green "Play with friends" button), or on a public multiplayer server?