Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Linux binaries, tarballs and readme.txt

A topic by varnull1101 created Feb 24, 2022 Views: 252 Replies: 2
Viewing posts 1 to 3

Preface

My intention with this post is not to belittle or undermine the work and effort that went into the creation, packaging and distribution of software distributed on the itch.io platform or the platform itself. My intention is to share my user experience as a linux user in order to raise some awareness to the issues myself and others face in the hopes that - they get fixed ¯\_(ツ)_/¯. Why don't I fix these issues considering itch.io is open source? I'm too dumb ¯\_(ツ)_/¯.

Linux Binaries and ReadMe.txt
I'm going to group these two together because they are practically the same issue; the software requires additional steps in order to run for which there are instructions within a readme file. Following readme instructions is not something that is uncommon or necessarily a deal breaker for the average linux user, however it is still an issue for a couple of reasons:

1. The biggest reason, which also goes for tarballs, is that there is no feedback or heads up that this is required to get software to run. The experience goes like this; The user finds a software that they wish to try, they click download, select the appropriate file ( usually labelled linux_64bit ), after it has finished downloading they click launch and - nothing happens. No error message,  no console output. The only console output you get is "App launched, getting out of the way".

1.1. Not every linux user is knowledgeable enough to figure this out and follow the readme instructions, and substitute for incorrect or vague instructions and then automate the startup process of it by creating a desktop file and placing it into "~/.local/share/applications/". Linux distributions are vast, which is also part of the problem, and the majority of distributions aim to provide a complete desktop experience which attract all types of users including people who haven't seen a readme before - and shouldn't have to when using a service like itch.

2. Defeats the purpose of using itch.io in my opinion. If I am to complete additional steps after downloading the software such as downloading dependencies, creating desktop files, and making sure the files are executable with chmod then I might as well be doing so by cloning the github repo of the project because the desktop app serves no use to me in such a situation and is as a result just an unnecessary step. Sure, it downloads the software and keeps it updated, but using the itch launcher as a download manager in addition to having to manually manage the dependencies you had to download and setup is questionable to say the least considering the alternative is the traditional method and has one less area of failure; cloning the project from GitHub.

2.1. Even after you complete the additional steps you still can't use the launcher to launch the software because different software requires different instructions such as requiring the use specific tools and flags to launch the correct file. Just as an example, Bosca Ceoil requires you launch the software using the following command after setup

/opt/adobe-air-sdk/bin/adl -nodebug <path-to-boscaceoil>/share/META-INF/AIR/application.xml <path-to-boscaceoil>/share/</path-to-boscaceoil></path-to-boscaceoil>
And FamiStudio requires you to launch the software with the mono cli tool. I mention these two software as a real world example to showcase how different software require different instructions and not to paint the software or their developers in a bad light.

An example for my "area of failure" remark in point 2, a common issue with the desktop launcher is that is does not launch without the "--no-sandbox" flag due to changes being made to the electron framework which the itch.io launcher is based on. I am not including this information to prove that using the itch launcher is bad because it can fail, even if it's not the developer's fault in this case, but to prove that if I am to do the same steps I do when compiling software from github then I might as well use github and cut out itch as the middleman as it can fail and as mentioned in point 2.1 it can't even launch the software.

Tarballs

Some software is packaged in the tarball format ("appname.tar.gz") which is a totally acceptable and viable format to package software for linux. However, when downloaded, the launcher does not extract the package resulting in nothing happening after clicking the launch button. I do not know how packages are extracted in the launcher, whether the developer must provide the instructions to the launcher and direct it to the correct file once extracted or whether it is automated by the launcher itself without the developer's input but considering tarballs are basically the linux equivalent of zip files and require only the "tar xfv <file_name>" command to extract them, and the launcher has no issue extracting zip files I am surprised that this is an issue at all. I apologize if I'm being ignorant here, but this really seems like a simple fix that should have been implemented ages ago.

A positive note on tarball packaged software; once extracted with "tar xvf <file_name>" you can then launch it from the launcher like you normally would with any other software. Tested with Pixelorama.

Conclusion / TLDR;

Some linux software packages do not launch because they are either a tarball and need to be extracted with "tar xvf <file_name>" first or the software requires the user to install dependencies and or use a specific command to launch the software which makes the itch launcher practically useless as a launcher as it cannot launch the software since it now requires a new command, both scenarios make it practically impossible for inexperienced users to run software or figure out why they don't run in the first place. I wouldn't have been so inclined to create this post if it wasn't for the fact that every other linux game or software won't launch because of this AND you get zero hints on what went wrong with no error message and the "App launched, getting out of the way" console output and there's not way to tell if a software is going to behave like this prior to downloading.

Pardon my lack of knowledge, I am not a software developer, but if possible I believe by pushing developers to package their linux binaries in the tarball format and extending the launcher to be capable of extracting tarballs none of these issues would exist.

Also excuse any unintelligible nonsense you may come across in this post, it is 5 am and I will review it later to correct my past self once I wake up at 1pm later today. If you're wondering why am I up at 5 am making a post on itch, well, I intended on playing some itch games on my linux machine at ~11pm yesterday for a bit and then go to bed, but I ran into the majority of the games and software just not working and getting zero information as to why even though I knew that some of the software works outside of itch like Pixelorama which I previously tried from the AUR. Then I spent the following hours testing and compiling the above information so that smarter people than me can fix the issues.

Moderator(+1)

It’s worth noting that the issue you describe is to be directed mostly to developers uploading their Linux builds on Itch.io, not the site or its creators themselves.

Each developer is responsible for uploading builds that any use can run with as little hassle as possible. Devs also have the option to provide instruction, for more complex projects if they want to.

I can agree that support for tar files would be a nice extra for the Itch.io app (I haven’t checked if it’s already there, so I’ll take your word for it that it isn’t). However using zip files is not really impacting the project in any way.

The experience goes like this; The user finds a software that they wish to try, they click download, select the appropriate file ( usually labelled linux_64bit ), after it has finished downloading they click launch and - nothing happens. No error message, no console output. The only console output you get is “App launched, getting out of the way”.

That’s a fair point, I’m not sure if the Itch.io app can detect a game that failed to run. However similar to above, if a game fails to run, but exits without an error, there is no way for the Itch.io app to know if that’s intended or not.

Hope that makes sense, there was a lot that you posted, so not sure if I missed anything. Most of the things I’ve mentioned are based on personal experience - most of my projects support Linux. :)

I suspect it could be even worse. I’m somewhat new to itch and have been looking for some indication that some of the games might work on my PineBook which is based on ARM running an ArchLinux OS (Manjaro). No luck so far but that’s probably due to inertia. There are a ton of Raspberry Pi’s out there and various other systems based on ARM so I suspect there is a pretty good market. I could power up my ThinkPad to run one of the x64 releases but I typically reach for my PineBook and only go to the ThinkPad if I really need the power or the app (and it’s only x32). Most should run okay on an ARM machine since so many have android releases. Consequently what’s going to happen at itch when/if developers do start releasing general linux ARM packages?