Nifflas' Support Forum

Released Games => Knytt Underground => Topic started by: Nifflas on December 24, 2012, 21:50:42

Title: Linux Betas
Post by: Nifflas on December 24, 2012, 21:50:42
Hi!

If you got Knytt Underground game on Fastspring you can also access the Linux betas. If you tried here, please post and let us know how it works and what distro you're on. Post any problems, but if you didn't have any, please let us know that too.

If you got the game on Gamer's Gate and want a Linux beta, please send me a PM.
Title: Re: Linux Betas
Post by: Haploid on December 25, 2012, 09:57:53
Distro: Ubuntu 12.04 64-bit
GPU: NVIDIA GeForce GT 540M with Optimus, so I think it runs on the integrated Intel graphics controller
Window manager: Gnome 2 + Compiz

So far, runs very smooth and stable.  8)
Title: Re: Linux Betas
Post by: LPChip on December 25, 2012, 09:58:48
Doesn't ubuntu uses Unity now, which is a modified version of gnome 2?
Title: Re: Linux Betas
Post by: Haploid on December 25, 2012, 10:45:06
Doesn't ubuntu uses Unity now, which is a modified version of gnome 2?
Don't ask me the details. I've barely enough knowledge about the whole window manager thing to take Unity out of the equation. I run it without panels or dash. Just gnome-do to start applications and yakuake for everything else. :)
Title: Re: Linux Betas
Post by: Nohajc on December 25, 2012, 15:01:28
And I thought Unity now runs on top of Gnome 3. :D
Well... the bottom line is it works. :)
Title: Re: Linux Betas
Post by: klabelkholosh on December 25, 2012, 21:36:46
Distro: Arch Linux 3.6.10-1 64-bit
Graphics: nVidia ION (shared video memory I think)
PC: EeeBox EB1501

The graphics seem reasonable given the ION! The sound doesn't seem to work though, the only hint I get to this is this error in the console after I quit:

"An internal OpenAL call failed in audio.h (334) : AL_INVALID_OPERATION, the specified operation is not allowed in the current state"

I played it all the same without sound and it is still excellent. Merry Christmas  :)

Title: Re: Linux Betas
Post by: Alan on December 25, 2012, 22:08:13
Seems to work perfectly so far, though I've not been able to test actually starting any chapters so far, since.. well, I'll be recording my let's play tomorrow and I intend it to be blind, like my Saira playthrough.

Either way, some information:
Distribution: Arch Linux, stock kernel, version 3.6.10-1, 64-bit
CPU: Intel i5 (the first generation, 750)
RAM: 8GB DDR3
GPU: Nvidia GTX 580
Monitors: Dual-monitor setup using TwinView, game handles full-screen perfectly well
Sound card: ASUS Xonar Essence ST via PulseAudio using ALSA as its backend

