Persistent world with UE4 (not an MMO)

Hi Daniel, persistence is a feature I desire in my games, no matter the number of players. Have you considered using Save Game Object to storing a Worldstate Snapshots locally on the UE4 Server? This can be done with BPs without any C++. A Worldstate Snapshot could be saved on < 5 minute intervals. If you intend to serialize data and transfer to a remote database the VaRest Plugin may prove useful.

I would anticipate the client to be able to handle hard disconnects from the Server. In the event the Server crashes, you restore Server Worldstate from the local snapshot and provide reconnecting clients a recovery management interface to restore from last known persistent world state prior to crash possibly using a custom RPC (with minimal C++) to retrieve Player specific Snapshot (position, attribute values, inventory) and sync with the Server.

You could also consider storing encrypted worldstate snapshots on clients locally using the UE4 Server as a AAA Server to restore from the snapshot upon request from Client, and sync with Game Server. Of course this risk of hacking exists, but, could offer a greater amount of redundancy and provide a diversified source of snapshots to scrutinize for cheating/hacking.

*** Optional Reading ***

Data Tables are great for editing with Spreadsheet Apps, storing data in CSV format or exporting to SQL, however, as far a I know there is no way to save Data Tables with Blueprints directly. So, I use Save Game Object and in-game Data Editors to work with data. If the data needs to be transferred to remote server, I serialize in JSON format, which would be required for Data Tables anyways.

Dependent on how critical data is, I personally would consider a 1:1 redundancy configuration with dedicated Hot standby UE4 Server, or a distributed N:1 redundancy configuration using Clients snapshots to store backups of last known world state prior to crash.