Table of Contents
WORK IN PROGRESS
About
This dummy is the base of all our installers and was build on top of loki_setup which is part of the Loki Setup tools.
The installer supports x86 and x86_64 systems but most of the helper scripts and tools do not at the moment.
How to make an installer
Get the dummy:
Get a clone of the LIFLG repository:
hg clone https://kratz00.org/hg/liflg/
Rename the upcomming installer:
Create your working copy:
cp -pr liflg/setup_dummy_gtk2/ $GameName_$Version-$Language.$Special-$Patchlevel
What do all those fields mean?
- $GameName: name of the game (multiple words have to be separated by a dot)
- $Version: version number of the game
- $Language: indicates in which language the game is, if it supports more than one language use multilanguage for this field
- $Special: normally this field can be omitted, it's used to distinguish special flavours of a game, e.g. our Serious Sam 2 installer is avaiable as a dvd, 4 cd and Software Pyramide dvd version (multiple words have to be separated by a dot)
- $Patchlevel: only used if a already released installer had to be fixed, so omit this field if it's the first release, it's 2 for the first fix, 3 for the second and so on
Example 1: mohaa_1.11beta3-dutch.warchest.edition
$GameName | $Version | $Language | $Special | $Patchlevel |
---|---|---|---|---|
mohaa | 1.11beta3 | dutch | warchest.edition |
Example 2: true.combat.elite_0.49b-english-4
$GameName | $Version | $Language | $Special | $Patchlevel |
---|---|---|---|---|
true.combat.elite | 0.49b | english | 4 |
About binaries, libaries and startscripts
If we have the possibility we try to provide binaries for x86 and x86_64 but of course this is not always possible. For example most commercial games only offer binaries for x86. There are two potential scenarios (the third is almost unlikely).
Scenario 1: x86 binaries only
Place the binary or rather the binaries in the bin directory and change the mode of the file(s) to 644 (chmod 644).
Scenario 2: x86 and x86_64 binaries
cd bin && mkdir -p Linux/{x86,x86_64} && ln -s x86_64 Linux/amd64
The binary file(s) for x86 go in the x86 directory and the one(s) for 64 bit platforms go in the x86_64 directory. Like in scenario 1, all file have to be “chmoded” to 644.
…tbd
The icon file
A splashscreen for the installer
Edit README.liflg
Three kinds of installers
1. No extra optical media needed
Get rid of some unneeded files:
rm setup.data/{cabextract,install-disc*,tmp_check.sh,unshield}
2. Extra optical media needed
Get rid of some unneeded files:
rm setup.data/{cabextract,install-disc*,tmp_check.sh,unshield}
3. Extra optical media needed which contains some proprietary compressed files
setup.xml
Packaging the installer
We use makeself for this job.
makeself.sh $GameName_$Version-$Language.$Special-$Patchlevel/ $GameName_$Version-$Language.$Special-$Patchlevel.run "$GameTitle $Version-$Type.$Special-$Patchlevel Installer" sh ./setup.sh
The fields are mostly the same as in Rename the upcomming installer chapter, the only new one is $GameTitle which should be the full name of the game. For example:
$GameName | $GameTitle |
---|---|
mohaa | Medal of Honor |
serious.sam2 | Serious Sam 2 |
Know bugs
As our dummy is based on loki_setup most bugs are the fault of this (not all of course ).
- Scripttags and cd/dvds - https://bugzilla.icculus.org/show_bug.cgi?id=3085
- 'View Readme' button does not work all the time - https://bugzilla.icculus.org/show_bug.cgi?id=3022
- SETUP_CDROM PATH - Problem with setup.sh - https://bugzilla.icculus.org/show_bug.cgi?id=3010
- Exit - Quit inconsistency - https://bugzilla.icculus.org/show_bug.cgi?id=3009
- binpath option misbehaves - http://bugzilla.icculus.org/show_bug.cgi?id=3563
Could be I missed some, so this list is not complete.