Also, terminal output just on the off-chance it'll be of use:
Code: [Select]
[alan@alanhome Knytt Underground]$ ./run.sh
Audio initialized: 1.1 ALSOFT 1.14, OpenAL Soft, OpenAL Community
Framerate: 70.5368
Setting image file to: ./World/Sprites.dat
Loading ./Game.ini (Game.ini)
Loading ./World/World.ini (World.ini)
Loading ./World/Objects/Objects.ini (Objects.ini)
Loading ./Settings/Settings - Chowdren Linux.ini (Settings.ini)
Loading ./Data/Default Settings/Chowdren Linux.ini (Default Settings Ini)
Loading ./Settings/Nifflas - Default World, Achievements.ini (Achievements Savedata)
INI load failed (./Settings/Nifflas - Default World, Achievements.ini) with code -1
Loading ./World/Achievements/Achievements.ini (Achievements.ini)
Loading ./Data/Keyboard/Chowdren Linux.ini (Keyboard Ini)
Loading ./World/Creatures.ini (Creatures.ini)
Loading ./World/Characters/Characters.ini (Characters.ini)
Loading ./World/Dialog/Dialog.ini (Dialog Ini)
Loading ./World/Dialog/Chowdren.ini (Dialog Ini)
Loading ./World/Dialog/Juni's Umbrella.ini (Dialog Ini)
Loading ./World/Dialog/Susanna's Gems.ini (Dialog Ini)
Loading ./World/Dialog/Megabyte Village.ini (Dialog Ini)
Loading ./World/Dialog/Christina.ini (Dialog Ini)
Loading ./World/Dialog/The Hard Disk.ini (Dialog Ini)
Loading ./World/Dialog/The Family.ini (Dialog Ini)
Loading ./World/Dialog/Utopioca.ini (Dialog Ini)
Loading ./World/Dialog/Chico.ini (Dialog Ini)
Loading ./World/Dialog/Children of The Rig.ini (Dialog Ini)
Loading ./World/Dialog/Professor Julie.ini (Dialog Ini)
Loading ./World/Dialog/Paradise.ini (Dialog Ini)
Loading ./World/Dialog/Johann.ini (Dialog Ini)
Loading ./World/Dialog/Cilia's Family.ini (Dialog Ini)
Loading ./World/Dialog/Semiaquatics.ini (Dialog Ini)
Loading ./World/Dialog/Ionel's Museum.ini (Dialog Ini)
Loading ./World/Dialog/Secrets.ini (Dialog Ini)
Loading ./World/Dialog/Moonshine.ini (Dialog Ini)
Loading ./World/Dialog/Double Armageddon.ini (Dialog Ini)
Loading ./World/Dialog/Ball Lab Escape.ini (Dialog Ini)
Loading ./World/Dialog/Illumine.ini (Dialog Ini)
Loading ./World/Dialog/Lauritz.ini (Dialog Ini)
Loading ./World/Dialog/Mi's Family.ini (Dialog Ini)
Loading ./World/Dialog/Malie.ini (Dialog Ini)
Loading ./World/Dialog/Red Intro And Ending.ini (Dialog Ini)
Loading ./World/Dialog/The Incident with The Metal Pineapples.ini (Dialog Ini)
Loading ./World/Dialog/The Mage.ini (Dialog Ini)
Loading ./World/Dialog/Spiro.ini (Dialog Ini)
Loading ./World/Dialog/Avocado Transport.ini (Dialog Ini)
Loading ./World/Dialog/Hannah.ini (Dialog Ini)
Loading ./World/Dialog/Pat The Fairy.ini (Dialog Ini)
Loading ./World/Dialog/Wangleflower.ini (Dialog Ini)
Loading ./World/Dialog/Fiber Optic.ini (Dialog Ini)
Loading ./World/Dialog/Blubleblu.ini (Dialog Ini)
Loading ./World/Dialog/The Insanity.ini (Dialog Ini)
Loading ./World/Dialog/Spectral Diamond.ini (Dialog Ini)
Loading ./World/Dialog/Care Centre.ini (Dialog Ini)
Loading ./World/Dialog/Bluestone.ini (Dialog Ini)
Loading ./World/Dialog/Blue Ending.ini (Dialog Ini)
Loading ./World/Dialog/Dora's Home.ini (Dialog Ini)
Loading ./World/Dialog/Pixies.ini (Dialog Ini)
Loading ./World/Dialog/Bell Tower Entry.ini (Dialog Ini)
Loading ./World/Dialog/Chidi.ini (Dialog Ini)
Loading ./World/Dialog/Green Ending.ini (Dialog Ini)
Loading ./World/Dialog/Knytt Warrior.ini (Dialog Ini)
Loading ./World/Dialog/The Twilight Zone.ini (Dialog Ini)
Loading ./World/Dialog/Rob.ini (Dialog Ini)
Loading ./World/Dialog/Place Introductions.ini (Dialog Ini)
Loading ./World/Dialog/Leave Bell Tower.ini (Dialog Ini)
Loading ./World/Dialog/Commentary.ini (Dialog Ini)
Loading ./World/Dialog/Crystal Trading.ini (Dialog Ini)
Loading ./World/Dialog/Interlude.ini (Dialog Ini)
Loading ./World/Dialog/Menu.ini (Dialog Ini)
Loading ./World/Dialog/Juni and The Puzzle Piece.ini (Dialog Ini)
Loading ./World/Dialog/Demo.ini (Dialog Ini)
Loading ./World/Dialog/Tova.ini (Dialog Ini)
Loading ./World/Dialog/Neon Fall.ini (Dialog Ini)
Loading ./World/Dialog/Myriadist Leaders.ini (Dialog Ini)
Loading ./World/Dialog/Time Keeper.ini (Dialog Ini)
Loading ./World/Dialog/Fairy Spring.ini (Dialog Ini)
Loading ./World/Music/Music.ini (Music.ini)
Loading ./World/Sounds/Sounds.ini (Sounds.ini)
Loading ./World/Ambiance/Ambiance.ini (Ambiance.ini)
Event update took 0.41147
Loading ./World/Cache.ini (Cache.ini)
Loading ./World/Default Saves/Menu.ini (Savedata)
Loading ./World/Items/Inventory (Red).ini (Inventory ini)
Framerate: 59.6979
Event update took 0.002839
Draw took 0.008839
Framerate: 59.7872
Event update took 0.002853
Draw took 0.008467
Title: Re: Linux Betas
Post by: smeagle on December 26, 2012, 15:30:45
I tried the 64 bit demo.
It is not usable on the distro "Crunchbang Waldorf" (the testing branch). This is because it is a fork of Debian Wheezy, also the testing branch. At this stage, it seems that Wheezy has a libc version of 2.13, whereas the libraries that knytt underground needs require atleast 2.15. This will probably only affect few people, as most people use Ubuntu, which has the required libc version.
I love Crunchbang, but I may swap to mint, ive heard good things about it.
Title: Re: Linux Betas
Post by: kdamica on December 26, 2012, 18:40:58
Hello, I'm using Linux Mint Maya 64-bit. The demo works, but there is no sound, and it seems to hang when I try to exit.

My terminal fills with this message: "An internal OpenAL call failed in audio.h (334) : AL_INVALID_OPERATION, the specified operation is not allowed in the current state". Tried running in superuser mode and got the same result.

Looks and feels great, though!
Title: Re: Linux Betas
Post by: makoGrey on December 26, 2012, 21:28:41
I tried the 64 bit demo.
It is not usable on the distro "Crunchbang Waldorf" (the testing branch). This is because it is a fork of Debian Wheezy, also the testing branch. At this stage, it seems that Wheezy has a libc version of 2.13, whereas the libraries that knytt underground needs require atleast 2.15. This will probably only affect few people, as most people use Ubuntu, which has the required libc version.
I love Crunchbang, but I may swap to mint, ive heard good things about it.

Same problem here, also using cruchbang, however, 32bit.
Title: Re: Linux Betas
Post by: Nifflas on December 26, 2012, 22:13:05
I'll check with Mathias. In case we're unable to fix it, at least we'll know what to put in the system requirements.
Title: Re: Linux Betas
Post by: sairasghost on December 26, 2012, 22:23:01
Using Debian Wheezy, the game doesn't run. As others using Debian Wheezy or its derivatives have pointed out, the game wants GLIBC_2.14 or 2.15, which Debian Wheezy doesn't offer. (Wheezy is sticking with 2.13).

Also, I disagree with a previous poster's assertion that most people use Ubuntu. This might only be true if you also count Ubuntu-derivatives like Mint. Besides, crafting a version of the game that doesn't depend on very specific libraries will ensure that the game runs on past and future versions of Ubuntu, not just what's out at the moment.

