lethal-guitar / RigelEngine

A modern re-implementation of the classic DOS game Duke Nukem II
GNU General Public License v2.0
922 stars 60 forks source link

Possible to transfer save game between multiple systems? (re: game path in UserProfile_v2.rigel) #917

Open sofakng opened 11 months ago

sofakng commented 11 months ago

Is it possible to transfer save games (UserProfile_v2.rigel) between systems but use different game paths?

For example, I'd like to use Rigel Engine on both my Steam Deck and MacBook.

I can manually (or use a sync utility) to transfer the file between the systems but it looks like the game data path is also stored inside that file.

Any ideas how I can synchronize the save game but have each system use different paths and settings?

lethal-guitar commented 11 months ago

Hi @sofakng, that's correct, the game path is stored in the user profile as well. Settings are stored in a separate Options.json file, so having different ones for each device should already work. But not the game path at the moment..

Makes sense to support this use case, though! I'll think about the best way to solve it. Thanks for the suggestion!

There is also a workaround that's already possible at the moment, if you don't mind using a terminal to launch the game on your Mac. The game path can be overridden by passing a command line argument to the engine. So what you could do is first set the game up on your Steam Deck, then copy the profile file to your Mac. Then, open a terminal, navigate to the directory where RigelEngine.app is located, and then launch RigelEngine like so:

./RigelEngine.app/Contents/MacOs/RigelEngine <path_to_your_game_files>
sofakng commented 11 months ago

Thanks for the reply and the information!

I understand the workaround that you are describing and I'll give it a try.

Perhaps you can use the Options.json to store the game path information? I like the idea of each device having different settings/options so that would be unique to each device anyways.

Thanks again!

lethal-guitar commented 11 months ago

Thanks for the reply and the information!

You're welcome 🙂

Perhaps you can use the Options.json to store the game path information? I like the idea of each device having different settings/options so that would be unique to each device anyways.

Yeah, that makes sense and is probably going to be the easiest solution. Just need to think through some details/edge cases. I'll keep you updated how it goes!

lethal-guitar commented 10 months ago

Hi @sofakng, I've implemented and merged this. I don't know when I'll get around to publishing a new release though, so it could be a while until builds for all platforms are available. If you're comfortable with building from source, you can find some instructions here:

https://github.com/lethal-guitar/RigelEngine/blob/master/BUILDING.md#mac-build-instructions-1015

sofakng commented 10 months ago

This looks great. Thanks so much for implementing it!