There are times when I would like to install more things on a clients computer in one go.
I’d like to include a pdf manual with my game and I’d like to have a shortcut to it in the ‘start menu’ (or it’s Linux/Mac equivalent).
I’d like to include a stand-alone configuration program and also have a shortcut to it, maybe someone else will want to include a server application for an online game or an updater utility or a level editor.
I’d like to have my game in a directory structure, not one giant binary file (so that players could make mods, change models or textures easily). I’m aware of ppackage, but it scares me
With the tools that come with Panda3D (packp3d and pdeploy) I can make a standalone executable, have a directory structure and put other files as I need them (be it a pdf or another executable) - but I end up with a directory of files and all I can do with that is to zip it and distribute it with instructions and hope that players will read them, I can’t hope for a desktop icon and all that fancy stuff the installer would provide. And even worse I can’t pack all of the needed files and the end user will still need to have an internet connection to download the needed Panda3D components (and they will be hiding in some obscure folder).
I would like to have a new option for the pdeploy tool " -include " and " -include_dir" they would only make sense for the installer option:
-include “path/to/file” would pack the file on “path/to/file” and make a ‘start menu’ entry for that file (name of the entry same as the files name, without the extension for simplicity). If the file is a p3d file then it would be converted into an executable just like the ‘main’ p3d file.
-include_dir “path/to/dir” would just pack the specified directory as it is, and put it in the same directory where the game will be installed.
I suppose the same could be done using a .pdef file… somehow(?), but I’m looking around for some docs and examples with little success and I think even if it can be done it’s anything but trivial.
Isn’t this an idea worth implementing in the next version?
You could always install the game from the installer that Panda builds, add any extra files you want, and then build your own installer using NSIS (or other operating system equivalent). Not the most convenient solution, but it does work.
I can do that for windows, but can I do the same for all the other os that p3d supports?
Panda is basically just running some commands to pack your game up into an .exe installer or a .deb, app folder or whatever format the OS wants.
You can achieve what you want by creating a package using ppackage of the required files, building your .p3d (which could if you want just be a thin wrapper that invokes another module from your package) against that package, and then using pdeploy with the self-contained option.
Though adding a .pdef syntax that would allow for more customisability in pdeploy has been a suggested feature, though not a very high-priority one.
The ‘self-contained’ option only work for the ‘installer’, right?
So I still have no idea how could I pack two or more executables into one installer.
For windows I can make a installer for the main exe and a installer for the configuration exe, install both then put all the file in one directory and make a new NSIS install script - that’s madness and I still wouldn’t have a Mac or Linux version
The way I see my problems solved:
- What I said in post #1
- Custom ‘start menu’ entries (so I could run my executable with a command line option)
- The ‘standalone’ version working with the ‘-s’ option
- Make the ‘standalone’ version use its own directory the same way an installed version.
My options now are:
Make an installer without the configuration utility and tell the players to hand edit a text file if they want to change some graphic options or rebind keys (would work for PyWeek, but I can’t say that looks professional)
Distribute as a zipped directory and tell the players to make their own shortcuts if they want to. I could call it a ‘portable version’ - but it would not be, because an internet connection is still needed, after downloading the 200-300 MB the game still needs to download some extra stuff to work (this could work OK, if I was BLIZZARD )
Learn to use NSIS, make two installers to make a third one(sic!), and then tell all the non-windows users to use option #1 or #2.
If Panda3D was more popular then I’d be happy to distribute .p3d files, until then this sucks