Well, Macs are the easiest and most elegant, since they don't really installers, except for system components. You need to create an .app package and zip it up in an .dmg (with hdiutil) or a .zip.
For linux, we used "makeself" to create a self-extracting "installer" package. In fact, to compress the package even further, we do the unpacking in three steps:
1. Run the .sh file makeself made to uncompress a 7zip unpacker and "TribalTrouble.7zip", which contains the actual game data + JRE.
2. The .sh script extracts the 7zip file with the bundled unpacker from a makeself post-script.
3. The 7zip executable and TribalTrouble.7zip is deleted
(4. The post-script also asks for and creates a link to tribal trouble from the user's desktop)
We have to bundle 7zip, since no linux distrobution has built in support for 7zip.
- elias