Anyway, I'd like the game to run on just about any distro, but I appreciate that you're bringing it to Linux at all! Awesome! I can't wait to play it, even if it means waiting till my vacation's over and I have access to a Windows machine again.  :sick:
Title: Re: Linux Betas
Post by: smeagle on December 26, 2012, 23:42:01
I would think that steam will see that Knytt Underground is on the PS3 store, and quickly add it to their own. If Nifflas/fastspring/whoever published or does the communication with steam makes it clear that there is a linux version in beta, there is a good chance that it will be added to the linux catalog.
At the moment, steam is only "supported" (ofc it can be made to run with differing levels of success on other distros) on ubuntu. As such, if steam adds it to the game library, many of the casual linux users of ubuntu, who would also have steam installed, would be attracted by it.
Has anyone tried using wine to run it? Occasionally wine can almost perfectly emulate programs (see trackmania, ableton live etc).
Ps. I played through the demo on my winpc, and it is the most ambient and interesting game I have played since WADF. The atmosphere is spot on, Nifflas, you have created a masterpiece  X-P.

Edit:
I installed Mint 14, and it runs flawlessly. When in fullscreen, it runs at ~30 fps, but this is due to the bad integrated graphics on my linux computer. When in windowed, it runs at fullspeed (60 fps). Once again, great work Nifflas, the game plays and looks amazing!
Title: Re: Linux Betas
Post by: vrong on December 27, 2012, 09:40:34
Trying the beta with Ubuntu 12.04 x86_64 on Core 2 Duo and Nvidia 320M with the Nvidia drivers.

When running without PulseAudio (only ALSA) the terminal fills with

Code: [Select]
An internal OpenAL call failed in audio.h (296) : AL_INVALID_OPERATION, the specified operation is not allowed in the current state
and segfaults on exit, but otherwise runs fine.

TwinView with two monitors, no problems there. The frame rate was at 60, but it seems like it dropped in waterfall areas.
Title: Re: Linux Betas
Post by: Tak on December 27, 2012, 20:53:21
64bit beta runs beautifully here.
Ubuntu 12.10 x86_64, Nvidia GT 650M with the 304.43 driver at 2880x1800

Console output:
Code: [Select]
Audio initialized: 1.1 ALSOFT 1.14, OpenAL Soft, OpenAL Community
Framerate: 47.3575
Setting image file to: ./World/Sprites.dat
Loading ./Game.ini (Game.ini)
Loading ./World/World.ini (World.ini)
Loading ./World/Objects/Objects.ini (Objects.ini)
Loading ./Settings/Settings - Chowdren Linux.ini (Settings.ini)
Loading ./Data/Default Settings/Chowdren Linux.ini (Default Settings Ini)
Loading ./Settings/Nifflas - Default World, Achievements.ini (Achievements Savedata)
INI load failed (./Settings/Nifflas - Default World, Achievements.ini) with code -1
Loading ./World/Achievements/Achievements.ini (Achievements.ini)
Loading ./Data/Keyboard/Chowdren Linux.ini (Keyboard Ini)
Loading ./World/Creatures.ini (Creatures.ini)
Loading ./World/Characters/Characters.ini (Characters.ini)
Loading ./World/Dialog/Dialog.ini (Dialog Ini)
Loading ./World/Dialog/Chidi.ini (Dialog Ini)
Loading ./World/Dialog/Christina.ini (Dialog Ini)
Loading ./World/Dialog/Semiaquatics.ini (Dialog Ini)
Loading ./World/Dialog/Susanna's Gems.ini (Dialog Ini)
Loading ./World/Dialog/Time Keeper.ini (Dialog Ini)
Loading ./World/Dialog/Tova.ini (Dialog Ini)
Loading ./World/Dialog/Demo.ini (Dialog Ini)
Loading ./World/Dialog/Fairy Spring.ini (Dialog Ini)
Loading ./World/Dialog/Johann.ini (Dialog Ini)
Loading ./World/Dialog/Juni and The Puzzle Piece.ini (Dialog Ini)
Loading ./World/Dialog/Lauritz.ini (Dialog Ini)
Loading ./World/Dialog/Menu.ini (Dialog Ini)
Loading ./World/Dialog/Mi's Family.ini (Dialog Ini)
Loading ./World/Dialog/Red Intro And Ending.ini (Dialog Ini)
Loading ./World/Music/Music.ini (Music.ini)
Loading ./World/Sounds/Sounds.ini (Sounds.ini)
Loading ./World/Ambiance/Ambiance.ini (Ambiance.ini)
Event update took 1.22635
Loading ./World/Cache.ini (Cache.ini)
Loading ./World/Default Saves/Return Menu.ini (Savedata)
Loading ./World/Items/Inventory (Red).ini (Inventory ini)
Framerate: 59.6552
Event update took 0.005167
Draw took 0.006968
Framerate: 59.6659
Event update took 0.002125
Draw took 0.009252
Framerate: 59.7729
Event update took 0.006209
Draw took 0.006301
Framerate: 59.9197
Event update took 0.004715
Draw took 0.013319
Loading ./Settings/Nifflas - Default World, Red.ini (Minimap Savedata)
Framerate: 59.6125
Event update took 0.006481
Draw took 0.023116
Loading ./Settings/Nifflas - Default World, Red.ini (Savedata)
Loading ./World/Items/Inventory (Red).ini (Inventory ini)
New Music Group: Sponge Lapwing
Play External on 9 with emitter 1.54139e-315 type Music
Framerate: 59.7586
Event update took 0.005604
Draw took 0.007739
Framerate: 59.78
Event update took 0.004684
Draw took 0.005035
Play External on 10 with emitter 1.64304e-315 type Music
Framerate: 43.1928
Event update took 0.006563
Draw took 0.022482
Framerate: 28.4843
Event update took 0.00647
Draw took 0.04907
Play External on 11 with emitter 1.81624e-315 type Music
Framerate: 38.5832
Event update took 0.005671
Draw took 0.071934
Framerate: 20.938
Event update took 0.003561
Draw took 0.102056
Play External on 11 with emitter 1.63351e-315 type Music
Framerate: 55.3955
Event update took 0.005995
Draw took 0.056267
Framerate: 59.5274
Event update took 0.004557
Draw took 0.022655
Could not load ./World/Masks/Growth 0.png
Could not load ./World/Masks/Rocky 1.png
Framerate: 31.739
Event update took 0.004428
Draw took 0.063864
Framerate: 49.9825
Event update took 0.004836
Draw took 0.075376
Framerate: 50.6303
Event update took 0.004633
Draw took 0.080444
Framerate: 37.7686
Event update took 0.006102
Draw took 0.078417
Framerate: 18.5052
Event update took 0.006903
Draw took 0.071465
Could not load ./World/Masks/Growth 0.png
Framerate: 25.7951
Event update took 0.004844
Draw took 0.11181
Title: Re: Linux Betas
Post by: Mathias on December 28, 2012, 04:58:12
I suspect the audio issues are due to the way I compiled OpenAL-Soft. If you are having audio issues, please provide the audio backend you use (PulseAudio, ALSA, OSS, etc.) along with your bug report. Thanks!
Title: Re: Linux Betas
Post by: Hyeron on December 28, 2012, 17:24:42
x64 build works beautifully on Arch x64 after renaming libopenal.so.1 (very common problem, very common solution).

