Panda3D 1.9 runtime distribution - please test!

The runtime distribution for 1.9 is up. The development tools for it (packp3d et al) are available here:
runtime.panda3d.org/

Missing is support for various thirdparty packages, particularly Python libraries like PyGame. There is also a bug preventing libRocket on Mac from working, still. This will be remedied when 1.9.1 comes out.

It would be great if you guys could help test the deployment pipeline and report any problems with it.

I have a few projects that I could test… but I’m not 100% sure how to use this. I just need to grab 'packp3d1.9.p3d ’ from runtime.panda3d.org/ and run it just as I would ‘packp3d’ ? Do I need to have the 1.9 SDK installed (I have a newer buildbot version) or just the runtime (1.0.4) ?

Yeah, just grab packp3d from there and run it with panda3d.exe. You should just need the Panda3D Runtime.

So, running it like this:

packp3d1.9.p3d  -o dataroll19.p3d -d dataroll_wezu -r audio -r bullet

Exits without giving any comment.
The log says:

:AppRunner: Total Panda3D disk space used: 293 MB
:AppRunner: Configured max usage is: 2048 MB
No target app specified.  Use:
packp3d1.9.p3d -o app.p3d
:AppRunner: Normal exit.

Trying to run it like this:

panda3d packp3d1.9.p3d  -o dataroll19.p3d -d dataroll_wezu -r audio -r bullet

told me that

'panda3d ' is not recognized as an internal or external command
operable program or batch file.

So I’ve added the runtime directory to my path environment variable (the folder where panda3d.exe was installed) and after running the same command again I got:

Failed to import direct.p3d.AppRunner
Traceback (most recent call last):
  File "VFSImporter", line 148, in load_module
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\p3d\AppRunner.py",
line 33, in <module>
  File "VFSImporter", line 122, in load_module
  File "VFSImporter", line 223, in _import_extension_module
ImportError: DLL load failed: The specified procedure could not be found.
Failure on startup.

I’m running it on Windows 8, I have the 1.10 buildbot sdk from here: buildbot.panda3d.org/downloads/5 … 538643a75/

Someone else reported this too. It happens when you have the Panda3D SDK installed. We’re looking into it.

OK, the issue should be fixed now. You may need to clear your cache directory (C:\Users\youruser\AppData\Local\Panda3D) before trying to re-run packp3d.

Wonderful, and thank you for all the work that went into this! :slight_smile:

I won’t likely try this immediately–I finished a one-week game jam a few days ago, and I’m still a little weary–but I very much intend to do so soon, especially as I have something that I’ve been waiting to build (a Windows version of) with 1.9.

Sorry for the double-post, but I’m unsure of something: Looking at the download page for the development version of the runtime, I don’t see any Linux builds–would it be better for me to build it myself from the Git repository, or to use the 1.0.4 runtime?

(Come to that, am I correct in thinking that a build made using the “trunk” branch of the repository would be a 1.10 build? If so, are there any problems with using it? (Aside from the usual matter of development builds being potentially unstable, of course.))

You can use any version of the runtime you like, as long as it is 1.0.4 or more recent. 1.0.4 will do the job. The runtime doesn’t really do anything special; it just downloads a plug-in from runtime.panda3d.org, which does all the heavy lifting. So the version doesn’t matter that much.

Whatever SDK you have installed is irrelevant to the runtime. The runtime environment is completely isolated.

Excellent, and thanks. I’ll hopefully get back to you with my results in the next day or so. :slight_smile:

[edit]
I note that there isn’t a runtime deb “main” repository for Ubuntu Trusty, although there is a “dev” one. Indeed, while there is a “main” repository for Quantal, the most recent repository that provides the runtime seems to be the one for Ubuntu Precise, which is what I’ve now installed, I believe.

If I run the file directly from the command line it skips all the arguments provided, but I think that’s a windows thing. Running it via “panda3d packp3d1.9.p3d -blablabla” works.

Here’s the output, it’s my PyWeek game with some improvements (a bit harder, you only get extra time when picking up yellow powerups, you get extra score for driving fast, I’ve also enabled bloom):

