ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.16k stars 173 forks source link

Some native Linux Ren'Py games are not working #8357

Open ipr opened 2 years ago

ipr commented 2 years ago

Your system information

Please describe your issue in as much detail as possible:

Some native Linux games are not starting. This includes games using Ren'Py (python-based) visual novel engine. Starting game from Steam returns immediately and trying to start from command line gives error.

For example, Blackberry Honey (716340) gives error: Could not import renpy.bootstrap. Please ensure you decompressed Ren'Py correctly, preserving the directory structure. Traceback (most recent call last): File "/home/kaze/.local/share/Steam/steamapps/common/Blackberry Honey/lib/linux-x86_64/../../Blackberry Honey.py", line 198, in main() File "/home/kaze/.local/share/Steam/steamapps/common/Blackberry Honey/lib/linux-x86_64/../../Blackberry Honey.py", line 188, in main import renpy.bootstrap File "/home/kaze/.local/share/Steam/steamapps/common/Blackberry Honey/renpy/init.py", line 56, in from renpy.compat import * File "/home/kaze/.local/share/Steam/steamapps/common/Blackberry Honey/renpy/compat/init.py", line 59, in import future.standard_library ImportError: No module named future.standard_library

Fading Hearts (259720) gives error: /media/kaze/pelituus/SteamLibraryUus/steamapps/common/FadingHearts/renpy/styledata/init.py:37: RuntimeWarning: ����ȋ��74?<��a�9;����U�O�Ϗ��ӵxy���C�:| import renpy.styledata.style_selected_idle_functions # @UnresolvedImport Traceback (most recent call last): File "/media/kaze/pelituus/SteamLibraryUus/steamapps/common/FadingHearts/Fading Hearts.py", line 198, in main() File "/media/kaze/pelituus/SteamLibraryUus/steamapps/common/FadingHearts/Fading Hearts.py", line 195, in main renpy.bootstrap.bootstrap(renpy_base) File "/media/kaze/pelituus/SteamLibraryUus/steamapps/common/FadingHearts/renpy/bootstrap.py", line 289, in bootstrap renpy.import_all() File "/media/kaze/pelituus/SteamLibraryUus/steamapps/common/FadingHearts/renpy/init.py", line 393, in import_all renpy.styledata.import_style_functions() File "/media/kaze/pelituus/SteamLibraryUus/steamapps/common/FadingHearts/renpy/styledata/init.py", line 37, in import_style_functions import renpy.styledata.style_selected_idle_functions # @UnresolvedImport File "*�����fo�$0�~�ϧ���#vd\��\����ޭ/V/bK�:?�T?", line 9, in rqoߐM�4X�F<ߪ7�ٍ'�������o���կ���ݹ�w��

If this isn't problem in Steam could it be packaging of the game or just a problem in Debian? If so, where is the appropriate place for the bugs?

Steps for reproducing this issue:

  1. Start the game from Steam
  2. observe it exits immediately
  3. Start the game from command line (.sh)
  4. observe error message
kisak-valve commented 2 years ago

Hello @ipr, these issues should be mentioned to the individual game dev(s) if it hasn't been already.

ipr commented 2 years ago

Hello @ipr, these issues should be mentioned to the individual game dev(s) if it hasn't been already.

Yes, I've mentioned them in Steam forums but in case there is a commonality like Steam runtime I wanted to report here as well.

qirien commented 2 years ago

I have seen that issue on four different computers with a different Ren'Py game not using Steam. So I don't think it's a Steam problem. One user noted that there seemed to be extra lib directories in lib/linux-x86_64/ and lib/linux-i386/ and deleting these solves the problem. (see https://steamcommunity.com/app/1484620/discussions/0/3387282447744401582/ ). When I do a build, I don't get these extra directories, so maybe this is from an old version of Ren'PY or something?

smcv commented 3 weeks ago

As a note for any future issue reporting, when you copy/paste terminal output, code or other literal text, please put it in a "fenced code block":

paste code or terminal output here

so that it won't be interpreted as formatting (e.g. init.py is probably actually __init__.py).

smcv commented 3 weeks ago

RuntimeWarning: ����ȋ��74?<��a�9;����U�O�Ϗ��ӵxy���C�:|

File "*�����fo�$0�~�ϧ���#vd\��\����ޭ/V/bK�:?�T?", line 9, in rqoߐM�4X�F<ߪ7�ٍ'�������o���կ���ݹ�w��

This looks like either memory corruption, or some component in the game trying to load a binary file as text. This seems most likely to be a bug in how this particular game was packaged/released.

smcv commented 3 weeks ago

Start the game from command line (.sh)

As a note, in general this is not a supported thing to do for Steam games. The only "official" way to launch a Steam game is through Steam.

For some games it will work anyway, but for some games it won't: it's up to the game developer and how they have made their game. (For example some games need to be launched from Steam because they rely on the Steam Runtime for cross-platform dependencies and compatibility, some games need to be launched from Steam because they rely on it for features like input remapping and Steam Cloud storage, and some games need to be launched from Steam as a DRM/licensing mechanism.)

If you want to get debug output from a Steam game to be able to copy/paste it into an issue like this one, usually the easiest way is to run Steam from a terminal. In current versions, the output from each game goes to the same place as the output from Steam itself.

In the Steam public beta, game output also gets written to ~/.steam/steam/logs/console-linux.txt, which you might find useful when reporting issues. This is not yet true for the stable release at the time of writing. The logging setup might change in a future Steam release.

smcv commented 3 weeks ago

If the game is making assumptions about things that are not always true, a possible workaround is to change the game's properties to make it use the "Steam Linux Runtime 1.0 (scout)" compatibility tool (which is how most native Linux games run on Steam Deck):

Properties → Compatibility → Force the use of... → Steam Linux Runtime 1.0 (scout)

For some games this will help, for other games it will not. It's worth a try!