Have a nice day and thanks for the game. :)
Title: Re: Linux Betas
Post by: pfh.chaos on December 30, 2012, 13:13:16
Gentoo Linux 64 bit
Radeon HD 6400M/7400M Series
fglrx driver
pulseaudio

runs great
Title: Re: Linux Betas
Post by: AA on January 01, 2013, 13:05:19
Just tested the demo and it seems to work perfectly, just like in Wine (maybe loads a little bit faster), sound, effects and everything.

Mageia 3 (Beta) 64-bit
PulseAudio 3.0.0
Intel graphics (Sandy Bridge I think; my laptop has nybrid graphics but only the discrete card works) with latest drivers
Title: Re: Linux Betas
Post by: HomeRow on January 01, 2013, 20:47:50
Ran the Beta 1 demo on Ubuntu 12.04.1 64-Bit with Nvidia proprietary drivers (Geforce 9600 GT) and everything is smooth. I did notice one instance of audio distortion (crackles and pops) which lasted a minute or so and that I wasn't able to reproduce (using PulseAudio as the backend).

Also, gamepad support? Please? :)
Title: Re: Linux Betas
Post by: Mathias on January 02, 2013, 16:06:08
x64 build works beautifully on Arch x64 after renaming libopenal.so.1 (very common problem, very common solution).

Have a nice day and thanks for the game. :)

Could you elaborate? What did you have to rename libopenal.so.1 to?
Title: Re: Linux Betas
Post by: Haploid on January 02, 2013, 19:39:18
Could you elaborate? What did you have to rename libopenal.so.1 to?
Rename it to anything, really. You could even delete it, but just in case you need it back later, rename it to libopenal.so.1.bak or something.
Title: Re: Linux Betas
Post by: Hyeron on January 04, 2013, 00:08:07
(VERY) Minor bug report: when disabling Portable mode in Game.ini, the saved data is stored under ~/.Nifflas\Knytt Underground. That should probably be ~/.Nifflas/Knytt Underground.

And indeed, libopenal.so.1 can be renamed to anything (or plain deleted, but I'd rather not, you never know :)).
Title: Re: Linux Betas
Post by: Nifflas on January 04, 2013, 01:11:48
Yeah, that will be sorted out in the next update which should be released super soon. I'll also default to non-portable mode on OS X and Linux instead of mode to make it easier for users to update the game without having to transfer savedata between versions (Well, obviously the data will have to be transfered from the initial release to this new one, but it'll prevent it to be a problem after this update).
Title: Re: Linux Betas
Post by: ikn on January 04, 2013, 21:38:35
Runs almost perfectly smoothly on my integrated Intel graphics here; sound's fine once I get it to use the system libopenal as detailed above.  And it's fun, which is always good.

