Steam Cloud saves break between windows and linux

Started by kaosdrachen, July 30, 2016, 04:13:19 PM

Previous topic - Next topic

kaosdrachen

I dual-boot, and have a secondary system that only runs Linux.

Synchronizing the saves via Steam cloud from windows to Linux works fine, as does between different Linux systems. However, when trying to synchronize from Linux back to windows yields an error "Steam was unable to sync your files for RimWorld with the Steam cloud" and it fails to load them.

This isn't the only multi-platform game I play, and none of the others currently suffer this issue. I suspect there's a problem with the fact that windows filesystems are not case sensitive and that's causing it to attempt to overwrite a directory with two differently cased names somehow.

I'll update this thread once I've run some more tests, which I will do after backing up my save files.

milon

Thanks for the report. And do let us know the results of your testing.  Also, if there's anything relevant in your log file please attach that too (see my sig regarding log files).

kaosdrachen

Brief update before I get to my actual day job:

I took a look at the contents of ~/.config/unity3d/Ludeon Studios/Rimworld/Saves/ to compare it to AppData/LocalLow/Ludeon Studios/Rimworld/Saves, and found what I suspect is the problem.

I have a habit of naming my save games with whatever is on my mind as I make the save, and one of the save files in the linux directory is titled "No critters?.rws" because for some reason (I've forgotten the circumstances) I'd been expecting an ingress of manhunting somethings and nothing showed up.

Judging by the modification times of the files in the windows directory, the synch issues started popping up shortly after I saved that particular game -- at least, none of the windows saves has a ctime/mtime later than its existence.

I'll remove the save, wait for steam to sync to the cloud and see if windows can handle things again when I get home tonight.

milon

^ That's probably it.  Invalid characters for Windows filenames are:

\ / : * ? " < > |

kaosdrachen

And Steam (sensibly) does not run its cloud service on a windows platform, so it saw absolutely no problem with the filename.

I'm not sure whether this is ultimately a bug in Rimworld or Steam. On reflection, probably the latter.

kaosdrachen

Final confirmation: Removing the save file containing a windows-illegal character allows steamcloud to once again properly sync in windows.

All good now.

milon

Still, if Steam allows it, we should probably watch out for it.

Suggested fix: disallow any character in a filename that's an illegal character on any supported platform.

kaosdrachen

That might get tricky fast. How many platforms are you intending for Rimworld to be able to run on?

milon

To my knowledge, only what we currently support: Windows, Mac, Linux