Running Braid on Arch Linux

Had a bit of an adventure yesterday getting Braid running on my computer.

After installing it (from a Humble Bundle package) my attempt to run the game showed me this error message:

bash: ./launcher.bin.x86: cannot execute: required file not found

Not exactly the most encouraging hint. Still, I had a couple things to go on. The executables are named .x86, not .x86_64 or somesuch, so they could be 32-bit? And there's a readme file:

(README.linux)

Game prerequisites:

OpenGL 2.1

So alright let's enable 32-bit packages. From the Arch Wiki:

To enable multilib repository, uncomment the [multilib] section in /etc/pacman.conf:

/etc/pacman.conf

[multilib]
Include = /etc/pacman.d/mirrorlist

Then upgrade the system and install the desired multilib packages.

Tip: Run pacman -Sl multilib to list all packages in the multilib repository. 32-bit library package names begin with lib32-.

So I did all that. And looking at the list of multilib packages I couldn't see one called opengl, which was a bit disheartening. One that caught my eye, though, was lib32-virtualgl, which, according to Wikipedia:

VirtualGL is an open-source software package that redirects the 3D rendering commands from Unix and Linux OpenGL applications to 3D accelerator hardware in a dedicated server and sends the rendered output to a (thin) client located elsewhere on the network.[1]

And I only read as far as "3D Accelerator" before I decided I might as well install it and see what happens. I'm glad I didn't see the "network" part. Whether it's lib32-virtualgl or one of the 49 dependencies I had to install along with it, Braid started giving me useful error messages!

./launcher.bin.x86: error while loading shared libraries: libXcursor.so.1: cannot open shared object file: No such file or directory

OK, I can install lib32-libxcursor

./launcher.bin.x86: error while loading shared libraries: libXft.so.1: cannot open shared object file: No such file or directory

OK, I can install lib32-libxft

./launcher.bin.x86: error while loading shared libraries: libXinerama.so.1: cannot open shared object file: No such file or directory

OK, I can install lib32-libxinerama

glx: failed to create dri3 screen
failed to load driver: nouveau
ERROR: SDL failed to Init due to: Could not initialize UDEV
glx: failed to create dri3 screen
failed to load driver: nouveau
ERROR: SDL failed to Init due to: Could not initialize UDEV

I still get some error messages, but the game runs! :)

There's no sound though. All these error messages seem graphics-related, so I'm not sure what to do about sound. I don't mind too much with Braid, though.

Also I had to run it in windowed mode, or there was just, no video. Possibly related to these error messages. Possibly related to me using i3 window manager or some problem with the nvidia driver. I didn't mind playing in windowed mode last night, but I might mind later. :\

Alright, write-up over. I got Braid running on Arch Linux. :)