Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Game Distribution / Submission Packaging

A topic by pfirsich created May 15, 2023 Views: 195 Replies: 7
Viewing posts 1 to 7

I love using and developing for Linux, but it is no secret that distribution on Linux is a nightmare :) 

Are there any recommendations or tips on how to package our submissions?

AppImages don't work on the most recent Ubuntu 23 out of the box, because they don't support FUSE3 and I *think* flatpaks have problems with joysticks in SDL2. In the past I just developed games on Linux and everyone who played them used Windows. The old school "everything is in a tar + bash wrapper that sets LD_LIBRARY_PATH" method is an option, but I don't know if that's actually good.

Host
The old school "everything is in a tar + bash wrapper that sets LD_LIBRARY_PATH" method is an option, but I don't know if that's actually good.

As someone with experience shipping games on Linux, this is the best option in my opinion. It allows you to make some assumptions about what a user will need without preventing them from running your game with system or custom libraries if they need or desire. This is the approach I use for all of my non-Godot games and for contract work when I've been hired to port a game or support a developer in shipping Linux builds.

Fellow porter Ethan "flibitijibibo" Lee recommends the same approach, and has a bit of a breakdown of his methodology over here if that's helpful at all.

(1 edit)

Thanks a lot! That's great input. I'll try to go for that method then as well.

Do you also have a tip on what build machine to use (because of glibc)? I planned to build in a Docker container of the oldest Ubuntu LTS I can get it to build on easily. Does that seem reasonable? It seems you might have a better idea on that as well.

Host

No probs!

I figure it makes sense to look at what's current in popular distributions at at the time and balance the oldest against any new features you specifically need, but generally speaking, Debian Stable's update cycle tends to make it the most appropriate to target IMO.

I don't think it's unreasonable to tell people to `apt install libfuse3-3` or whatever, to get your appimage to work. Also note that the vast majority of Ubuntu users are on the LTS, not the (recently released) 23.04. So this will only affect a subset of users, who have never tried to use an appimage before. That said, a zip file with the shell script, binary and assets, is usually pretty acceptable to most Linux nerds :D
Submitted

When I made my submission last year, I just distributed a zip, which I think I’ll be doing again this year. However, this time I want to make sure that everything is working no matter what distro, instead of just testing one distro.

Submitted

what are you building with? If you are compiling C/C++, you can include an rpath (example: “./lib”). Your executable will look for shared objects there, and you can include all of your dependencies.

(1 edit)

Flatpaks can access joysticks but you have to allow access to devices. You can see that in Fight or Perish's flatpak manifest:
https://gitlab.com/dulsi/fop/-/blob/main/flatpak/com.identicalsoftware.finishorperish.yml

For linux games on itch, I tend to build on Debian and go with a zip and LD_LIBRARY_PATH. I also include a .itch.toml file. That ensure it can run directly from the itch app. I don't know how many people use the app but just in case.