lethal-guitar / RigelEngine

A modern re-implementation of the classic DOS game Duke Nukem II

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Portable Install

AskaLangly opened this issue · comments

Since the player's files are stored in %appdata%\Roaming, could it be possible to add a portable.txt in the game's root, in order to load the user's files from a ~/userdata directory instead? I understand it wouldn't be beneficial for, say, Steam Deck, but it would be nice to have as an added convenience.

@AskaLangly yeah can do, that's an easy change. Just to clarify, the userdata directory would then also be next to the game files? So for example, if you had a Duke 2 installation at C:\Games\Duke2, then both the portable.txt file as well as the userdata directory would also be in C:\Games\Duke2? Or would userdata be in the user directory (i.e. C:\Users\<name> on Windows)

C:\Games\Duke2\userdata\
...
C:\Games\Duke2\portable.txt

portable.txt would be zero bytes; game's looking for the file by name only.

Hi @AskaLangly, I've implemented a first version of this and made a build for you to test: https://ci.appveyor.com/api/buildjobs/4hk62nw0gt4ejt53/artifacts/rigelengine_win_x64.zip

Let me know if it works like you expect.

Hello! It works as I imagined it would.

First, I made sure that this build still used AppData, and it read my current save.
Then, I created the portable.txt. Before migrating the data over, I let the game create directories; saw userdata pop up.
Then, I overwrote what it created with my current save, and it all works.

Awesome, thanks for testing!

Related: It would be neat if there were an environment variable to explicitly set the game data directory, in case the game files had already been placed elsewhere.

For instance, Flatpak apps and installed games (e.g. Lutris, Steam) may be kept on separate drives.

@QmwJlHuSg9pa it's already possible to do that by passing the game path as a command line argument:

RigelEngine <path-to-game>