Alternate minimal Panda3D version


I tried to assemble a panda3d 1.9 windows version without

  1. GPL stuff
  2. Patented stuff (mp3, FFmpeg/MPEG, …)
  3. Licensed SDKs (FMOD, Maya, …)
  4. Unnecessary bloat (samples, include headers, plugins which seem to be all for maya things anyway, …)

… mainly because there is no .zip release yet and I don’t know what pdeploy -s actually contains (it probably ships with the GPL stuff so it might not be safe to actually distribute I would assume?).

So while doing this, I discovered this is not an entirely trivial process:

rm -r "$GAMENAME/panda-win/samples"
rm -r "$GAMENAME/panda-win/lib"
rm -- "./$GAMENAME/panda-win/bin/"*maya*.exe
rm -f "$GAMENAME/panda-win/bin/"lib*maya*
rm -f "$GAMENAME/panda-win/bin/"fmod*
rm -f "$GAMENAME/panda-win/bin/"*fmod_audio*
rm -r "$GAMENAME/panda-win/include/"
rm -r "$GAMENAME/panda-win/models/"
rm -r "$GAMENAME/panda-win/NSIS/"
rm -r "$GAMENAME/panda-win/python/Lib/test/"
rm "$GAMENAME/panda-win/bin/"av*.dll
rm "$GAMENAME/panda-win/bin/"cg*
rm "$GAMENAME/panda-win/bin/"*ffmpeg*
rm "$GAMENAME/panda-win/bin/"ff*
rm "$GAMENAME/panda-win/bin/"swscale*
rm "$GAMENAME/panda-win/plugins/"*

(with $GAMENAME/panda-win being the path to the panda3d windows build)

So this leads me to the question:

Since I’m doing this now, wouldn’t it make sense to store this somewhere and officially offer such a slimmed down .zip’ed thing? (e.g. by providing some official script to do this, which I could help write) Or alternatively, prepare and offer an alternate runtime installer that ships without all this stuff I’m removing (GPL’ed, maya, ffmpeg, … things) so people will have less work removing things on their own, afterwards.

You don’t have to do these removal steps manually, as the 1.9.0 SDK installer actually allows you to tick off these components - perhaps you clicked through that page without noticing it.

Regardless, though, the SDK is not meant for redistribution. It is meant for development. It is a slow, unoptimized build of Panda full of docstrings, error checks and debugging tools that should not be used in production.

This is why we have the runtime distribution, hosted on and used by pdeploy and the Panda3D Runtime. It is a very fast and slim build of Panda3D, free of development tools and documentation, and it clearly separates the various third-party packages from each other.

The core ‘panda3d’ runtime distribution most certainly does not contain any GPL or similarly restrictively licensed material. It does contain the NVIDIA Cg Runtime, however. We have not managed to separate this into a runtime-loaded plug-in yet.

You can always make your own build of Panda using makepanda, of course, in which case you can omit whatever you want. Building Panda is easy - instructions are on GitHub - and you can customize the build however you want. You can also instruct makepanda to make a runtime distribution build for pdeploy to use, using the --rtdist flag.