Adds actions to save the game's data directly in the filesystem and/or
into Steam Cloud. Them game will push an event with the save data
whenever the game is saved. Electron will use that data to persist it
into the User Data folder, until the folder reaches a certain size.
Once over the quota, it's going to remove previous saves.
Files are grouped according the the player's identifier, ensuring
backups off different playthroughs if importing.
Optionally, the file will be gzipped before saving to disk, largely
reducing file size.
Adds a way to save & load from Steam Cloud, currently manually only.
When loading a save, it'll trigger the new "Import Data Comparison" page
to accept or cancel the import.
When saving the game, it will save to Steam Cloud & to filesystem if the
options are enabled.
Add automatic game restore
Detects when the player has access to a newer game that has been saved
more recently than the one being loaded. It checks both in the Steam
Cloud and on the local filesystem. Adds an option to disable the
feature.
- Adds a "Save Game" menu item that triggers the game's save.
- Adds a "Export Game" menu item that triggers the download file popup.
- Adds a "Export Scripts" menu item that triggers the "download *"
terminal command.
- Adds a "Load Last Save" menu item that loads the latest file modified
in the user data folder.
- Adds a "Load from Steam Cloud" menu item.
- Adds a "Load From File" menu item that popups a file selector & loads
the file.
- Adds settings for "Saves Compression (.gz)", "Auto-save Backups" &
"Auto-save to Steam", toggleable through the menu.
- Adds a "Open Game Data","Open Saves", "Open Logs" & "Open User Data" menu items.
- Adds a "Quit" menu item.
Adds a channel to communicate between the main process & the renderer
process, so that the game can easily ship data back to the main process.
It uses the Electron contextBridge & ipcRenderer/ipcMain.
Connects those events to various save functions. Adds triggered events
on game save, game load, and imported game. Adds way for the Electron
app to ask for certain actions or data.
Hook handlers to disable automatic restore
Allows to temporarily disable restore when the game just did an import
or deleted a save game. Prevents looping screens.
- Used restful patterns for handling server calls (GET/PUT/DELETE)
- Utilized Server interface for saves rather than reimplementing code
- Exposed operations for getting codebase of scripts on the home server and deleting files.
- Added a common response structure
Since we are only using it to track achievements, we can still launch
the game if it fails to initialize, we just have to not run the
achievements interval.
Adds a dialog that tells the user to fix the issue & restart the game to
enable achievements.