You might want to go by the freedesktop spec (http://www.freedesktop.org/wiki/Specifications/basedir-spec) for the save data.  A desktop entry (http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec) would be nice too.
Title: Re: Linux Betas
Post by: ikn on January 05, 2013, 17:18:08
Oh, I forgot a couple of things:

In fullscreen mode, my panel (Xfce Panel (4.10.0)) shows up above the game window.  This is using Compiz 0.8.8 on 64-bit Arch Linux.

And unrelated, but since I only registered to post here: I got sent my forum password in a plaintext email when I registered - not a great idea.
Title: Re: Linux Betas
Post by: Nifflas on January 05, 2013, 19:23:05
Yeah, seems that SMF does that with passwords. I agree it's bad practice, maybe we can modify SMF to not do this.
Title: Re: Linux Betas
Post by: LPChip on January 05, 2013, 20:27:23
Yeah, seems that SMF does that with passwords. I agree it's bad practice, maybe we can modify SMF to not do this.

That'll be really hard. But its very common practice on forumsoftware and thus far there haven't been much (if at all) incidents with this. You register your account and its being sent to your email. If you're really suspicious, just change your password as soon as you get that mail and you're done. The passwords are encrypted on the server so its secure enough. I don't see a reason to change this, honestly.
Title: Re: Linux Betas
Post by: AA on January 05, 2013, 21:54:37
One question about joypad support.

I launched the demo with strace and saw that the game detects joypads (/dev/js*). Does this mean joypad support is there but doesn't work? Or is it just incomplete?
Title: Re: Linux Betas
Post by: Nifflas on January 05, 2013, 23:55:38
Yeah, seems that SMF does that with passwords. I agree it's bad practice, maybe we can modify SMF to not do this.

That'll be really hard. But its very common practice on forumsoftware and thus far there haven't been much (if at all) incidents with this. You register your account and its being sent to your email. If you're really suspicious, just change your password as soon as you get that mail and you're done. The passwords are encrypted on the server so its secure enough. I don't see a reason to change this, honestly.
I see a problem, it's just bad practice to ever show passwords as a non-hash. What if someone else is looking at the computer screen while you're reading the mail? What if somebody steals the computer?

I can't imagine this being hard to change (probably just modifying a single php file, or maybe even just a language file), but right now I unfortunately need to focus on Knytt Underground and the coming press push before I look into this. Some hard work is ahead of me, but remind me after and I'll see if I can fix it.
Title: Re: Linux Betas
Post by: Miss Paula on January 06, 2013, 03:30:24
that issue should be solved now.
back to linux beta issues! \o/
Title: Re: Linux Betas
Post by: aredhel on January 08, 2013, 06:23:54
I tried the linux 64 demo Beta 1.
os: debian wheezy
libc: eglibc 2.13

It complains about needing glibc 2.14 and 2.15.  A more detailed dump from ldd fallows.

Code: [Select]
$ ldd --data-relocs --function-relocs bin/Knytt\ Underground
bin/Knytt Underground: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by bin/Knytt Underground)
bin/Knytt Underground: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /home/eric/mess/Knytt Underground/bin/../lib/libopenal.so.1)
bin/Knytt Underground: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /home/eric/mess/Knytt Underground/bin/../lib/libpython2.7.so.1.0)
bin/Knytt Underground: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.15' not found (required by /home/eric/mess/Knytt Underground/bin/../lib/libpython2.7.so.1.0)
bin/Knytt Underground: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /home/eric/mess/Knytt Underground/bin/../lib/libvorbisfile.so.3)
bin/Knytt Underground: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /home/eric/mess/Knytt Underground/bin/../lib/libpng12.so.0)
bin/Knytt Underground: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.15' not found (required by /home/eric/mess/Knytt Underground/bin/../lib/libvorbis.so.0)
bin/Knytt Underground: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /home/eric/mess/Knytt Underground/bin/../lib/libvorbis.so.0)
bin/Knytt Underground: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /home/eric/mess/Knytt Underground/bin/../lib/libogg.so.0)
        linux-vdso.so.1 =>  (0x00007fff69f5d000)
        libglfw.so.2 => /home/eric/mess/Knytt Underground/bin/../lib/libglfw.so.2 (0x00007fa303945000)
        libGL.so.1 => /usr/lib/x86_64-linux-gnu/libGL.so.1 (0x00007fa3036c9000)
        libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fa303429000)
        libopenal.so.1 => /home/eric/mess/Knytt Underground/bin/../lib/libopenal.so.1 (0x00007fa3031d6000)
        libpython2.7.so.1.0 => /home/eric/mess/Knytt Underground/bin/../lib/libpython2.7.so.1.0 (0x00007fa302cd8000)
        libvorbisfile.so.3 => /home/eric/mess/Knytt Underground/bin/../lib/libvorbisfile.so.3 (0x00007fa302acf000)
        libpng12.so.0 => /home/eric/mess/Knytt Underground/bin/../lib/libpng12.so.0 (0x00007fa3028a9000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fa3025a2000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa30231f000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fa302109000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa301d7f000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa301b62000)
        libXrandr.so.2 => /usr/lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007fa30195a000)
        libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fa30161e000)
        libglapi.so.0 => /usr/lib/x86_64-linux-gnu/libglapi.so.0 (0x00007fa3013f8000)
        libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fa3011e5000)
        libXdamage.so.1 => /usr/lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007fa300fe3000)
        libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007fa300ddc000)
        libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007fa300bdb000)
        libxcb-glx.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0 (0x00007fa3009c3000)
        libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fa3007a2000)
        libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007fa30059c000)
        libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007fa300390000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa30018b000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fa2fff74000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fa2ffd6c000)
        libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007fa2ffb68000)
        libvorbis.so.0 => /home/eric/mess/Knytt Underground/bin/../lib/libvorbis.so.0 (0x00007fa2ff93b000)
        libogg.so.0 => /home/eric/mess/Knytt Underground/bin/../lib/libogg.so.0 (0x00007fa2ff733000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fa303b58000)
        libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007fa2ff52a000)
        libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fa2ff327000)
        libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fa2ff121000)
symbol memcpy, version GLIBC_2.14 not defined in file libc.so.6 with link time reference        (/home/eric/mess/Knytt Underground/bin/../lib/libogg.so.0)
symbol memcpy, version GLIBC_2.14 not defined in file libc.so.6 with link time reference        (/home/eric/mess/Knytt Underground/bin/../lib/libvorbis.so.0)
symbol __acosf_finite, version GLIBC_2.15 not defined in file libm.so.6 with link time reference        (/home/eric/mess/Knytt Underground/bin/../lib/libvorbis.so.0)
symbol __exp_finite, version GLIBC_2.15 not defined in file libm.so.6 with link time reference  (/home/eric/mess/Knytt Underground/bin/../lib/libvorbis.so.0)
symbol __pow_finite, version GLIBC_2.15 not defined in file libm.so.6 with link time reference  (/home/eric/mess/Knytt Underground/bin/../lib/libvorbis.so.0)
symbol __log_finite, version GLIBC_2.15 not defined in file libm.so.6 with link time reference  (/home/eric/mess/Knytt Underground/bin/../lib/libvorbis.so.0)
symbol memcpy, version GLIBC_2.14 not defined in file libc.so.6 with link time reference        (/home/eric/mess/Knytt Underground/bin/../lib/libpng12.so.0)
symbol memcpy, version GLIBC_2.14 not defined in file libc.so.6 with link time reference        (/home/eric/mess/Knytt Underground/bin/../lib/libvorbisfile.so.3)
symbol memcpy, version GLIBC_2.14 not defined in file libc.so.6 with link time reference        (/home/eric/mess/Knytt Underground/bin/../lib/libpython2.7.so.1.0)
symbol __fdelt_chk, version GLIBC_2.15 not defined in file libc.so.6 with link time reference   (/home/eric/mess/Knytt Underground/bin/../lib/libpython2.7.so.1.0)
symbol memcpy, version GLIBC_2.14 not defined in file libc.so.6 with link time reference        (/home/eric/mess/Knytt Underground/bin/../lib/libopenal.so.1)
symbol memcpy, version GLIBC_2.14 not defined in file libc.so.6 with link time reference        (bin/Knytt Underground)


