OneShot

OneShot

Not enough ratings
Running OneShot on Linux!
By Adi
I was disappointed to find that OneShot's native Linux version didn't work properly, but instead of switching to proton and hoping that some of the more integrated mechanics would work, I started debugging
   
Award
Favorite
Favorited
Unfavorite
Intro
When I bought OneShot for the first time a few days ago, I was a little disappointed to find out that the native version didn't work properly on Linux. I could have just run the Windows version, but because of how integrated some of the mechanics can be, I decided to start debugging and figure out why exactly the game wouldn't run
Debugging Setup
The debugging process was relatively straightforward. The simplest method I found is to set the launch options to the following:
bash -c '%command% > ~/oneshot.log 2>&1'

These launch options will run OneShot through bash, and output all data logged by oneshot to the file ~/oneshot.log

Once you've set the launch options, open a terminal and create the log file with "touch ~/oneshot.log"
That should create an empty file for the logs to go to. Now run "tail -f ~/oneshot.log". This will output any changes to the log file directly to your terminal so you can easily see what's happening.
The Process
Now that we have logs set up, we can put them to good use. Go ahead and launch the game through steam. If your issue is anything like mine, steam will report the game as running, then as stopped just a few seconds later. Going back to the terminal we set up earlier, you should see some logs from the game. Most of the log data doesn't matter for our purposes. We're simply looking for one of two specific logs:

  • libpthread.so.0: version `GLIBC_PRIVATE` not found (required by <Internal Library>)
    • If you receive this error, go to the OneShot library path and either move the specified file somewhere else, or delete it if you feel confident
  • error while loading shared libraries: <Library Name> ... No such file or directory
    • If you are receiving an error like this, verify game files and try again. If the issue persists, try and download the library mentioned to your system

There will also be many other errors, which seem to be acceptable, given that the game runs despite them. If I find anything to the contrary, I'll edit this guide accordingly

If you've cleared all errors of the mentioned types, and the game still won't launch, feel free to upload your log file to a file hosting service, leave a comment, and attach a link to the logs

I highly recommend keeping the launch options previously set. If the game should crash for any reason, those launch options give you a log file to comb through and find out what caused it
My Results
After going through the previously mentioned process, I only had two libraries that needed to be moved around. The most difficult part of debugging was just figuring out where to start, which is why I made this guide to explain it. For me, I simply had to move libcrypt.so.1 and librt.so.1 out of the way so that the game would use the native libraries instead.

Many of the other libraries provided can also be removed in a similar fashion, but the game appears to run perfectly fine with the provided versions, so I've let them be instead
Alternative Method
If the previous method didn't work, or had some unexpected issue, here's another option to try:

  1. Open a terminal and navigate to your OneShot installation
  2. Run `ldd ./{oneshot,steamshim,_______,*.so*} | grep "not found"`
  3. Install any mentioned missing libraries
    • Some libraries may not be properly detected by ldd! If you have the library installed, or the library exists in the OneShot directory, it should be fine to skip over
Conclusion
I really hope that this guide can be helpful to anyone else trying to run OneShot on Linux. I've said it a few times, but I'll say it again for good measure, please feel free to leave a comment if you run into any issues after following this guide. I want this guide to cover every possible issue people may encounter, and so I've started it with the issues that I myself have encountered

Art Credits - Niko [Sketch] by CyanNarra on Newgrounds[www.newgrounds.com]