Panda3D Manual: Building a Self-Extracting EXE using packpanda
  <<prev top next>>  

Packpanda

Packpanda is a utility that lets you package up your game, your models, and the panda runtime system into a self-extracting EXE for distribution over the net.

Please finish documenting me...

packpanda --options

You have to put all your files into one main folder with the name of your game. The main file must have the same name your game have. For example you have a game named "mygame". Put your files in a folder "mygame"
/mygame/mygame.py
/mygame/file.py
/mygame/data/models/mymodel.egg
/mygame/data/sound/mysound.wav

packpanda --game mygame

The options

game

version

Adds the version number to the name of your game

rmdir

Removes a directory. example you can delete the directory /mygame/data/saves with typing --rmdir saves

rmext

Removes all files with the given extension

fast

Write me ...

bam

Convert .egg files into .bam. Use rmext to don't copy .egg files.

pyc

Make .pyc files.
Use
--pyc --rmext py
if you don't want to distribute your sources.


Moving Beyond Packpanda

Packpanda has a lot of limitations. However, packpanda is actually a front end to NSIS, the "Nullsoft Scriptable Install System." NSIS is incredibly powerful, and very flexible, but unfortunately rather complicated to use. Packpanda hides all that complexity from you, but unfortunately, in so doing, it limits your options.

If you find yourself outgrowing packpanda, one sensible thing to do would be to learn how to use NSIS directly. This is an easy transition to make. The first step is to simply watch packpanda in action. It will show you all of the commands it is executing. You can then copy those commands into a batch file. If you run that batch file, you're executing NSIS directly.

Once you have direct control over NSIS, you can begin editing the NSIS command-line options and the NSIS configuration file (packpanda.nsi). Of course, to do so, you'll need to first read the NSIS manual (available on the web). From that point forward, you have unlimited flexibility.

  <<prev top next>>