This problem is discussed at http://stackoverflow.com/questions/8823267/linking-against-older-symbol-version-in-a-so-file
Title: Re: Linux Betas
Post by: Cale on February 05, 2013, 11:22:07
At first when I tried to run the game, I got:

cale@ender:~/Downloads/Knytt Underground$ ./run.sh
./bin/Knytt Underground: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.15' not found (required by /home/cale/Downloads/Knytt Underground/bin/../lib/libpython2.7.so.1.0)
./bin/Knytt Underground: /lib/i386-linux-gnu/libm.so.6: version `GLIBC_2.15' not found (required by /home/cale/Downloads/Knytt Underground/bin/../lib/libvorbis.so.0)

In an attempt to fix this, I replaced the libraries in ./lib with symlinks to the versions installed on my system:

cale@ender:~/Downloads/Knytt Underground$ cd lib/
cale@ender:~/Downloads/Knytt Underground/lib$ ln -sf /usr/lib/libpython2.7.so.1.0 .
cale@ender:~/Downloads/Knytt Underground/lib$ ln -sf /usr/lib/libvorbis.so.0 .

Running the game again, things seemed to actually run, but I noticed that there was no sound and saw lots of errors of the form:

An internal OpenAL call failed in audio.h (296) : AL_INVALID_OPERATION, the specified operation is not allowed in the current state

and reading up in the log, the first thing the game printed was:

AL lib: (EE) oss_open_playback: Could not open /dev/dsp: No such file or directory
Device open failed

So, if the trick worked once, I decided to try it again:

cale@ender:~/Downloads/Knytt Underground$ cd lib/
cale@ender:~/Downloads/Knytt Underground/lib$ ln -sf /usr/lib/libopenal.so.1 .

and then everything worked.

I do occasionally see some messages about missing files in the terminal though, in particular:

Could not load ./World/Masks/Rocky 1.png
...
Could not load ./World/Tilesets/Null Tileset.png
Could not load ./World/Masks/Null Tileset.png

(and there may be others)

Could some of the art resources be missing from the package, or is this completely harmless? I haven't noticed anything too strange in the game.
Title: Re: Linux Betas
Post by: Cale on February 05, 2013, 11:31:43
Okay, I noticed some odd behaviour.

The human artifact in chapter 1 which you reach by travelling to the right a few screens using the blue light is invisible for me. I can collect it from that place multiple times though, so I now have 9 of them in my inventory, just by walking back and forth a tiny bit on that platform. I'm pretty sure it's not supposed to work like that.

The foam shooter is similar in that regard.
Title: Re: Linux Betas
Post by: Cale on February 05, 2013, 11:39:00
Now when I return to the person who was going to trade me artifacts for the stone to access the fairies, I get this blank speech bubble:

http://i.imgur.com/hSxDtoD.png

I'm not completely sure what to do from here.

Perhaps I'll try replacing the libraries with more links to my system's versions, or perhaps a problem is being introduced by version incompatibilities in the installed libraries on my system.
Title: Re: Linux Betas
Post by: Nifflas on February 05, 2013, 15:37:31
Quote
Could some of the art resources be missing from the package, or is this completely harmless? I haven't noticed anything too strange in the game.
There's a strange Multimedia Fusion 2 reason for this behavior, but it's harmless.

The missing dialog must be because you carry more artifacts than you should be able to have at that point. I have no idea why that problem happens though, it's very odd. Maybe something Python related (which controls e.g. item collecting) doesn't behave correctly.

I wonder if this happens to more Linux users.
Title: Re: Linux Betas
Post by: Cale on February 06, 2013, 00:09:45
Okay, I found out something about the invisible items which can be collected repeatedly. When I started a new saved game for Chapter 1, I noticed that the candlesticks had become invisible and could be collected multiple times, when previously they hadn't been. I realised I had neglected to mention that I had actually substituted libpng for my system's version as well at some point along the way, and returning to using the version which came with the game made the candlesticks and the artifact behave properly. However, for some odd reason, the foam shooter is still invisible and can be collected multiple times.

I noticed that it appeared fine in the inventory though. Copying World/Items/Items In Inventory/Foam Shooter (Artifact).png to World/Items/Items In Level/Foam Shooter (Artifact).png makes the item appear in the game and function correctly! So this behaviour has something to do with certain png files that libpng apparently doesn't like and how the game handles some kind of failure to load the image. I don't see any message in the terminal about this image, and everything else on my system is perfectly okay with both versions of the image. Using the pnginfo and pngchunks tools on both versions shows almost no difference in their structure (of course, they're slightly different images, but the format is practically identical). So why the game is happy with one and not the other is confusing.

I'll keep looking into it a bit. Perhaps strace will be able to reveal something about what is happening.
Title: Re: Linux Betas
Post by: Cale on February 06, 2013, 00:50:00
Curious. It seems to have something to do with the state of my saved game. Shortly after I wrote my last message, I reloaded the game running under strace to see if there was anything that went noticeably wrong with loading the image files (after having unpacked the game files again to be sure everything was default, and reapplying my fix for libpython, libvorbis and libopenal) I ran back to the room with the foam shooter, and it was there!

I then restarted the game without strace, created a new saved game, played through. Noticed that the second gemstone (the one after the earthquake opens up the hole) was invisible too. I think I'd had that happen on my first playthrough, but wasn't as aware of this issue then. Made my way back to the foam shooter, and it was invisible again. I quit the game at that point, and just reopened it and reloaded the save that I'd made shortly before the earthquake and getting the second gemstone. The gem was visible again. I ran to the foam shooter. Visible too!

At this point, I'm thoroughly confused. :)

This calls into question my earlier testing of copying the inventory png over the level one being any kind of solution to the issue (which is a good thing, since apart from the actual colours of the pixels, the structure of those two files is identical).
Title: Re: Linux Betas
Post by: Mathias on February 06, 2013, 02:14:10
Hi Cale

Under what distro/arch are you running? Would it be possible to send me the savegame, and if possible, some instructions on how to reproduce the issue?

Thanks!
Title: Re: Linux Betas
Post by: Cale on February 06, 2013, 04:49:28
Sure, I'm on Ubuntu natty (11.04), 32 bit, and running the 32 bit version of the game of course.

I can certainly send you a copy of the saved game, though on some continued testing, I think I can cause the issue to occur somewhat randomly just by entering and leaving the room in which the Foam Shooter is, at the bottom of the well. If I climb up and down, entering and leaving that room repeatedly, the Foam Shooter appears correctly maybe about 25% of the time, and is invisible the other times (but can be collected infinitely many times when in that state).

If it is random every time I enter the room, it makes some sense why everything was behaving so mysteriously before.

I just tried moving my .Nifflas/Knytt Underground directory out of the way to start fresh, and I can make this happen with the candleholders too. Just entering and leaving the room will often be enough to make the issue occur for me, usually on the very first try. I would estimate that the top candleholder appears about 10% of the times that I reenter the room. I have seen it appear twice in a row, but it's somewhat rare that it appears at all on repeated attempts. The very first time I entered the rooms, the top candleholder was invisible, and the bottom one was visible. I don't think that means anything now though (apart from the fact that it's inconsistent).
Title: Re: Linux Betas
Post by: Cale on February 06, 2013, 04:54:49
One interesting case to note is that if I collect the item while it's invisible, leave the room, and then return, I can still collect it again.
Title: Re: Linux Betas
Post by: Cale on February 07, 2013, 08:18:29
Let me know if there's anything I can do to get you guys more information about what is happening. I'm pretty convinced by now that this occurs with at least all the collectible items in the game that I've seen (including the ones I've found in Chapter 3), and it's fairly random behaviour, each time the room is entered. Sometimes it seems hard to get an item to appear, sometimes it's harder to get it to disappear. Perhaps a race condition? I tried rebuilding libpython from the 2.7.3 source distribution, and that doesn't seem to have affected anything.
Title: Re: Linux Betas
Post by: Cale on February 09, 2013, 20:36:44
Okay, I have some mild progress on this issue.

I discovered Global Script.py and read it, noticing right off the bat the room_loaded procedure which loads the sprites for the objects.

I added some more printing to this and discovered that when the objects were invisible, sprite_item_load_image(identifier) was returning False. I apparently don't have the source code for this procedure, so I can't dig into why it would return False, but I did try making it hammer until the loading was successful like this:

    # Iterate through items and removed ones picked up, and load their images and ones not picked.
    item_list = sprite_list_identifiers('Item',True)
    for identifier in item_list:
        print ("Handling item: " + identifier)
        if savegame_string('Collected Items',str(room_x())+','+str(room_y())+' '+identifier) is not False:
            print (identifier + " already collected, deleting.")
            sprite_delete('Item',identifier)
        else:
            print (identifier + " not already collected, loading image.")
            loaded = False
            while not loaded:
              print "Attempting to load"
              loaded = sprite_item_load_image(identifier)

but that unfortunately resulted in an infinite loop the first time I ran into a case where it failed to load on the first try, so the behaviour at least seems deterministic inside of this scope.
Title: Re: Linux Betas
Post by: Nifflas on February 09, 2013, 20:47:08
Yeah, it should never be False unless the image is missing. The reason it happens is not the MMF2 code either (because it works consistently in Windows and Mac OS). Must be something very specifically related to Chowdren and Linux, and it's probably related to something that can be different on different systems (otherwise I'd expect to have heard about this from many more Linux users).

Thanks for looking into all this. Maybe Mathias can fix it.
Title: Re: Linux Betas
Post by: Cale on February 09, 2013, 21:50:50
I also just tried this:

def sprite_item_touched(identifier):
    loaded = sprite_item_load_image(identifier)
    print "sprite_item_load_image(\"" + identifier + "\") -> " + str(loaded)
    if loaded:
      # Pick up the item
      sprite_item_pickup(identifier)
 
      # Delete the room type
      map_roomtype_delete(room_x(),room_y())
 
      # Store that this item was picked up, and refresh inventory
      savegame_set_key('Collected Items',str(room_x())+','+str(room_y())+' '+identifier,"Collected")
      savegame_set_key('Inventory',identifier,savegame_value('Inventory',identifier)+1)
      inventory_refresh(True)
 
      # Store the player position so the player will start from here after death
      savegame_set_key('General','X Room',room_x())
      savegame_set_key('General','Y Room',room_y())
      savegame_set_key('General','X Position',player_x_tile())
      savegame_set_key('General','Y Position',player_y_tile())
      savegame_set_key('General','Direction',player_direction())

This at least prevents me from screwing up my saved game when I touch an invisible item.

One thing I've noticed is that if the sprite didn't load when I entered the room, this never seems to succeed in loading it, which is consistent with the infinite loop I had earlier.
Title: Re: Linux Betas
Post by: Mathias on February 10, 2013, 12:01:00
Cale, I will be creating a new runtime for Knytt Underground with GLIBC 2.13. Hopefully, that'll work on your system (check your PMs in one of the upcoming days). Thanks for all the info by the way - I'm still not quite sure what the problem could be though, but hopefully it has something to do with the GLIBC version and the redistributed libraries.
Title: Re: Linux Betas
Post by: Cale on February 12, 2013, 23:52:28
Mathias, just wanted to say thanks for working on that build for me! I can't wait to try it. :)
Title: Re: Linux Betas
Post by: Isgar on February 18, 2013, 09:37:49
Very smooth on Ubuntu 12.04 64bit with Geforce GTX 570m (mobile graphics).
Console spits messages like this out from time to time:
Could not load ./World/Masks/Growth 0.png
Could not load ./World/Tilesets/Null Tileset.png

Are the demo savegames compatible to the full version?
Title: Re: Linux Betas
Post by: AA on February 18, 2013, 14:30:42
Console spits messages like this out from time to time:
Could not load ./World/Masks/Growth 0.png
Could not load ./World/Tilesets/Null Tileset.png

That's normal, some errors with the level map, but all that means is it doesn't draw stuff that wasn't supposed to be there in the first place.

Quote
Are the demo savegames compatible to the full version?

I think only the save for Chapter 1 is compatible, since Chapter 2 is another thing entirely; I forget the name of the save files, though (maybe Red for Chapter 1 and Green for 2).
Title: Re: Linux Betas
Post by: Nifflas on February 18, 2013, 15:47:35
Quote
That's normal, some errors with the level map, but all that means is it doesn't draw stuff that wasn't supposed to be there in the first place.
It's not even an error. I don't supply a mask file when a tileset doesn't need a collision mask. Think more "Let's check if this file exists. Oh, it doesn't. Let's not draw the collision mask at all then." As for the Null tileset, it has to do with how MMF2 works. It won't let me unload a tileset (there's no unload action), so instead I'm forced to tell it to load one that doesn't exist - it has the same results.

Point is, there's no error at all.  Think of it as checking if a file exists, not "Error: Failed to load something that should have existed", it's just the text that's a bit misleading.

As for savegames, they're fully compatible. You can continue from the demo save in the full version, and if you use the demo and have a full version savegame, the data will stay intact (but you can not access chapter 2 or 3).
Title: Re: Linux Betas
Post by: Isgar on February 18, 2013, 20:26:32
Quote
As for savegames, they're fully compatible.
Great! Just purchased.

For those where the game runs flawlessly, is the game complete or is there anything missing from the actual release?
Title: Re: Linux Betas
Post by: Nifflas on February 18, 2013, 20:35:23
Content-wise it's identical to the mac/windows versions. Savegames can be copied between the versions.
Title: Re: Linux Betas
Post by: deaduncledave on March 02, 2013, 19:58:51
Xubuntu 12.04 x64, works just fine on a Nvidia Quadro NVS 295. (Xubuntu is the XFCE wm with some basic Gnome support.)
Title: Re: Linux Betas
Post by: slumki on April 11, 2013, 19:22:34
Why isn't Knytt Underground for Linux avaliable at The Spring Sun Bundle from Indie Royale? It isn't even avaliable at Desura! :(
Can I obtain a Linux copy of the game if the purchase the bundle? The demo works fine for me.
Title: Re: Linux Betas
Post by: Nifflas on April 11, 2013, 21:33:25
I'll look into this.
Title: Re: Linux Betas
Post by: slumki on April 13, 2013, 17:39:40
Thank you.
Anyways, this isn't so important, since I can run the Windows version with wine, and it works flawlessly!
Title: Re: Linux Betas
Post by: dmo2118 on April 18, 2013, 07:04:43
(This is with the Linux 64-bit Beta 3 Demo, not the full version.)
CPU: "Intel(R) Pentium(R) 4 CPU 3.00GHz" (Dual core, family 15, model 6)
RAM: 1 GB DDR2, which is never enough.
Video: NVIDIA Quadro NVS 285 (This is garbage. It's like a GeForce 6200.)
Video drivers: nouveau/Gallium 0.4 on NV44/OpenGL 2.1 Mesa 9.0.3/GLSL 1.20
Audio: Advanced Micro Devices [AMD] nee ATI SBx00 Azalia (Intel HDA)
OS: Ubuntu 12.10 64-bit running xubuntu-desktop.
X.Org version: 1.13.0

Everything is in slow motion. When I shrink the window to postage stamp size, it's less slow. The game usually runs at ~20 FPS with a big window, and ~40 FPS in a tiny window. Otherwise, things seem to work OK.

Console dump is mostly like this:
Quote
Event update took 0.006057
Draw took 0.036458
Framerate: 29.649
Event update took 0.005426
Draw took 0.029369
Framerate: 28.3728

I tried this with the NVIDIA proprietary drivers, and the game was practically unplayable with strange stop-and-go behavior - but with those drivers I get it with other OpenGL software, too. There's probably no need to worry about that.

Luckily I'm not SOL - I've got a perfectly nice dual Xeon workstation running Windows, and that handles Knytt Underground just fine. If the game simply will never run properly on my machine given its modest specs, that OK.
Title: Re: Linux Betas
Post by: aredhel on June 14, 2013, 07:37:42
I just upgraded my debian amd64 wheezy install with the 2.17 libc from jessie and Knytt Underground now runs.
Title: Re: Linux Betas
Post by: Cale on September 06, 2013, 01:56:51
I updated to Linux Mint 15 with Cinnamon, 64 bit, and all the weird problems I was having before are gone.
Title: Re: Linux Betas
Post by: Nifflas on September 07, 2013, 13:20:02
Great to know!