How do I distribute my Linux game?

Archives Forums/Linux Discussion/How do I distribute my Linux game?

coffeedotbean(Posted 2016) [#1]
So I followed dawlanes excellent 'sticky' post about installing BMAX on Linux (Ubuntu 14.04), got it compiling and running my game with sound and everything working as intended, I now have one last hurdle to get over how do I distribute my game?

My game is all packed into a single executable file (using incbin::) so I have a number questions.

1. Should I assume Linux users have the dependencies required to run the game?

2. How do I get a user to install the dependencies, can I wrap the required files into an installer that also installs the dependencies? if so what should I use?

3. Should include a script that will download and install the dependencies? if that good Linux etiquette?

4. Should I just release the build as-is and include a text file that lists the dependencies and assume a Linux user will know how to install them?


Derron(Posted 2016) [#2]
take 4)

Each distribution is different.


Also make sure it runs on 64bit ArchLinux :-)
Also make sure to provide a 64bit binary ;-) #2.

Last annotations are based on the blames I got for distributing my game in a 32bit manner - as the dependencies "lead to complete removal of the desktop" (if done incorrect and pressing "y" to everything, yes, then this might happen).


@ script to install
You should not "parent" the user as you do not know which distro (and package-manager) they use.
So best bet is to have a readme.linux.txt containing that information (hmm, I should do this too ;-)


bye
Ron


coffeedotbean(Posted 2016) [#3]
Thank Derron - you can compile 64 in blitzmax?


Brucey(Posted 2016) [#4]
Users (not developers) having to install 32-bit libraries on their 64-bit Linux has the potential to cause issues - if the user doesn't understand any implications presented to them by the software management app - i.e. like Derron mentions, the software says to install 32-bit such-and-such, it will need uninstall the 64-bit version.

Ideally you would consider making available both 32-bit and 64-bit versions of your game, and let the user choose the one most appropriate for their system.


coffeedotbean(Posted 2016) [#5]
Thanks Brucey

So if I have this right, I currently have installed 64bit Ubuntu so the compiled game is 64bit - to get a 32bit version I need to compile the game on a 32bit Ubuntu?


dawlane(Posted 2016) [#6]
So if I have this right, I currently have installed 64bit Ubuntu so the compiled game is 64bit - to get a 32bit version I need to compile the game on a 32bit Ubuntu?
As you have the 64 bit version of Ubuntu already installed. You will find that my script has already installed what is necessary for you to build both 64 bit and 32 bit applications on a 64 bit distribution. The exception is the installation of GTK+2 as this can cause a few problems, mostly with installing theme engines.

The vanilla (the download you get in your BRL account and what you find on github) version of BlitzMax will only compile your code to as a 32 bit executable. It cannot do 64 bit builds. To get BlitzMax to compile your code to a 64 bit executable you will need to install Brucey's BlitzMax NG tool chain, but to start the ball rolling you need to have BlitzMax installed.

Note that compiling with BlitzMax NG can have it's problems. i.e what would compile quite happily with BlitzMax may not compile with BlizMax NG.

I've been toying with a script to make installing BlitzMax NG simpler. But different distributions do not fully support gtk+2 anymore or to be more precise those parts of GTK+2 that were broken off into their own development cycle. i.e. gtkhtml-3.14 isn't supported on OpenSUSE Leap 42 and gtkhtml-4+ is gtk+3. Trying to use gtkhtml-4 with gtk+2 would throw an error regarding the mixing of gtk+2 with gtk+3 symbols. And as I generally like to only post stuff that I know will work out of the box with minor issues that get picked up along the way. I'm reluctant to release anything yet.


coffeedotbean(Posted 2016) [#7]
Thanks all, solid advice - I'll get on this evening.


Brucey(Posted 2016) [#8]
gtkhtml-3.14 isn't supported


Which can be replaced with a webkitgtk-based htmlview, but unfortunately it doesn't like you to have both the 32-bit and 64-bit on at the same time (although maybe that's just the dev stuff).

I'm looking into a port/upgrade to gtk+3 :-)


dawlane(Posted 2016) [#9]
Which can be replaced with a webkitgtk-based htmlview, but unfortunately it doesn't like you to have both the 32-bit and 64-bit on at the same time (although maybe that's just the dev stuff).
Well something that may interest you...
Just have to figure out how to do the same trick with the other distributions. Then the NG install script can be completed.