1

So I have a game (Starbound) and sometimes I play it under Ubuntu and sometimes on Windows. I want to use the same game profile so I symlinked the directory to the profile, so it gets synced between the Windows and the Linux version.

I only have 15 FPS under Linux even though I get ~50 FPS under Windows. I switched from 1920x1080 to 1280x720 so I can at least play the game with ~30 FPS. The problem I have now is that every time I change OSes after playing the game and want to play it again that I have to manually change the resolution.

The file that determines the resolution lays in the symlinked folder. Is there a way to use /path/to/[symlink]/../starbound.conf instead of /path/to/[symlink]/starbound.conf under Ubuntu?


Ubuntu 16.04

  • I don't think this is possible. My first though was to use an OverlayFS, but that way you can not overlay just a single file but only whole directories, which means any changed or added files in the overlaid directory would be made to the upper, Ubuntu-specific folder and not to the lower Windows-visible folder. What you could do though would be to launch your game with a small script from Ubuntu that backs up your Windows config file and replaces it with a version for Ubuntu, then starts the game and after it exits, restores the Windows version again. – Byte Commander Dec 22 '16 at 22:33

1 Answers1

0

A symlink is simply a pointer to a file. Nothing is "sync'd" in this type of setup. Symlinks are essentially the windows equivalent of a shortcut.

For what you want to achieve I believe you need to use two different config files, one for Win and one for Linux, each using the correct resolution.

For example... the windows config file (let's call it winStarBound.config) will have all your game settings with the resolution set to 1920x1080, the linux version of the config file (let's call it linuxStarBound.config) will be exactly the same as the windows config file except the resolution will be set to 1280x720 (or whatever suits).

Assuming the config file can be found in a folder common to both Win and Linux you could create a script in both Linux and Win that goes something like...

Win - batch file will copy correct config file into place and start the game)
copy winStarBound.config /path_to/starbound/starbound.config
Starbound.exe

Linux - script will copy correct config file into place and start the game
cp linuxStarBound.config /path/to/starbound/starbound.config
./StarBound

Call the script/batch file the same name (ie. startStarBound) except in windows the extension will be .bat and in linux is will be .sh. This way regardless of which OS you're running from you can just type "startStarBound".

PS. I don't know how you're running the Linux version of StarBound, native client, Steam, Wine so made some assumptions above.

  • By synced I meant that when I make progress in the game on Windows that I'll see the progress I made on Ubuntu, too. –  Dec 23 '16 at 00:00
  • You have to do some research and file out which file (if any) holds the saved game data. Find out the locations of this file in both Linux and Windows. You should be able to create a symlink in Linux file system that points to the saved game file under Windows. For example if the saved game file is called "savegame.txt" and is found in Windows under c:/users/yourusername/starbound/savegame.txt, you could create a symlink in Linux as such ln -s /path/to/starbound_windows/savegame.txt savegame.txt, assuming the saved game file has the same structure under both Linux and Windows. – GrannySez Jan 04 '17 at 05:30