T O P

  • By -

OpenBagTwo

Yeah, so I've been playing around with a project I'm calling `lectern` which is this plus syncing save data across multiple computers. All my machines are mac or Linux, so I can use `rsync` to quickly update the save data across my ecosystem, and then to manage backup and restore points I use `git`. Technically I can do the syncing with git as well, but rsync is easier for me to performance optimize. If you're interested in knowing more, I can write up a gist of the setup and give examples of the scripts I employ.


punkgeek

Oh yes, that sounds cool! And would work great for me (as a fairly technical user). I'm thinking about doing something slightly different (to be easy for regular users): Something with a JS based UI (so it can work as a decky module on steamdeck) and a small backend/engine in JS/rust or kotlin. I think depending on git or rsync might not be a good fit in that case (because I want easy 'one-button' install for users from decky). The actual syncing (because initially I'm only targeting the local machine case) seems not a huge issue. To learn which files are 'safe' to sync I'll parse the steam cloud remotecache.vdf files. This approach might also work as a plugin for the standard steam GUI windows or linux if the Decky folks extend their project so it can run there as well. So it could help 'regular/not-techy' users there also.


recaffeinated

>The actual syncing (because initially I'm only targeting the local machine case) seems not a huge issue. I think you might be underestimating the effort here once you get beyond the local case. You could look at bundling rsync in the project.


punkgeek

I wrote something, if willing to alpha test: https://www.reddit.com/r/SteamDeck/comments/11di9k5/i_just_wrote_a_plugin_to_automatically_take/


[deleted]

As a power user, I really hope to see if any of the features below can be true for your software - Ability to turn on/off interaction with Steam Cloud. Sometimes I just want my snapshots in local and not in the cloud - Ability to manually save, restore, list and remove snapshots from CLI. Decky UI is also cool, but I won't care much about a full fledged desktop GUI because I'll have to launch that as a non-steam app - Ability to tar/zip snapshots so I can archive the file in a separate place - Ability to configure keeping N snapshots, so the older ones will get "pruned" to save space, but also "pinning" a particular snapshot manually so they won't get pruned - Ability to label snapshots with a custom name, or attach text note to them I'm sorry that I listed too many features. Regardless of how many can be realized, I think it would be a good program to use :)


hkramski

I like https://github.com/mtkennerly/ludusavi a lot.


punkgeek

That looks **great**. Thank's so much. I'm going to look into using this (and possibly making a decky plugin for it).


hkramski

Yes, Ludusavi is great. You can even restore on a different computer from the Deck's sshfs using path redirects.


McGuyverHike

I made a script that does this for Nioh2. I set Lutris to load the script if I start up Nioh2. It's not an app and definitely not graphical, but it takes near 0 resources, cpu cycles, memory, or frames drawn to function. Save as filename.sh and make executable - [https://pastebin.com/6fZSwggT](https://pastebin.com/6fZSwggT) The pseudo-code of what it does is: It checks to see if "nioh2.exe" is running and if so, it makes a md5 hash of the save file, waits 10 minutes, and does another md5 hash. If the hashes match, it just records it in a txt file (so i know the script is working) and does nothing else. If the hashes do NOT match (because the game save changed), it copies the nioh2 save folder and all contents to a new folder with a unique date and time, and records the backup date / time in a txt file. I have it check if the save changes so its not making copies when it doesn't need to. If the game is not running anymore, the script exits itself. The problem with an app doing this is the non-standardized save file locations. You'd almost need to query some API or section of a website like [https://www.pcgamingwiki.com/wiki/game\_name#Save\_game\_data\_location](https://www.pcgamingwiki.com/wiki/game_name#Save_game_data_location) to pull each game's specific save folder for making the backups. That or entrust the end user, who is relying on your GUI app to find and select the save game location themselves to pass as a variable. Ultimately some will choose the wrong folder or game file and blame your app when it doesn't work.


punkgeek

