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

feat: Linux launch support v2 #229

Merged
merged 18 commits into from
Jun 18, 2024
Merged

feat: Linux launch support v2 #229

merged 18 commits into from
Jun 18, 2024

Conversation

0neGal
Copy link
Owner

@0neGal 0neGal commented Apr 29, 2024

This supersedes #116 and still closes #38

The intention is to finally add support for launching the game on Linux, supporting both regular Steam, Flatpak Steam, the Steam Browser Protocol, and alternatively a user set custom launch command.

From my testing everything works as intended, and there doesn't seem to any issues, however, I could of course have easily missed something!

TODO

  • Localizations
  • Verify that nothing has broken on Windows
    • This PR shouldn't have affected Windows, albeit you never know, and I did make some minor changes to improve the launch.js/launch() code, however I see no actual reason that it should've broken anything
  • Multiple people verifying functionality (with NS and Vanilla separately)
    • Custom arguments still work
    • Launch methods
      • Custom command
      • Steam (Auto)
      • Steam (Flatpak)
      • Steam (Protocol)
      • Steam (Executable)

LOCALIZATIONS

Since the last time that localizations have been needed there has been some changes to the way things are done, instead of having to fork or open a PR and manually editing the language files, we now have a script for it scripts/langs.js, and you can simply run npm run langs:localize and it'll open a TUI where you can navigate between which languages to edit, and it'll prompt for the various missing strings. And then simply make a PR with the changes one way or another.

Feel free to ask questions about this process, or give feedback, as it's yet to actually be tested, I just personally have assumed that the old way was annoying for everyone :p

TESTING BUILDS

When signed in on GitHub you'll be able to get the builds for this PR here: Windows and Linux

Previously, settings using `<select>`'s for their value only worked on
the `forcedlang` setting, now it just works overall, this wasn't an
issue before, as we had no need for it.

More importantly `forcedlang` is special in that it dynamically loads
the list of languages available, so it was and still is handled
separately, to support that behavior.
The "Steam (Auto)" launch method should ideally work in all scenarios,
ideally! Obviously, I can't and haven't tested in every environment, but
I've attempted to make sure it functions.

Launching Vanilla and Northstar works just fine, custom launch arguments
also work just fine, it works with normal Steam, Flatpak Steam, and as a
fallback with the Steam Browser Protocol (`steam://`)

There's also the option to set your own/custom launch command for both
the Vanilla and Northstar launch options. How well they work will of
course depend on what the user set them to.

"Steam (Auto)" attempts to pick the right Steam launch method depending
on what's available, if the Steam executable can be found, it'll use
"Steam (Executable)", if it cant and Flatpak is found on top of an
install of Steam through Flatpak, then "Steam (Flatpak)" is used, if all
of that fails, then we attempt to use "Steam (Protocol)"

Some toasts will be shown if you attempt to run the game with either
"Steam (Executable)" or "Steam (Flatpak)" and they cant find the
game/Steam. This isn't an issue with "Steam (Auto)"
@0neGal 0neGal mentioned this pull request Apr 29, 2024
12 tasks
@XNovaDelta XNovaDelta mentioned this pull request May 2, 2024
@DxsSucuk
Copy link
Contributor

DxsSucuk commented May 3, 2024

I could do the functionality test on Windows if there is any prebuilt binaries provided

@0neGal
Copy link
Owner Author

0neGal commented May 3, 2024

I could do the functionality test on Windows if there is any prebuilt binaries provided

Lovely, they're linked at the bottom of the initial comment :)

Also talked to Gecko who said he'd get around to do some testing whenever possible, which is great since he has a SteamDeck to test on...

@DxsSucuk
Copy link
Contributor

DxsSucuk commented May 3, 2024

Good to hear!
I can ask a mate of mine aswell if he liked to test it on his streamdeck.

@0neGal
Copy link
Owner Author

0neGal commented May 3, 2024

