First of all, I don’t want you to help me with a specific problem. All the details in this post are just examples and I’m interested in getting a general understanding.
So I just wanted to play doom eternal, but when I press play on steam, after a couple of seconds the button switches from blue back to green with no game running. I checked protondb and saw that the game was gold rated, so it should run fine.
I checked the tweaks that people use and they suggest different proton versions. But no matter what I do, I basically get nothing. There are no error messages or log files. Same with other games I tried in the past.
So basically when a game does not work out of the box, I have no idea where to look for cues on how to fix it. Is there a verbose mode or something similar?
You using an Nvidia GPU? My husband gave me his old one, and it just seemed to give me all kinds of random issues that I never had before on my AMD GPUs. Just a thought.
I will second what someone else said. My husband had all kinds of issues when he reused his old NTFS drive in Linux. He reformated it to ext3 or 4 I think and hasn’t had major issues since.
In addition to everything everyone else has said, the launch option:
PROTON_LOG=1 %command%
(from the wiki). It will create asteam-<gameid>.log
in your homedir which can have lots of good wine/proton specific information in it.You can also rename the user-settings.sample.py file in a given proton version in
$HOME.steam/root/steamapps/common/Proton - <version>/
touser-settings.py
and uncomment the additional wine debugging options (PROTON_LOG is already set in this file, but it is not active until it’s renamed or passed directly on the Launch Options line).PROTON_DUMP_DEBUG_COMMANDS=1 - outputs a launch script you can use outside of Steam in /tmp
99% of the time, if a game “should run fine” and nothing happens, it’s because it’s installed on a Windows partition (NTFS or exFat).
Try moving it to a Linux partition.
If it still doesn’t work, you can start advanced troubleshooting.
You can run steam from a terminal, and it could show you any errors that are popping up during the game launch.
steam steam://run/[appid]
You can find the appid in the URL for the store page of the game
Are you trying to run versions of the games that were installed through the windows steam app? If so, you need to do a fresh install through the Linux client.
Indeed. Didn’t know that
One very simple things I try is updating the glorious eggroll proton version and force-use that. Changing the proton version sometimes (especially switching to an older one) requires deleting the compatdata (wineprefix folder) of the game.
Troubleshooting software is a deep rabbit hole. Troubleshooting modern games, made for a complex operating system like Windows and running on another operating system, is a very deep rabbit hole.
However, since you’re just launching games through Steam, you probably won’t have to go very deep. This would be a pretty good place to start:
https://github.com/ValveSoftware/Proton?tab=readme-ov-file#readme
https://github.com/ValveSoftware/Proton/wiki
Note especially the FAQ
Do you have proton enabled?
If you don’t have proton enabled, steam will try to launch the game but can’t since .exe files don’t run on linux. You’re not getting an error because there’s nothing happening.
Really? For me if I don’t select a proton version it just uses the default, I’ve never seen it try to run a windows binary directly. Do I have some like secret extra setting enabled?
Yes, you do. In steam there’s a setting to use steam play for all incompatible titles
It’s just the setting I showed and then it auto selects the proton version. You need to do it for all games or go into steam settings and toggle on the compatibility setting “Enable Steam Play for all other titles.”
This gets mentioned far too rarely. Threw me off too, when I first tried to run Steam games on a Linux PC. This could surely be made more prominent in the interface or even largely automated, like on the Steam Deck.
it can be automated if you’d like. The toggle for that is in: Steam -> Settings -> Compatibility -> Enable Steam Play for all other titles.
TIL. Thanks for the tip.
Steam does spit out some diagnostic messages, and I believe – don’t quote me on this – that programs that it runs normally have the same stderr/stdio, so stuff they write will show up there as well. Normally, these are not saved in a file. I generally launch it from a script, so that it’ll save said log messages in a file that I can view.
#!/bin/bash # Some games (Wasteland 2) require more file descriptors ulimit -S -n 4096 exec steam "$@" >~/.steamlog -console -nobigpicture -nochatui -nofriendsui -silent 2>&1 &
Leaves log messages in .steamlog in my home directory. You may or may not want some of those other options being passed to Steam.
A lot of people are saying to just “run steam in a command line”, but for 100% clarity, to do that you search for an application like “terminal” or “console”, then into that just type “steam” and press enter. It should launch steam whilst also writing debug info to the terminal. If you’re lucky, it’ll show some things that are googleable, just don’t worry too much about things marked as “warning”.
Another thing to check is that you have enough free disk space. I can’t count the number of times I’ve been trying to figure stuff out only for it to be broken because I ran out of space.
If your Distro provides Steam in its software centre and isn’t Ubuntu, prefer installing it from there. The Flatpak version of Steam is also fairly serviceable. Both of these will take care of installing dependencies and getting everything set up correctly.
I’ve not really needed it myself, but some people swear by Steam’s “verify integrity of game files” thing. But if you find yourself needing to do that frequently, back everything up since it can indicate hardware failure.
First thing I typically do when that happens is update my system and reboot. This is useful for ensuring everything is in a known consistent state and there is no weird runtime issues that happened since you last booted. And it is always good to upgrade before you reboot to ensure you are booting the latest kernel and drivers.
If that does not help then I would start by closing down steam completely (ensure it is not running in the systray at all). Then launch steam though a terminal and start the game as you normally would. You will hopefully see some logs for the game in the terminal. Though it is very game dependent as to if that will be useful at all. If not I would look online to see if the game logs anything to any other file as some games tend to do their own logging or have a flag you can enable.
If the game gives you some logs and hopefully an error message you can then see if it is useful to you and if not try googling for that error and the game name. I find this tends to dig up more specific help for games then general searches for terms like wont start or crashes though sometimes those general terms can find a solution as well.
Note: if you try to launch steam in the terminal and it is already running you wont get any logs at all from it - it basically just forwards things to the main instance or quits as it does not need to do anything. Only the first instance you start will give you and useful logs.
I was having a similar problem with another game, and I had a similar desire to learn general troubleshooting rather than have someone give me a specific fix. That said, I don’t know if I can help because for me it’s basically butt my head against a wall until I poke something enough that it works - usually I don’t know enough to understand why the thing works.
I was installing my games onto a secondary drive. The problem turned out to be that that drive had been formatted by Windows back when my computer was set up to dual-boot. Some games still ran fine in Linux, but this particular game nothing would happen when I clicked Play. On a whim I tried installing it on the primary drive with the OS, and it worked first time. So there was something about that game that didn’t work with the drive formatting.
(I’ve since reformatted the second hard drive so that everything should now play nice with Linux, now that I no longer have Windows. Game is fine now.)
Generally, you can start most programs (like Steam) from a commandline terminal. That way you’ll see the log output. Sometimes they’ll also write to a logfile somewhere, you’d have to google where a certain program keeps its logs. If you find some ‘ERROR’ message, you can start from that. Like copy and paste it into a search engine.
If you happen to be trying to do this on a laptop with dual-graphics and the GPU is NVIDIA, it took me a while to find that one often can get proper GPU support by adding this just before
wine
(as in, right before it on the same command line):__NV_PRIME_RENDER_OFFLOAD=1 \ __GLX_VENDOR_LIBRARY_NAME=nvidia wine <game .exe> ...