Special Features of Panda3D?

I’m a computer science student studying graphics engines, and I was wondering; what are the special features of Panda3D?

By this I mean, why would you use Panda3D and not another one. What tasks are it better at - or can do at all - then other engines cannot?

Going by other forums, I’ve noticed the following:

  1. Good documentation
  2. Easy to use
  3. Only Python-based engine
  4. Good Gui and sound
  5. Friendly community
  6. Supported by Disney

What I’m looking for is features like 3 and 4. While 6 is neat, I don’t know WHY Disney is using it, and not another one. I know “better” depends on what you’re trying to use it for, but any comments would be greatly appreciated.

We (at Disney) like it because:

  • Developing powerful applications with Panda is very fast
  • It doesn’t get in your way when you want to do something unusual
  • It runs well on a wide variety of hardware, from high-end to low-end
  • It’s mature, robust, and solid
  • It includes all of the conversion tools we need
  • We know it pretty well, having developed it originally

The last point isn’t a selling point for other people, of course. :slight_smile: But I think the first five are strong points in Panda’s favor, that many other open-source engines lack or are not nearly as good at.

David

i can second drwr. especially the rapid development.
i once had a meeting, after it was over i started to make a small prototype application discussed. it took me ~1hour to get it up running. i got contracted right away. so i could say. panda can help you getting a job :slight_smile:

I agree with Thomas and David, and here’s my points I’d like to add:

  • Contains lots of convenience code. By this I mean lots of ancillary functions that might not seem all that critical to a game engine, but save tons of time on my part. Such as task management, linear interpolation functions, keyboard mapping, FSMs and so on. I also like how render states are clearly defined in attributes that are assigned to a scene graph object, and how most of these states can be sorted. (For example, you can define 8 texture layers on a 3d model and assign the priorities so that if the game runs on hardware that can only support 4 active textures, you will still get the base effect that you want.)

  • I’d like to echo the rapid development parts. Not only do you have the advantage of running the game engine entirely from Python, where you can modify code as you go, you can also very easily create new programs. When I want to work on a new feature for my game, I find I can cut and paste a few dozen lines of code from my game into a new source file and then work on it there, without interfering with my original game code. Due to the inherit modularity of Python, it’s trivial to integrate this code back into my game. With built-in camera control and default render states, it’s like using a rapid-prototyping library such as GLUT or D3DX but without constraining yourself to that mold. (When the training wheels need to come off, you can easily override these built-in conveniences.)

  • Very active and smart community. This one was a big bonus to me, as seeing examples of how to perform various common game functions in Panda3d gave me a big head start. Panda3d is backed by not only a company that knows 3d media very well and a university involved in cutting-edge VR technology, but a lot of really creative and talented people on the internet who work on Panda3d just because it’s so cool. (Or so I would imagine!)

  • Cleanly laid out with modern concepts. Panda3d has to be the most logical game engine I’ve used so far. The C++ code is concise and easy to follow, and the engine complements common Python concepts, such as duck typing and a component system (versus deep-inheritance). There are rough edges, but they don’t annoy me as much as other engines I’ve used, and as I continue to work with Panda3d, I find I can smooth those out pretty easily.

Overall, I am quite pleased I decided to give this engine a try. When I decided to return to hobby game development, I reviewed a lot of other game engines and decided to drop the engine I am most comfortable with in favor of Panda3d for my current project.

Hope this helps!

I can sign all of the stuff above, so I won’t bother repeating those points. Here’s something specific that drew me to Panda:

  • The completeness of the (game) engine. I simply couldn’t find any other FREE engine with such an abundance of features. Certain graphics engines may be more advanced in their own niches, but Panda gives you everything from sound to networking and graphics in a single easy package.

And something else that came to mind:

  • Superb multiplatform support that’s expanding even now. Why didn’t anyone mention this before? :wink:

Thanks very much for you comments ^_^. One of the things I find hardest in comparing engines is that it’s not always obvious what a particular selection of features means. E.g. on GameDev.net, one engine may have different and/or less features then another, but get lots of positive comments. The comments took the form of “it’s good” or “it’s bad” without going into too much detail.

Edit:

Woops, I meant DevMaster.net, not GameDev.net.