We do often include affiliate links to earn us some pennies. See more here.

This is really great to see, and we need more of it. Amos from the game store Itch.io has written up a guide for people pushing out Linux builds of games.

Wrote a guide to distributing self-contained Linux builds — what did I miss? #gamedev https://t.co/fBgi9auLni pic.twitter.com/KdHinPVBkX

— Amos ♦ (@fasterthanlime) March 24, 2016

Here's an excerpt from the guide:

QuoteThe Linux ecosystem is composed of many different distributions, and each have their own package format. For independent developers with limited resources, it's often not practical to distribute and maintain repositories with packages for each of these distributions.

Thankfully, distributing self-contained Linux builds is possible, and this page tries to explain how.

Be sure to give the writer feedback on it on twitter, and in our comments here too. We need more great guides like this to help developers when publishing on Linux.

I've seen a number of developers confused recently on best practices, so hopefully this little bump from me will help somewhat. It surprises me the amount of developers that follow us, so this one's for you!

One of the most annoying things is developers who don't have everything the game needs with it, I hate hunting down libs (sometimes really outdated ones too!). Don't make us do that please.

Find the guide here.

Article taken from GamingOnLinux.com.
0 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly. You can also follow my personal adventures on Bluesky.
See more from me
The comments on this article are closed.
All posts need to follow our rules. For users logged in: please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Guest readers can email us for any issues.
12 comments Subscribe

vulture 25 Mar 2016
well, he could just point out xdg-app.
sobkas 25 Mar 2016
For the launder script, there are some side cases where:
SCRIPT_DIR=$(readlink -f $0 | xargs dirname)
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${SCRIPT_DIR}/lib"
cd "${SCRIPT_DIR}/bin"


$() is bash specific I think and there is absolutely nothing wrong with ``

btw. do you use
#!/bin/bash
or
#!/usr/bin/env bash
Cybolic 25 Mar 2016
[...]SCRIPT_DIR=$(readlink -f $0 | xargs dirname)"[...]
My favourite has been the following, for a number of years:
DIR="$(dirname "$(readlink -f "$0")")"
Same thing really, I just like the non-piped approach.
Cybolic 25 Mar 2016
[...]

$() is bash specific I think and there is absolutely nothing wrong with ``

btw. do you use
#!/bin/bash
or
#!/usr/bin/env bash

Very true. I prefer to just require bash instead of targeting sh in general - less surprises down the line in case I forget some incompatibility issue.

I generally use /bin/bash. No real reason other than I've never had issues with it.
Shmerl 25 Mar 2016
At the time of this writing, 32-bit processors are becoming rarer, but 32-bit operating systems are still a reality. Distributing both 32-bit and 64-bit binaries is a small effort that prevents a lot of headaches.

I'd say no. If developers are constrained they should drop 32-bit builds and only release 64-bit. Otherwise they'll have to deal with a lot of hidden issues, like the infamous large XFS partition bug. Those focused on gaming today don't use 32 bit OSes anyway, and non capable of 64-bit PC hardware doesn't exist for years already.


Last edited by Shmerl on 25 Mar 2016 at 3:07 pm UTC
aL 25 Mar 2016
they shouldnt be doing .debs anyway...
minj 25 Mar 2016
Not sure this is inside the scope of this particular guide but using XDG_* vars to store game profiles/saves/config etc should be noted somewhere
DrMcCoy 25 Mar 2016
Don't forget that something like a Raspberry Pi may not be 64bit, but could be a target audience for some games, and is a flavour (of sorts) of Linux.

But the Pi has an ARM CPU, so it's a completely different architecture anyway.


Last edited by DrMcCoy on 25 Mar 2016 at 7:14 pm UTC
MayeulC 26 Mar 2016
Don't forget to also export LC_ALL=C
It sometimes confuses engines if not set. And I second the XDG_* suggestion. I hate apps that create their own .hidden_directory right in my home directory.
tuubi 26 Mar 2016
View PC info
  • Supporter Plus
Don't forget to also export LC_ALL=C
I'd argue that this should only be done when necessary. Game developers should learn to make use of the locale settings instead of ignoring and stumbling on them.
MayeulC 26 Mar 2016
Don't forget to also export LC_ALL=C
I'd argue that this should only be done when necessary. Game developers should learn to make use of the locale settings instead of ignoring and stumbling on them.
While that's true, I still see a lot of games (particularly Unity ones) that seem to trip over this issue. XDG does are also somewhat of a locale issue, and there is a lot of games that confuse scancodes and keycodes, or more generally, that have strange defaults on non-qwerty keyboards.

So, I would say that overall, developers have a problem with internationalization (or, at least, foreign configurations), and should also do some QA outside of their country (ie. on the net, not only internally).
eddie-foss 27 Mar 2016
At the time of this writing, 32-bit processors are becoming rarer, but 32-bit operating systems are still a reality. Distributing both 32-bit and 64-bit binaries is a small effort that prevents a lot of headaches.

I'd say no. If developers are constrained they should drop 32-bit builds and only release 64-bit. Otherwise they'll have to deal with a lot of hidden issues, like the infamous large XFS partition bug. Those focused on gaming today don't use 32 bit OSes anyway, and non capable of 64-bit PC hardware doesn't exist for years already.

Sorry but I'm not aware of all information, I never had any bug in XFS partition since opensuse made as default, I became curious about the bug but the google gave me only old forum posts, then, I need to ask what kind of bug is?
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.