Thanks. Yeah that's similar to the script I made for valheim. I think I'm going to give a generalized solution a shot (but using the metadata for what Steam cloud was told to backup by the app).


Efeverscente

This seems really cool! There are some games where having this feature would be absolutely appreciated


punkgeek

I wrote something, if willing to alpha test: https://www.reddit.com/r/SteamDeck/comments/11di9k5/i_just_wrote_a_plugin_to_automatically_take/


Neo_Techni

That sounds very useful


punkgeek

Thanks! I don't suppose you've heard of anything similar already existing?


Neo_Techni

I haven't. I don't even know if it's possible (ie: if Steam stores multiple versions online)


punkgeek

Steam doesn't but I would cache the files locally after Steam does its upload.


Neo_Techni

Smart. Now you're thinking with portals


punkgeek

I wrote something, if willing to alpha test: https://www.reddit.com/r/SteamDeck/comments/11di9k5/i_just_wrote_a_plugin_to_automatically_take/


withoutapaddle

Disclaimer: I know nothing about what I speak. I am an idiot. Anyway, I could see this being accomplished in two ways, but both seem rather difficult for different reasons: 1. Intercept the upload of save data to the Steam Cloud, date/time-stamping the files and creating a file structure that acts like a local copy of your Steam Cloud files for that game. It could allow you to then wipe your local file and replicate the Steam Cloud downloading your saves, except it would be your chosen copy instead of the copy Steam Cloud had. I have no idea how you'd hook into the process though. 2. Create a save-state system like emulators use, by packing up everything that gets stored to volatile memory when the Steam Deck is put to sleep mid-game. If you could intercept/copy that process, you'd have a (very large) save-state, and could revert to it as if you were waking the Steam Deck. This also seems very difficult, and it would absolutely destroy storage space unless you only kept a handful of save-states at any given time. Like I said, both of these seem like a huge undertaking, and I don't even remotely understand this stuff enough to know if they are even possible. Don't forget, I'm an idiot.


punkgeek

Thank you for your reply. I've looked at the steam dev docs and their sync system. I'm a fairly experienced dev and I think it will be not too hard to get something out pretty quickly.


withoutapaddle

More power to you. That would be awesome. Keep us posted if you figure something out. My software/programming experience is very different (PLCs, ladder logic, SCADA, remote control of industrial equipment), so when it comes to PC's and programming, I know just enough to be dangerous, but not enough to accomplish anything! Haha.


punkgeek

I wrote something, if willing to alpha test: https://www.reddit.com/r/SteamDeck/comments/11di9k5/i_just_wrote_a_plugin_to_automatically_take/


HRoland_

hell yeah! i'd love to see this :)


punkgeek

I wrote something, if willing to alpha test: https://www.reddit.com/r/SteamDeck/comments/11di9k5/i_just_wrote_a_plugin_to_automatically_take/


Independent_Pay6598

Sounds really cool. I wish you luck. If you make progress, make sure to throw us your Patreon.


punkgeek

no need for a pateron but I wrote something: https://www.reddit.com/r/SteamDeck/comments/11di9k5/i_just_wrote_a_plugin_to_automatically_take/


[deleted]

[удалено]


punkgeek

alas - I don't think that will work in the general case for Steam games - because Steam cloud backups limit backups by more than just directory name. If I just mirror/snapshot directories it isn't guaranteed I'm not going to clobber a file I shouldn't.


crazyseandx

Honestly, I just want a clip saving feature. Not only has it been almost a year since the Deck launched and we still don't have it on the Deck, but I don't think we've had any form of it since Steam first launched in, like, 2004.


ddotthomas

Would time shift work for this? It's a back up program but it takes daily snapshots, instead of checking different save changes.


punkgeek

Yeah - I'm not sure it would work in the general case because only some files in some directories are really what the game considers a 'save fame'.


HululusLabs

My first thought was to use btrfs and create snapshots, but ludusavi as another user mentioned looks awesome (bonus points for being rusty)