Issue converting to .p3d

Hi to all,

This might well be a rudimentary issue, but it really is bothering me a lot.
It has been addressed here:

But I’m having difficulty setting up the proxy host, it’s user name and password. I’m on windows xp and I’m using the 1.7.2 version.

I get this error when trying to convert to .p3d using the command-line:

:AppRunner: Total Panda3D disk space used: 120 MB
:AppRunner: Configured max usage is: 2048 MB
:AppRunner: Freshening https://runtime.panda3d.org/panda3d/cmu_1.7/win32/panda3d
.cmu_1.7.win32.import.xml
:downloader: GET [ https://runtime.panda3d.org/panda3d/cmu_1.7/win32/panda3d.cmu
_1.7.win32.import.xml ]
:downloader: Self-signed certificate from runtime.panda3d.org:443
Traceback (most recent call last):
  File "C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\showba
se\Messenger.py", line 415, in __taskChainDispatch
  File "C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\showba
se\Messenger.py", line 473, in __dispatch
  File "C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\p3d\Ap
pRunner.py", line 745, in __startIfReady
  File "VFSImporter", line 153, in load_module
  File "/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/
p3d/packp3d.py", line 219, in <module>
  File "/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/
p3d/packp3d.py", line 199, in makePackedApp
  File "/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/
p3d/Packager.py", line 3006, in do_require
  File "/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/
p3d/Packager.py", line 3032, in requirePackagesNamed
  File "/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/
p3d/Packager.py", line 2748, in findPackage
  File "/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/
p3d/Packager.py", line 2855, in __findPackageOnHost
  File "C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\direct
notify\Notifier.py", line 132, in error
StandardError: Couldn't download import file.
:task(error): Exception occurred in PythonTask Messenger-default
Traceback (most recent call last):
  File "C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\p3d\Ap
pRunner.py", line 636, in run
  File "C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\task\T
ask.py", line 502, in run
  File "C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\task\T
ask.py", line 460, in step
  File "C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\showba
se\Messenger.py", line 415, in __taskChainDispatch
  File "C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\showba
se\Messenger.py", line 473, in __dispatch
  File "C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\p3d\Ap
pRunner.py", line 745, in __startIfReady
  File "VFSImporter", line 153, in load_module
  File "/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/
p3d/packp3d.py", line 219, in <module>
  File "/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/
p3d/packp3d.py", line 199, in makePackedApp
  File "/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/
p3d/Packager.py", line 3006, in do_require
  File "/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/
p3d/Packager.py", line 3032, in requirePackagesNamed
  File "/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/
p3d/Packager.py", line 2748, in findPackage
  File "/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/
p3d/Packager.py", line 2855, in __findPackageOnHost
  File "C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\direct
notify\Notifier.py", line 132, in error
StandardError: Couldn't download import file.
Failure on startup.

How can the issue be circumvented? I’m sorry for this really basic question, but given that the point is to eventually have a .p3d file it really is important to me!

Thank you.

UPDATE:

I just thought that I’d show the command I’m running from the command line if that’ll help:

C:\Program Files\Panda3D>packp3d -o myapp.p3d -d C:\Panda3D-1.7.2\Game\src

Do you really need p3d file? In my opinion it needed only if you plan to place your program on the web page.

.p3d files are also useful for standalone programs, for instance if you wish to distribute a program via pdeploy, or simply give it to a friend who has a copy of the Panda3D runtime to try out.

Does the issue only occur for 1.7 or also for 1.8? 1.7 is quite a bit outdated.

Ah, I just noticed the error:

:downloader: Self-signed certificate from runtime.panda3d.org:443

It’s curious why it thinks that the certificate at runtime.panda3d.org/ is self-signed. When you go to that address in the browser, does it say that the SSL certificate is valid?

Which version of the Panda3D Runtime do you have? (This is different from your SDK version.) The latest version of the Runtime is 1.0.4.

In really I just don’t like p3d runtime :slight_smile: I understand that it’s tendency, but do not like when some software silently downloading something even without saying what and how much.
I most love the principle of “download - unpack - play” instead of “download - install - download else - run - wait while downloading again - see what go wrong - repeat previous steps - play” But it’s theme for another discussion :slight_smile:

But does the -s installer" combination of options to pdeploy not fix that? To the best of my knowledge, putting your p3d file through pdeploy, and giving the latter the “-s” and “installer” options produces an installer that doesn’t require an internet connection at all (aside from the downloading of the installer itself, of course).

As far as I remember when I tried to make standalone Installer it still required internet connection. Possible It was a bug or I did something wrong, it was a long time ago. And even if installer is not require Internet, my build with all needed in packed version was about 15-20mb against 60-70mb installer

Yes, pdeploy -s with “installer” basically negates most of the overhead and complexity of the Panda3D runtime system, as it disables the runtime’s update checking mechanism and instead extracts the DLLs of Panda3D straight into the installation directory.

What’s nice about the system, though, is that you can quickly get compiled binary versions of a game for multiple platforms that bundle a very small, very fast build of Panda3D, which is something that would otherwise require people to compile Panda3D from source.
(The SDK builds of Panda3D are actually significantly slower and larger than what you get with pdeploy because they have all sorts of extra debug checks that are useful during development. In fact, the bundled version of Panda3D is under 20 MB on Windows nowadays, and it’ll go down significantly in the upcoming version.)

Anyway, it’s not for everyone. Some people find it an easy system to use, and some people even use pdeploy without -s so that they can use this system to supply automatic updates. Of course, there are also limitations that may make it less suitable for people with specific needs. If it doesn’t work for your use cases, don’t use it. :slight_smile:

Hi to all,

Thank you for your responses even though the question is really really rudimentary, I mean it should be streamline, like making a file in unity or torque…

When I visit that link, it just opens with no issues; I see an index of with various directories and files.

Yes, it also persists for 1.8. Perhaps I should try building it from a different computer?..

Yes, I am using Runtime 1.0.4.0.

Yes, this is in fact the distribution model I hope to use; so that it caters to both casual players, who are just visiting the site and to more “dedicated” players, that way, it caters to everyone and removes the need for downloading anything, save the plugin and those “silent downloads”. For instance, with WebGL related libraries, the player doesn’t even need to download anything; they just visit the site and play. They don’t even need to register, just a user name and that’s it. See this as an example:

triggerrally.com/

I am really serious about doing this, and by the time I’m finished, if this error persists, I hope one of you would be willing to help make it web-distributional! With regards to how I’m going with Panda3d, it is the easiest engine I’ve seen to use; it’s weird that the hard part is turning it into a “playable” file!

It would be great if pdeploy could build “portable” version for target platform - without requiring installer and internet connection. Just unpack and play.
I can say why I don’t like installer ) In general, not Panda’s distribute system.

  1. Very often they require admin access
  2. Often they has small checkbox and if you do not notice it, then some third party software would be installed on your PC (chrome, bing, McAfee, recognizable?)
    3 they makes registry entries and often forget to remove it when uninstalled
    4 they copy files to different places in the system and also often forget to remove it
    5 My friends will not approve if I give them installer or ask them to install something just to view/test some demo.

Yeah, I understand that the installer is not the right option for some. However, despite the installer requiring admin access (hmm, I should be able to change that), if you add the -s flag, the files that are being installed are actually portable!
So you could make a portable build this way: generate an installer using pdeploy with the -s option added, then install that into a folder on your computer. Then, you can just take that folder and pack that into a .zip yourself, and give that to others; unpack and play. It won’t require a connection.

It’s a bit cumbersome though, I agree. We should probably make this an explicit “portable” mode in pdeploy, or something of the sort.

I agree with ninth 100%
Some distribution platforms (Desura) will only accept a game that is contained in one directory. For windows and mac panda can do this (even if you have to make an installer and install it to get a ‘portable’ version) on linux it’s installed ‘all over the place’ or so I’ve been told.

If I may add a feature request to the ‘portable’ option then I’d want it to use the directory where from where it was run (appRunner.p3dFilename.getDirname()) to be the ‘start’ dir.

Yes, this is what I’ve seen in some commercial Panda3D games distributed via Steam: they appeared to have simply ran the installer produced by pdeploy themselves, and distributed the resulting directory.

@wezu: this is already what happens with this approach, with regards to the start directory.

So, fine. I’ll add a “portable” mode to pdeploy. It would produce the same game directory, but it simply wouldn’t package it up into an installer, saving developers a little bit of hassle.

That’s actually a relief to read!

While for myself I rather like the installers–they feel a bit more “professional” to me–I have had complaints and requests for a simple executable or an extractable zip format. Indeed, in one small competition that I entered last year, the person who collected my entry did exactly that: installed the game, zipped up the resulting folder, and distributed the result to the judges. I was rather uncertain as to whether that was likely to actually work (it did) and whether there were elements placed elsewhere (DLLs installed to system directories, registry keys, etc.) that were important (I take it that there weren’t).

It is good to read that it’s something that might be relied upon in general! It’s good to have that option available. :slight_smile:

(In retrospect I realise that I could have asked here whether it was a viable approach. Why I didn’t I don’t know–the competition was somewhat of a crunch for me, so I may not have been at my best by that late stage! ^^; )

Sounds great, especially if we will able to make “portable” snapshot less than 20mb