Issues with Thrive launcher + shader failing to compile while running game

(not sure where to post this, please redirect if somewhere else is more appropriate)
Had an issue with the thrive launcher (downloaded today, so should be fairly recent)
7za failed unpacking the archive and reported

Unpacking failed, File 'Thrive-0.4.0.0-LINUX-generic.7z' is invalid? Unpacker failed to start with error: Error: spawn /opt/Thrive Launcher/resources/app.asar.unpacked/7zip/7za ENOENT
Suggestions:
ENOENT error can mean that you are missing 32-bit library support. You should try installing 'glibc.i686' or if you are on ubuntu follow instructions here: Installing 32-bit libraries on Ubuntu 16.04.If these don't help try searching for 'YOUROSHERE install 32 bit library support'.

To try redownloading delete '/tmp/Revolutionary-Games-Launcher/Thrive-0.4.0.0-LINUX-generic.7z'

The pre-packaged 7za is a 32-bit binary so installed 7za manually for my 64-bit machine (with apt) and ran it again, still did not work. So I tried to do it manually with:

7za x /tmp/Revolutionary-Games-Launcher/Thrive-0.4.0.0-LINUX-generic.7z -O~/.config/Revolutionary-Games/Launcher/Installed/Thrive-0.4.0.0-LINUX-generic
Which printed the following:

7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,8 CPUs Intel(R) Core(TM) i7-4702MQ CPU @ 2.20GHz (306C3),ASM,AES-NI)

Scanning the drive for archives:
1 file, 244802443 bytes (234 MiB)           

Extracting archive: /tmp/Revolutionary-Games-Launcher/Thrive-0.4.0.0-LINUX-generic.7z
--
Path = /tmp/Revolutionary-Games-Launcher/Thrive-0.4.0.0-LINUX-generic.7z
Type = 7z
Physical Size = 244802443
Headers Size = 10631
Method = LZMA2:24 BCJ
Solid = +
Blocks = 2

ERROR:
Can not create output directory: ~/.config/Revolutionary-Games/Launcher/Installed/Thrive-0.4.0.0-LINUX-generic/

System ERROR:
Permission denied

Which is a permission issue (although the thrive launcher reports the same issue as previously). I’m not sure what caused this (my linux+google skills fail me). This is what ls tells of the permissions/groups (niklas is my account name)

ls -al /tmp/Revolutionary-Games-Launcher/Thrive-0.4.0.0-LINUX-generic.7z:

-rw-rw-r-- 1 niklas niklas 244802443 dec 22 16:14 /tmp/Revolutionary-Games-Launcher/Thrive-0.4.0.0-LINUX-generic.7z

ls -al ~/.config/Revolutionary-Games/Launcher/:

drwxrwxr-x 3 niklas niklas 4096 dec 22 13:35 .
drwxrwxr-x 3 niklas niklas 4096 dec 22 13:35 ..
drwxrwxr-x 2 niklas niklas 4096 dec 22 15:41 Installed
-rw-rw-r-- 1 niklas niklas 5214 dec 22 15:41 saved_version_db_v2.json

So instead I tried to extract it to /tmp and ran:

7za x /tmp/Revolutionary-Games-Launcher/Thrive-0.4.0.0-LINUX-generic.7z -o"/tmp/thrive-unpacked/"
mv /tmp/thrive-unpacked/Thrive-0.4.0.0-LINUX-generic ~/.config/Revolutionary-Games/Launcher/Installed/

which worked! I’m not sure if this was an issue with my setup/recent ubuntu or something but maybe this could be added to the unpacking js-code.

When trying to run the game, I got a missing dynamic library problem with libopenal.so.1, similar to https://github.com/Revolutionary-Games/Thrive/issues/513
Fixed this by installing it manually:
sudo apt install libopenal1

Was the lib ssue due to my copying the folder and missing some step that the script does or was it actually the same issue as the github issue?

After this the game started, I saw some cutscenes and was able to start a new game but after about a minute, the game fails with a shader compilation problem:

[INFO] Spawning a cell from player species: Default
AudioManager: Audio Source (Data/Sound/soundeffects/microbe-death.ogg) created from Data Source FileSystem.
GLSL compile log: 100000001PixelShader_ps
0:34(42): error: syntax error, unexpected $undefined, expecting EOL
ERROR: terminate called after throwing an instance of 'Ogre::RenderingAPIException' what(): OGRE EXCEPTION(3:RenderingAPIException): Fragment Program 100000001PixelShader_ps failed to compile. See compile log above for details. in GLSLShader::compile at /home/hhyyrylainen/Projects/Leviathan/ThirdParty/ogre/RenderSystems/GL3Plus/src/GLSL/OgreGLSLShader.cpp (line 308)
child process exited with code null

Full log is: https://pastebin.com/geehjNuN
It seems strange that no one else would have a shader miscompiling and not report it. Why would a shader change between different platforms unless it’s generated in some way by Ogre/Leviathan (I’m not too sure of how Thrive works under the hood and I have only dabbled a bit in graphics programming)…

Is the failure because of me copying/extracting manually? I might be missing some steps compared to the thrive launcher (I tried to piece together what I could from the Thrive Launcher source but I haven’t written a lot of javascript)

System info:
lsb_release -a

No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.10
Release:	18.10
Codename:	cosmic

This installation is fairly new (less than 24 hrs) so I don’t believe I’ve had the time to mess it up yet :slight_smile:

I’m running exclusively on integrated graphics (FPS seemed fine in the game) but I have a discrete graphics card that’s been disabled in UEFI/BIOS (I’m running on a laptop). I can dig up the specs if it would help.

I have added openal to be included in a future release.

Many people on windows with intel integrated graphics have problems with the game not starting or the game simply not rendering any organelles.

Is probably the problem. Could you try finding the glsl file mentioned in that (it should be in the thrive/bin folder) so we can figure out if it is one of our shaders or one of the Ogre inbuilt shaders.

Found a shader ~/.config/Revolutionary-Games/Launcher/Installed/Thrive-0.4.0.0-LINUX-generic/bin/100000001PixelShader_ps.glsl which I put at https://pastebin.com/cbRzM9PA but there does not seems to be anything wrong with it. The thrive game log seems to indicate that the the strange character is on line 0 so maybe this is not actaully the shader that is compiled but rather garbage data, as https://stackoverflow.com/questions/10877386/opengl-shader-compilation-errors-unexpected-undefined-at-token-undefined seems so suggest?

Many people on windows with intel integrated graphics have problems with the game not starting or the game simply not rendering any organelles.

This is what I’m seeing for a bit before it crashes:


so organelles seems to be displaying properly compared to the screenshots I’ve seen

I’ll try to enable my nvidia gpu to see if that fixes it.

Interesting. So the shader seems to be the Ogre PBS shader (which is used by the flagella, so my hypothesis is that the game crashes for you when you are about to see a cell with flagella). I think this might be an Ogre bug, but I’m not sure how this could be reported / confirmed by them.

It works now with my nvidia gpu + proprietary drivers. Idk if it was an intel issue (unlikely I guess) or Ogre that behaved differently for different gpu. Thanks anyway!