If size matters

As i want my panda app to be very small i know how to keep it small but i dont know how to keep small the stuff that the end user has to download.

Im on Windows XP

I made a test p3d that only does this:

from direct.showbase.ShowBase import ShowBase    

class MyApp(ShowBase):
    def __init__(self):
app = MyApp()

Now i deleted all the files in the panda3d runtime dir(C:\Documents and Settings\hendrik\Local Settings\Application Data\Panda3D\hosts)

After i ran the p3d and checked again the size that was donwloaded i saw a nice 110 MB.

When inspecting the contents i saw there a lot of dll’s that i know i don’t want tot use.

I know panda has many ways:

  • Panda3D Manual: Distributing as a self-contained installer

-You can even build and host your own package named “panda3d” if your application requires a custom build of Panda3D for some reason, though we don’t recommend doing this unless there is a good reason to.

My question is, if i plan to build my of panda3d package, how do i know all the dependencies? Or how do i find it out.

And one more question what is this:
panda3d.cmu_1.7.win32.mf (55MB)

My goal is:
My app >10 mb
panda3d >10 mb
or as close to it as possible.

Thank you in advance.

Note that the amount of code that is actually downloaded over the wire for a typical p3d file is less than 20MB. It is downloaded from the file panda3d.cmu_1.7.win32.mf.pz, which is 17MB, then uncompressed to panda3d.cmu_1.7.win32.mf, then the dll’s are extracted from that file.

The .mf file is the original package that contained the DLL’s and still contains the Python code. It remains on disk to facilitate patches in the future, even though it is redundant with a lot of the DLL’s that are also in the same directory. So this is why you see a disk utilization of ~100MB even though only 17MB was originally downloaded.

In modern hard disks, 100MB is not a lot at all. So we haven’t worried too much about trying to minimize this utilization. Also, our hope is to expand the visibility of the Panda3D runtime to many other projects; if a user has previously run any other p3d file, he/she will have already downloaded the runtime and thus won’t need to download anything to run your p3d file.

Of course, it’s true that doesn’t help your immediate needs. If you really want to reduce the download size smaller than 17MB for Panda3D, or you don’t like the fact that it expands to 100MB on disk, then you will have to use a different installation mechanism. You can try to investigate packpanda, or you can use a third-party tool like NSIS or some other tool to package up your own version. Note, though, that whatever system you use, you will fundamentally need to provide Python + Panda3D, which comes to about 17MB compressed. If you really need to go smaller than that, you will need to do a lot of engineering.


Well thank you for clearing it David. 17mb sounds good enough for now.
Would be nice if running p3d files would show how much it downloads, like the size of the panda3d packages, or any other packages(like ode(even thou its only 0.3mb) ,openal and so on).

Im kinda the stupid man who fights the windmill. I know we have hdd’s with terabites, but thats not reason for me to waste it, i let others do it(Microsoft and Adobe are excellent at it).

One more thingy, with the standard package what python modules are supported? like time, math,os,sys, is there a place where i can see it?
Just want to know when will i need the morepy package

Here’s the list of what’s installed in the standard package:

runtime.panda3d.org/panda3d/cmu_ … import.xml

And this is morepy:

runtime.panda3d.org/morepy/cmu_1 … import.xml