Download links (use what hosting you like, I don’t like any of these, but I wanted to test both):
s000.tinyupload.com/index.php?fi … 8951489261
filedropper.com/dataroll19

Yeah, it seems the default file handler for .p3d files is panda3dw.exe, which doesn’t have any console features like command-line arguments and directs all outputs to a log-file. This is so that they can be double-clicked in Explorer.

Excellent, thanks. Great to see it works. I really like the game you made. :slight_smile:

Hmm… Has something changed regarding CG shaders? When attempting to load a CG shader, I’m getting an error that indicates that it’s not recognising a function declared in another shader file, despite my having a “#include” line for the external file.

The shaders work happily with the SDK; it’s only distributable versions–whether a P3D on my development machine or an installed version on a testing machine–that seem to encounter this issue.

To be specific, the error is as follows:

:shader(error): Failed to compile Cg shader /home/ian/.panda3d/start/Adventuring/lightingShader.cg:
(39) : error C1008: undefined variable "lighting"

This then results in the shader not being loaded, and the game crashing.

The name “lighting” refers to a method declared in “ruinFuncs.cg”. Said file is imported into “lightingShader.cg” as follows (at the top of the file, just after “//Cg”):

#include "Adventuring/ruinFuncs.cg"

By the way, there seems to be a typo in the error text produced when Panda fails to load a shader: at the moment it reads "IOError: Could not shader file: "–I’m guessing that the word “load” is missing between “not” and “shader”.

No, but I don’t think we ever supported Cg #includes in the VFS. Sounds like a useful feature to add, but are you sure this worked in packp3d1.8?

I tried out the new extract feature on Windows and see -x ext listed as an option when I use

panda3d packp3d1.9.p3d -h

but using -x results in “getopt.GetoptError: option -x not recognized”. So far the other options appear to work just fine though.

:AppRunner: Total Panda3D disk space used: 302 MB
:AppRunner: Configured max usage is: 2048 MB
Traceback (most recent call last):
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\showbase\Messenger.
py", line 354, in __taskChainDispatch
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\showbase\Messenger.
py", line 412, in __dispatch
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\p3d\AppRunner.py",
line 757, in __startIfReady
  File "VFSImporter", line 148, in load_module
  File "/home/buildbot/slave/rtdist-linux-amd64/build/built/direct/p3d/packp3d.p
y", line 235, in <module>
  File "/home/buildbot/slave/rtdist-linux-amd64/build/built/direct/p3d/packp3d.p
y", line 114, in makePackedApp
  File "C:\thirdparty\win-python\lib\getopt.py", line 90, in getopt
    opts, args = do_shorts(opts, args[0][1:], shortopts, args[1:])
  File "C:\thirdparty\win-python\lib\getopt.py", line 190, in do_shorts
    if short_has_arg(opt, shortopts):
  File "C:\thirdparty\win-python\lib\getopt.py", line 206, in short_has_arg
    raise GetoptError('option -%s not recognized' % opt, opt)
getopt.GetoptError: option -x not recognized
:task(error): Exception occurred in PythonTask Messenger-default
Traceback (most recent call last):
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\p3d\AppRunner.py",
line 635, in run
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\task\Task.py", line
 510, in run
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\task\Task.py", line
 467, in step
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\showbase\Messenger.
py", line 354, in __taskChainDispatch
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\showbase\Messenger.
py", line 412, in __dispatch
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\p3d\AppRunner.py",
line 757, in __startIfReady
  File "VFSImporter", line 148, in load_module
  File "/home/buildbot/slave/rtdist-linux-amd64/build/built/direct/p3d/packp3d.p
y", line 235, in <module>
  File "/home/buildbot/slave/rtdist-linux-amd64/build/built/direct/p3d/packp3d.p
y", line 114, in makePackedApp
  File "C:\thirdparty\win-python\lib\getopt.py", line 90, in getopt
    opts, args = do_shorts(opts, args[0][1:], shortopts, args[1:])
  File "C:\thirdparty\win-python\lib\getopt.py", line 190, in do_shorts
    if short_has_arg(opt, shortopts):
  File "C:\thirdparty\win-python\lib\getopt.py", line 206, in short_has_arg
    raise GetoptError('option -%s not recognized' % opt, opt)
getopt.GetoptError: option -x not recognized
Failure on startup.

Dear all -

I am currently testing the packp3d with 1.9 (Win 7 x64) and I have 2 questions:

  1. xml.etree.ElementTree seems not working whereas it is normally included as part of morepy (if I correctly understand the structure in runtime.panda3d.org/morepy/cmu_ … import.xml)

    When using panda3d xxx.p3d (xxx.p3d generated with the -r morepy flag), the message is:

:task(error): Exception occurred in PythonTask Messenger-default
Traceback (most recent call last):
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\p3d\AppRunner.py",
line 635, in run
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\task\Task.py", line
 510, in run
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\task\Task.py", line
 467, in step
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\showbase\Messenger.
py", line 354, in __taskChainDispatch
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\showbase\Messenger.
py", line 412, in __dispatch
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\p3d\AppRunner.py",
line 755, in __startIfReady
  File "VFSImporter", line 148, in load_module
  File "Packing\main.py", line 1, in <module>
  File "VFSImporter", line 148, in load_module
  File "D:\2. Demomaking\Python\Demos\MyFirstDemo\Packing\
DMKDemo.py", line 74, in <module>
    from DMKProject import DMKProject
  File "VFSImporter", line 148, in load_module
  File "D:\2. Demomaking\Python\Demos\MyFirstDemo\Packing\
DMKProject.py", line 2, in <module>
    import xml.etree.ElementTree as ElemTree
ImportError: No module named xml.etree.ElementTree
Failure on startup.
  1. WX Python
    Maybe a silly question, but I am wondering why the wx modules ‘seem’ to only be defined for Linux in 1.9 and not for Windows (however it ‘seems’, according to the URL ‘https://runtime.panda3d.org/wx/cmu_1.8/win32/’ that the wx modules were defined for 1.8 for win32). In addition, my initial understanding was that wxpython modules were not included in the P3D distribution…

Many thanks! And thank you to rdb for providing the 1.9 packing system.

kyl: Ah, my mistake. I’ve just updated the packp3d1.9.p3d file, it should now recognize the option correctly.

Melan: Correct, there aren’t third-party packages (wxPython, etc) hosted yet for Windows and OS X.

I’m not sure what happened to ElementTree. It does seem to be in the morepy package. Hmm.

Honestly, no–while I seem to recall that I did manage to create semi-functional builds of this project with 1.8, I don’t recall offhand whether the shaders worked. :confused:

As to Cg #includes, from what I gather we should be setting Cg aside in favour of GLSL anyway–the main reason that I’ve left this set of shaders in Cg is that I don’t want to re-write all of them in GLSL, especially as they’re not intended to be used in the final game.

Hmm… As a workaround for the moment, might using the new “-x” option to extract “.cg” files fix the problem?

[edit]
Ah, a bit of testing seems to indicate that extracting the Cg files does circumvent the issue! (Under Linux, at least; I haven’t yet tried it under Windows.) I’ll hopefully report back with a more in-depth test soon, now that my shaders seem to be working.

@rdb: thanks.

  1. Regarding xml.etree.ElementTree
    I made a quick test with a simple main.py containing only this instruction:
import xml.etree.ElementTree

Then generation of the p3d file (using the version of today of the packp3d1.9.p3d file) : panda3d packp3d1.9.p3d -o test.p3d -d Packing -r morepy

Result is the same:

  File "VFSImporter", line 148, in load_module
  File "Packing\main.py", line 1, in <module>
ImportError: No module named xml.etree.ElementTree
Failure on startup.

Any idea?

  1. Regarding wxpython:
    Is there any plan to implement the wxpython library for the packaging in 1.9?

Thank you so much.

Hi, I’ve tried to pack the media player sample using this command:

panda3d packp3d1.9.p3d -r ffmpeg -n ogv -o mediaplayer.p3d

But, when I run mediaplayer.p3d, I can’t see the video. Am I missing something? Thank you!