I can ask a mate of mine aswell if he liked to test it on his streamdeck.

Wont say no to more testing, assuming you meant SteamDeck and not Stream Deck :p

Though, assuming they've any intention of using it beyond just testing, it would be a good idea to inform them that it's a testing build, and it wont auto update and what not.

@DxsSucuk
Copy link
Contributor

DxsSucuk commented May 3, 2024

My apologize, I did mean SteamDeck and not Stream.
I just asked my friend and did tell him its a test build, haven't gotten a response yet so!

@GeckoEidechse
Copy link
Contributor

From the SteamDeck side of things, it did pick the launch arg up correctly and Steam popped up asking if I would like to launch with the passed args.

What did end up launching was Titanfall2 without Northstar stuff but I think the reason is it not using a Proton that allows Northstar to intercept the launch args.

So might be worth checking installed/in-use Proton version but apart from that it worked as expected ^^

@0neGal
Copy link
Owner Author

0neGal commented May 4, 2024

Lovely, was that just checking the default Steam launch method? Or did you also check all the other ones? And confirm which are working, and which, if any aren't.

@GeckoEidechse
Copy link
Contributor

Lovely, was that just checking the default Steam launch method? Or did you also check all the other ones? And confirm which are working, and which, if any aren't.

There are other launch methods on Linux? I just opened the AppImage from the CI on my SteamDeck and hit Play. Didn't test Windows ^^"

@0neGal
Copy link
Owner Author

0neGal commented May 4, 2024

There are other launch methods on Linux?

There are yes, Linux has 5 options:

  • Steam (Auto)
  • Steam (Flatpak)
  • Steam (Protocol)
  • Steam (Executable)
  • Custom command

Flatpak attempts to talk to Steam through Flatpak, Protocol will attempt to do it through the Steam Browser Protocol, Executable attempts to do it with a normal executable present inside $PATH, Auto attempts to do executable if found, otherwise if the Flatpak is found it'll use that, and at last it'll fall back to the protocol.

Custom command should be mostly self explanatory

@0neGal
Copy link
Owner Author

0neGal commented May 27, 2024

I managed to get the time to get some spare, albeit bad drives out to format and install Linux onto, to test and verify that its not just my current setup that works, and it did seem like everything worked fine, took a while tho, due my current situation with my internet, hence why I'd been hoping for someone else to have the ability to test it.

Either way, I'd still prefer if someone else also had the ability to confirm functionality of all the launch methods on Linux, but if @DxsSucuk (or someone else) is able to confirm nothing is broken on Windows, launching vanilla and with Northstar, then I think it'd be best to simply merge and make a release, and then subsequently fix any issues, if they arise...

@DxsSucuk
Copy link
Contributor

My apologies, I completely forgot to test it on my PC, I will try to test it once I am home again!

@0neGal
Copy link
Owner Author

0neGal commented Jun 15, 2024

Could I ask for an ETA on this btw? .w.

@DxsSucuk
Copy link
Contributor

I got lost on my way home. But I am now installing Titanfall 2 and Viper again. I am currently not home but have access to a Windows VM so, I will testing it out now.

@DxsSucuk
Copy link
Contributor

My Remote Tool doesnt have enough permission to install it, that sucks. But when I am home I shouldn't forget it because there will be a gigantic monitor with a big request for admin perms. So I should be able to test everything in about 10h. Sorry again for the delay.

@0neGal
Copy link
Owner Author

0neGal commented Jun 17, 2024

Don't worry, that's totally fine! Just hadn't heard from you for a while is all! :3

@DxsSucuk
Copy link
Contributor

DxsSucuk commented Jun 17, 2024

Got home and tested it!
Launching normal Titanfall 2 works, it openes steam to allow custom launch arguments. And updating + launching Northstar also worked!

@0neGal 0neGal merged commit 8a13bbf into main Jun 18, 2024
2 checks passed
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.

feat: Linux "Launch" support
6 participants