Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unified installer #27

Merged
merged 14 commits into from
May 10, 2020
Merged

Unified installer #27

merged 14 commits into from
May 10, 2020

Conversation

rockerbacon
Copy link
Owner

Problem

Maintaining multiple installers slows down progress and opens too much room for inconsistency. This pull request aims to solve that by introducing an unified installer capable of performing different actions depending on the game that is to be installed.

Solution for the Installer

The installer now presents the user with a drop down where they can select which game they would like to install. Based on the selected game, the installer uses the gameinfo of that game to determine specifics of that game such as APPID, necessary winetricks, etc.

Adding a new game to this installer should be as simple as creating a new gameinfo file and adding a new option to the dropdown.

Note: while the installer gives the user an option to inform that their game is installed using Wine, this is still an upcoming feature and for now the user will simply receive an error informing it's not possible to use the installer with non-Steam games.

Solution for the NXM Link Handler

The installer links the installed instance's directory to a fixed location - $HOME/.config/modorganizer2/instances - and the broken then accesses this location to use the download.sh script which in turn starts the nxmhandler.exe of that instance.

Downsides

The only downsides of this approach are very minor and the pros far outweigh them. They are still worth noting, however:

  • Lutris does not allow conditional downloading of files. This is a minor issue because all game specific files are very small and downloading all of them should take less than 10 seconds after support for all games is added;
  • This approach restricts the usage of many Lutris features. This is a design flaw in Lutris where installers have little to no means of using the information obtained from its dropdown menu;

@rockerbacon rockerbacon merged commit 0b0146f into master May 10, 2020
@rockerbacon rockerbacon deleted the v2.2 branch May 10, 2020 03:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant