Sven Co-op

Sven Co-op

35 ratings
Native Linux Client Troubleshooting
By R4to0
This guide is aimed to help troubleshooting and solving known issues related to the game client on most Linux-based platforms
   
Award
Favorite
Favorited
Unfavorite
Introduction
Hello fellow GNU/Linux user!

In this guide we'll try to identify and cover most, if not all, known issues that can overcome when launching the game client under a Linux platform.

It can be caused by missing dependencies, conflicting libraries, unmet requirements, etc, usually so-called "Dependency hell"[en.wikipedia.org] or even by script mistakes or incompatibilities.

Disclaimer: This is a work in progress guide and its content can be changed or improved at any time. No guarantees are given when following these instructions.
Game Requirements
The game is compiled on Debian 9 Stretch which makes the minimum target level support for binary compatibility. More details in the official announcement: https://steamcommunity.com/games/sven_co-op/announcements/detail/1690436503294024879

Minimum Linux requirements:
- Debian based distro (Ubuntu, etc) with GNU C Library (glibc) support version 2.24 or newer
- Native (not wine) Steam client
- System packages up to date
- Steam Compatibility tool unticked or NOT using any Proton setting.
System Packages, Steam Runtime and Dependency Hell
Due to the nature of GNU licenses, proprietary softwares[en.wikipedia.org] (these that aren't open sourced) aren't allowed to statically link (let's say 'include') dependency libraries into the software executable to overcome these incompatibility issues, being locked with the compatibility to which system was used to compile the game on.

To help overcome these issues Steam ships a pre-compiled set of libraries, under the so-called Steam Runtime[github.com] package, as a binary compatibility layer for Steam applications running on Linux platform.

However, to benefit from Steam Runtime completely, the game has to be compiled inside Valve's runtime environment and not all games or applications make use of this, probably because of its old build tools (GCC4 for example) or other issues related to the environment. Debian was chosen by the Sven Co-op developers due to its balance between compatibility, stability and fairly up to date softwares.

But... there is a catch when using Steam Runtime libraries: if you're running a very much newer distro build (so-called "bleeding-edge"), Steam Runtime will conflict with the system and the game might not run at all! In this case it might be better to run using native runtime[wiki.archlinux.org] libraries (what comes with the system or installed by the package manager), however you'll have to install every required library package by yourself to satisfy Steam and/or application dependencies, or wait Valve to release a new Steam client update with all the libraries updated.

Fortunately, you'll get a prompt with all required missing libraries on your system when running Sven Co-op. For example:


In the end, this is usually called by many developers as "Dependency hell"[en.wikipedia.org].
Identifying issues and Symptoms

The most common issue is basically "nothing happens" when trying to run the game from Steam client, and you might not have any visual feedback when this happens.

In this case you can try running the game from terminal:

- Open your favorite terminal (eg: Gnome Terminal, CTRL + ALT + T on Ubuntu);
- Go to where the game folder is installed (usually at ~/.steam/steam/steamapps) by typing, for example, cd ~/".steam/steam/steamapps/common/Sven Co-op" (don't put ~ inside quotes!);
- Run the game launcher by typing ./svencoop.sh.


At first, we see some information being shown, such as the game executable filename, game path, launch parameters glibc version, etc. The "wrong ELF class: ELFCLASS32" error messages can be ignored.

Right after the Launching... message is where the game execution starts for real. If everything is fine you'll see the game console output and the game window will appear, otherwise you'll get one of the error messages shown in this guide below.
Known issues and its solutions
Remember: CTRL + F is your friend (or not).
No text in the in-game server browser / Missing fonts


This happens because the system doesn't have the required fonts installed, mostly proprietary Microsoft Truetype fonts.

On OpenSUSE it was reported by a user that installing install Microsoft proprietary Truetype[software.opensuse.org] font package solves this.

For Debian based distros, such as Ubuntu and its derivates, fonts-dejavu package worked fine for me. Tested on Debian.

For Arch based distros, ttf-dejavu[archlinux.org] should satisfy this dependency issue. Tested by myself on Manjaro Linux, confirmed working on OG Arch by Discord user fontaine#7758 at the official Sven Co-op Discord[discord.com].

Related posts:
https://forums.svencoop.com/showthread.php/46357-Missing-fonts-Tahoma-Verdana-Ariel-Trebuchet-MS-and-Courier-New-on-Linux
https://steamcommunity.com/app/225840/discussions/0/1642041886387630560/
libgcc_s.so.1: version `GCC_X.X.X' not found
Usually happens on 'bleeding-edge' distros (those that are always up to date with its current code), this is mostly caused by an old library file being shipped with the game and conflicting with whatever the system is running. The solution is to delete libgcc_s.so.1 file from game directory.

Note: this library is not bundled within the game anymore starting from 5.23
hw.so: symbol <some function here> version GLIBCXX_X.X.X not defined in file libstdc++.so.6 with link time reference
Similar to the previous issue, it has multiple causes:
  • An old libstdc++.so.6 file in the game directory
  • Steam Runtime libraries out of date in relation to the system side.
  • Outdated/Not supported distro version

Note: this library is not bundled within the game anymore since 5.18

In this case, multiple solutions are available:
  • Go to the game directory and delete libstdc++.so.6 if exists;
  • Try running the game without Steam runtime, by adding -nosteamruntime in launch options at the Steam library game settings (right click Sven Co-op, select Properties). Don't forget to install all needed libraries, a dialog will show up if any is missing.
  • Upgrade your distro if it doesn't match the requirements.
  • Wait for Valve to update the Steam runtime libraries (usually happens with me on Ubuntu 18.04 LTS).
WARNING: You are missing the following 32-bit libraries, and Sven Co-op may not run
Mostly happens on clean installations, the dialog should tell you which libraries are missing on your system. The solution is to install library's package, and that varies from distro to distro and its package manager, as well as the package name. This is why the window dialog also says "Please refer to the documentation of your Linux distribution for information about installing these libraries."

You can find the package related to the missing library file on your system's package manager website.

Debian/Ubuntu based systems:
https://www.debian.org/distrib/packages
https://packages.ubuntu.com/

Arch based systems:
https://aur.archlinux.org/packages/

Keep in mind that you have to install the 32-bit version of the package.
For deb based packages you have to append :i386 to the package name in the apt comand, and arch ones are usually prefixed as lib32.

On some systems you can't directly install the package without breaking the entire system, in this case it is recommended to extract such library files into game directory instead.
Steam Overlay does not work!
This is a issue since the initial 5.0 Steam release, Sven Co-op launcher script prevents from Steam to injecting and loading Steam Overlay libraries into the game. Getting to work is easy, however the game crashes upon launching if you're running in full screen mode and with "Low video quality" disabled. This issue appear to happen with old proprietary NVIDIA drivers.

An fix was attempted in the past but caused a lot of these issues:
https://steamcommunity.com/app/225840/discussions/0/2653116235603182717/
https://steamcommunity.com/app/225840/discussions/0/2653116235603231265/
... and many more that I couldn't find now but I remember by having to give a workaround to each one until the next update that reverted it.

If you still want to have Steam overlay you can do the following:

  • First, make sure your game is running in windowed mode or with "Low video quality" checked.
  • Go to the game directory and open svencoop.sh file with your favorite text editor, then on line ~207 you'll see something like this:
    export LD_PRELOAD="./libiconv.so.2" # :${LD_PRELOAD}:${STEAMOVERLAY_LIBS}

  • Copy the commented part that is after # and paste inside LD_PRELOAD quotes right after libiconv.so.2, which will turn into something like this:
    export LD_PRELOAD="./libiconv.so.2:${LD_PRELOAD}:${STEAMOVERLAY_LIBS}" # :${LD_PRELOAD}:${STEAMOVERLAY_LIBS}
  • Enjoy taking pictures and chatting with friends with the Steam overlay while playing Sven Co-op on Linux!
libGL error: MESA-LOADER: failed to open <driver name> (search paths /usr/lib/dri)
This happens because there's a incompatible dependency library being loaded somewhere and conflicting with GPU/IGP driver libraries. To identify the offending library, run the game from terminal with the following parameter:
LIBGL_DEBUG=verbose ./svencoop.sh

Then you might see something like this:
libGL: MESA-LOADER: failed to open /usr/lib/dri/<driver name>.so: /path/to/some/dir/offending_library.so: <error message> (required by /usr/lib/dri/<driver name>.so)

The solution will vary from where the library is being loaded, for example:
  • If it's libgcc_s.so.1 inside game directory for example, you can safely delete it.
  • If it's inside Steam Runtime environment, you can try running the game with -nosteamruntime parameter (don't forget to install all needed libraries, a dialog will show up if any is missing)
Warning: SetLocale('en_US.UTF-8') failed. Using '<inser various LC_ envs here>'.
This happens because the game can't find the appropriate locale. This message usually appears when you execute the game outside Steam client window. There are numerous workarounds for this:

Install the US langpack.
Debian and Ubuntu as sudo or root:
apt install language-pack-en
Generate the locale:
locale-gen en_US.UTF-8
Refresh system locales:
update-locale

If that doesn't help, try instead:
dpkg-reconfigure locales
then select en_US.UTF-8 and try again.

If none of these solution works, as a last resort you can try launching the game with SteamEnv=1 environment variable set (the only that worked for me). Source: GitHub[github.com]
I have audio in the menu but in-game there's no sound! FMOD Ex error code 60: Error initializing output device.
Usually happens if you use a Arch based distro and/or have PipeWire as your main sound backend. Because the game uses a deprecated product (FMOD Ex) for its sound engine, there is no support for this backend. FMOD Ex only works with Pulse and Alsa backends, thrus needing a compatibility layer package installed if you're on PipeWire, such as lib32-pipewire[archlinux.org] on Arch.

Alternatively there's a workaround with symlinking /usr/bin/pulseaudio, provided by Wayne on Discord[discord.com]:


Originally posted by Wayne on Discord:
— 23 june 2023 21:52 -03:00
@R4to0 So i've noticed that FMOD doesn't play well with PipeWire and having the pipewire-pulse isn't enough, since FMOD expects pulseaudio to be present for a check during initialization.

One of the solutions is to create a symlink to pulseaudio so FMOD can be fooled into running with pipewire-pulse

ln -s /usr/bin/true /usr/bin/pulseaudio

Issue related
https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1514

ln -s /usr/bin/true /usr/bin/pulseaudio
My issue is not listed or none of the solutions worked, I need help!
If nothing worked, you can ask for help in one of the official channels:


DO NOT send private messages to any of the Sven Co-op team members with your issues! Using public support channels can benefit other players as well while might solves yours.

Don't forget to provide as much information as possible when posting.

Good luck!
21 Comments
R4to0  [author] Apr 9 @ 5:46pm 
Thanks for confirming!
(try-hard username) Apr 9 @ 1:23am 
The symlink worked wonderfully. Really gonna help me out when I upgrade PCs.
R4to0  [author] Apr 8 @ 11:47pm 
@(try-hard username) I've added to the guide, see if works for you: ln -s /usr/bin/true /usr/bin/pulseaudio
(try-hard username) Apr 8 @ 11:37pm 
No problem with the delay. Yes, it is error 60, but I don't even know if I could install lib32-pipewire for Debian 12 (most certainly not, methinks). The symlink solution sounds like a good alternative. Do you have any more info on that? Finally, about the libcrypto and libssl, I did have this problem, and I think I was told by one of the devs(?) that it was not much of an issue. Still, when I found this guide, I though I try and apply the fix provided, but it didn't seem to do much difference. I still see the error pop up whenever I start Sven.
R4to0  [author] Apr 8 @ 11:03pm 
@miszol Thanks for the comment on SDL2. I remember having issues regarding using a different binary that caused the game to stop launching for me due to lack of X11 function calls in the binary. Recently I've upgraded libSDL2 in our game and found out how to workaround such issues I had in the past, proobably will work if I drop a more up to date libSDL2 binary for people to replace on their side.

@(try-hard username) I've saw some about symlinking /bin/true to some pipewire-alsa binary or something like that, which worked for some players. If it's error code 60 you can try what's in this guide. I have to reorganize this guide to be able to add more solutions... Sorry for the delay.
bo'el o' scrumpeh :) Apr 5 @ 9:17am 
r4to0 make sure to add something about deleting the sdl2 library as it makes your mouse and keyboard inputs feel very weird and delayed for some people :)
(try-hard username) Apr 4 @ 1:48pm 
Is there a fix for the FMOD error for Debian?
R4to0  [author] Dec 10, 2023 @ 5:59pm 
I will add that and others whenever I get time. Currently I reached character limit for a single topic and will need to split into multiple parts, or have each issue into its own topic. That will pollute list index but it has to be done anyway.
NOVA Dec 6, 2023 @ 1:16pm 
I finally found it here: https://packages.ubuntu.com/focal-updates/i386/libssl1.1/download

You may want to post this as the link in your guide instead, for Ubuntu users.
R4to0  [author] Dec 5, 2023 @ 7:25pm 
@NOVA libcrypto.so.1.1 is present in libssl1.1:i386 package. You might have to grab from a previous distro release and extract libcrypto and libssl binaries into game directory instead of installing .deb package directly.