I am developing a program with 1.9 and packing it into a .p3d. When I run it with panda3d I observe some weird behaviour. Is it because the 1.0.4 version of the runtime is not compatible with 1.9? I am asking because the sdk and the runtime have a different version numbering, so I do not know whether the two follow two independent paths or a given runtime is only compatible with a given sdk.
One thing occurs to me: are you using packp3d to create your p3d file, and if so, are you using the development version of packp3d? If I recall correctly (and I may be mistaken, and stand to be corrected), the non-development version will associate your p3d file with Panda 1.8, not 1.9–perhaps the issues that you’re observing result from changes between the 1.8 and 1.9 versions of Panda.
Oookkk, thanks for the replies. I think I start to understand.
Actually I downloaded the pack3d from runtime.panda3d.org, as suggested in a previous post.
I understand now that this must be linked to the specific runtime. Where could I find the
pack3d (and if available the pdeploy) for the dev version?
Meanwhile I was trying to understand more and I realized that I can build the runtime from the master sources. I would be grateful if you could clarify me some issues:
Generating the runtime one can specify a different distributor/host, where one could put an image of panda1.9 that would then be used by pack3d/pdeploy3. Is there a path to building such an image (i.e. some automated procedure) or is it built “by hand” (sort of)?
pdeploy builds an executable that contains the program packed with .p3d. Is it internally calling a version of the “panda3d” executable (the panda3d.exe on windows) or is it using some other program? I could understand that pdeploy uses a “pembed”, however I could not figure out what this pembed is or how it is built.
such an image is called the “runtime distribution”, and it can be built using the --rtdist option to makepanda.
When instructed to build an .exe, pdeploy downloads p3dembed.exe from runtime.panda3d.org. This is a program similar to panda3d.exe except that it runs whatever .p3d file has been embedded in the .exe file. pdeploy injects the contents of your .p3d file into the appropriate location within this .exe file.
This solution allows us to effectively “cross-compile” an executable for any platform.