Hacker News new | ask | show | jobs
by salicideblock 1623 days ago
From one of the printouts in the post, it seems that Papers Please is using a bundled and statically linked SDL.

So it would be the game developer that would have to update the version of the SDL library. The binary patching done seems like a good-enough alternative in the meantime.

I have the feeling such bundling of dependencies is fairly common when porting games for Linux.

3 comments

SDL has its own "dynapi" layer, where you can override it with your own copy of SDL even if it was statically linked: https://github.com/libsdl-org/SDL/blob/main/docs/README-dyna...
Just pray they didn't alter SDL like factorio does: https://news.ycombinator.com/item?id=27246164
Is the version statically linked recent enough to support it? Also, can’t decide if it’s genius or insane, that extra layer of dynamic linking…
According to [1] it was added (but not released) January 8th, 2014. Papers Please came out on Linux February 12, 2014 so I'd figure it's not in there unless the version of SDL was updated in a later update.

[1] https://old.reddit.com/r/linux_gaming/comments/1upn39/sdl2_a...

Edit: (what I believe to be) This freezing bug was only added 3 years ago, so it might actually have it.

At least for Steam you are recommended to link against Valve's Steam Linux Runtime which is a set of dynamic libraries including SDL.
It's common in application of certain size and compatibility expectations. Windows and Mac games will bundle their dependencies as much as possible as well. Same for large apps. Nobody wants to end to in a situation where their relatively expensive purchase doesn't work because of the version of local libs.
Does bundling dependencies imply static linking, though? Why can’t they just dynamically link to the bundled dependency?
Not really, it can be bundled either as static or dynamic.