Panda 1.10 Packaging

Hi, I’m trying to make a game in Panda3D 1.10 so, I read through the docs, but it still misses some info about the packaging.
Some versions in the past, like 1.9, it had support for run in the web, and signing.
It used the p3d file, but in this newer version, it is deprecated. Is there any away to run in the web anymore? And mobile, (Android and IOS) are they supported now? How about signing, is it still possible? Is the newer version “safer” against reverse engeneering (sorry if I’m mistaken, but Disney Games that used this game engine like toontown and pirates were reverse engenered), so, does this method protect the code better against this?
Sorry for making so much questions, but this info is lacking in the docs.
Thanks for the help.

Hi, welcome to the community!

The old browser plug-in in 1.9 used NPAPI and ActiveX plug-ins, which were able to run code natively on the user’s computer. Browsers have since dropped support for these plug-ins, so Panda is no longer able to run on the web via these mechanisms.

There is now an experimental new way to run Panda on the web: via WebAssembly. You can see this in action here:
http://rdb.name/panda3d-webgl/editor.html

However, the process to build a Panda app for WebAssembly is still a little involved right now. It’s not straightforward. We’re working on improving it. You can follow the development in this thread.

The signing system was necessary in the old browser plug-ins because Python code ran directly on the user’s computer with no isolation, so we needed a system whereby developers could prove to users that their apps were genuine and not being spoofed by a malicious attacker. But because WebAssembly runs entirely sandboxed (and is safer in that regard), the signing system is no longer necessary.

It’s a similar story for Android: Panda does work on Android, but the experience of deploying a Panda app for Android still needs to be streamlined.

1 Like

Thanks. And IOS, do you know anything?

There is an iOS port under development. The latest information on it is in this thread: