How to start with Panda3D?

After a long time working on Unity engine and other proprietary software, i decided to dedicate some time to the Panda3D engine and, maybe, migrate some of my projects to it. However, i wasn’t able to find any good books, tutorials or documentation on modern Panda. Some books on PacktPub are very old.

  • Where i can find good learning material? Also, any good samples to work with?
  • Which language is more popular between Panda devs? C++ or Python?
  • What are the performance issues when working with Python code? Can a serious commercial game use it? What about a 3D multiplayer FPS game?
  • Is PBR part of Panda’s rendering workflow?
  • Any examples of integration with Bullet?
  • Any examples of integration with Raknet or enet?
  1. For me the manual is the best source. There are sample programs as well on the download page with descriptions/tutorials in the manual. Not all samples show best practices however.
  2. Python, but this is just a hunch on my part
  3. Panda3d is a c++ engine with python bindings. Disney used it for its MMOs before they retired them. There is also at least one game on steam that uses it (its name escapes me). Python code is fast enough. Bad code is often slow code and slow is slow no matter what language you use. If, by chance, you do run into a performance bottle neck with your python code you can always rewrite it as its own c module.
  4. Tobias has done PBR as a separate module: github.com/tobspr/RenderPipeline I think there is plans in the works to integrate PBR into panda but we also have it here and now
  5. The Bullet API is in the manual. I’ve used it just fine.
  6. I havent used Raknet due to the lack of python bindings but I have looked at enet. I ended up using standard python sockets with capnproto for the protocol.

Really? capnproto? Is your game a fast-paced MP game? How did work?

Capnproto is just a data serializer with structure for helping make sane protocols. Panda’s datagrams serve a similar function. My testing has been limited so far (my job has taken most of my mental energy this year) with my twitch based spaceship game, but I’ve had no performance problems.

Regarding the renderpipeline… is it a fork of Panda3D?

No, it’s a module that’s implemented on top of Panda3D.

It’s really not very difficult to create a PBR shader in Panda3D, though. Tobspr’s pipeline does much more than just PBR.

I’m using enet and Bullet in a 3D FPS and it integrates nicely, though I’m using C++ and what I have at the moment is pretty basic. I guess could use pyenet if you want to go the python route with enet. I found Pandas network API’s much nicer to be honest, you don’t have to pack and unpack your packets and such. But it lacks features that enet has.

Cheers,