Custom Build Distribution

I tried to search the forums but I couldn’t find anything specifically useful to my situation.

I made a custom build of Panda3d that gave the numpad keys distinct and unique input vs the normal 1-0 buttons for use in a game. I made a .p3d and a standalone installer to show a friend my progress, but even when I tried to run either of them on my system with my custom build of Panda3d the numpad functionality was lost.

Very little was actually changed in the Panda source. Special cases for numpad keys were added to keyboardButton.cxx, keyboardButton.h, and winGraphicsWindow.cxx.

I’m just wondering how I would go about making packages(or rather what to package) for a distribution.

If this is addressed elsewhere that I have overlooked a simple link will do, but I could not find anything. The manual mentions custom build Panda packages, but I did not find anywhere that it actually touches back on this.

Any help will be appreciated.

I don’t know the exact answer to your problem, but I propose an opinion on that. From here:

It looks like Panda developers are discouraging that. I think you could propose the patch (in the Launchpad there is the possibility of proposing patches, so developers shouldn’t be angry by that) with your modifies (better, inheriting from their classes and overriding the modified behaviours) to the developers, so:

  • if the patch is accepted you’ll obtain what you need
  • if the patch is refused, that probably means that there exist another solution (so you’ll know the other solution)

Only if the patch is refused for some mysterious reason you should face the problem you described.

I’m really just looking for a short term fix so I can show my progress to a few friends without having them install my custom build Panda3d and run via the source. If they devs want to add in numpad functionality that would be great…

I don’t see why unique numpad input was left out. Just because it is there doesn’t mean that people HAVE to use it, but having it there is nice.

If anyone knows a list of what I need to put into the “panda3d” package from my custom build that would be great.

The ‘panda3d’ package is built by compiling Panda3D using makepanda, using the --rtdist flag. You also need to provide a short distributor identifier using the --distributor flag. Furthermore, you need to point it to the URI where the packages will be hosted, eg --host “”.

Then upload the contents in built_distr/stage to that host, it includes the ‘panda3d’ package and anything you built with support for. Some packages may be incomplete or broken if the appropriate library was not installed at build time. Then use the packp3d.p3d you find there to build your game. This is important, it makes sure the .p3d is built against your host instead of the official one.

If you want to make it self-contained rather than having the game contact the runtime host every time, use the pdeploy.p3d in the “installer” mode with the -s option on the resulting p3d.

It could be easier to submit a patch and we could put it in the daily-updated, but there are no guarantees about its stability.

Want me to submit it as a “bug” in the launchpad?

If so would you like my changes or just a general idea? My changes were done to 1.7.0 and I haven’t looked at any further build src. The only changes that I made were to the three files mentioned above.

I have no reservations to keep using 1.7.0. I just didn’t feel like updating and making the changes again.

You can submit a bug in Launchpad with the patch attached. If you can’t make a patch, the changed files should work too.