Moin,
kurz vor dem Release hat sich Eugen Harton auf Reddit heute morgen mal zum Thema Persitenz geäußert.
Wir haben den Beitrag mal für Euch übersetzt. Wir sind immer noch alles gespannt, was uns morgen erwartet...
"Hallo Leute,
ich habe dieses Thema erstellt um zu erklären, was genau Persistenz macht und warum. Wir speichern den Stand der Karte und schreiben diesen in eine binäre Datei in der Grund Server Struktur. Es repräsentiert den aktuelles Stand der Karte, der in regelmäßigen Abständen gespeichert wird, als auch bei korrektem Herunterfahren eines Servers.
Bis zum heutigen Tag konnten wir keinen neuen Weg reproduzieren, durch den die Objekte in der Welt entfernt werden. Elemente werden entweder zur Laufzeit des Servers entfernt, wenn sich kein Spieler in der Nähe befindet (wir prüfen die Entfernung und den Sichtkegel), oder durch die Dauer der Persistenz.
Elemente werden außerdem bei Ablauf ihrer Lebenszeit entfernt. Alle mit dem Basebuilding verbundenen Elemente (Fässer, Zelte usw.) haben z.B. eine Lebensdauer von 45 Tagen (in Echtzeit). Die Lebensdauer wird aktualisiert, wenn mit dem Element interagiert wird. Dies ist ein Sicherheitsnetz für die Serverleistung, um sicherzustellen, dass Dinge, die das System stören, zu einem bestimmten Zeitpunkt entfernt werden, wenn sie nicht verwendet werden.
Elemente werden auch entfernt, wenn sie zerstört (ruined) werden, wenn die oben genannten Bedingungen zutreffen.
Wenn ein Gegenstand beschädigt wird, wird er nicht geladen und verschwindet somit. Dies kann durch Schließen des Servers durch Beenden des Prozesses oder Absturz geschehen. Gerade jetzt, da wir es immer noch nicht reproduzieren können, und der Person, die zumindest das von ihnen gesendete Ticket gemacht hat (danke u/DAYZMISFITS). Es scheint so zu sein, dass die Leute (oder die Hoster) den Server nicht korrekt beenden, sondern nur den Prozess beenden. Im Moment kann man das Problem wahrscheinlich in 1 von 25 Fällen durch inkorrektes Beenden replizieren.
Daher möchte ich alle, die eigene Server hosten oder Probleme mit der Persistenz haben, fragen, ob es bei Euch zufällig daran liegen könnte.
In Liebe Eugen <3"
Hey guys,
I created this topic to fully explain what exactly persistence does and why. We save the world state by writing to a binary file in the root of the server structure. It is a representation of world state that is periodically saved and also done during proper server exit.
As of this day we haven't been able to reproduce any new way that causes the items in the world to be removed. Items get removed either during runtime of the server if no player is around (we check the distance and vision cone), or during load of persistence.
Items get removed either due to their lifetime reaching zero, and all basebuilding associated items (barrels,tents etc.) have 45 days lifetime (IRL time). The lifetime gets refreshed when the item is being interacted with. This is a safety net for server performance to make sure things that clutter the system get removed at some point if they are not being used.
Items also get removed if they are ruined if the above constraints are applicable.
If item gets corrupted it is not loaded and thus disappears. This can happen by closing the server by termination of the process or crash. Right now since we are still unable to reproduce it, and the person who did at least according to the ticket he sent (thanks u/DAYZMISFITS). It seems to be the case that people are just terminating server (or the hoster) not gracefully but by killing the process. Right now you can probably replicate the issue 1/25 times by termination.
So I would like to ask all that are hosting the servers or having issues with persistence to check if by any chance this is not the thing happening.
Eugen with love
Quelle: https://www.reddit.com/r/dayz/…gvkn/persistence_how_why/