Panda's capabilities

I have found this engine from DevMaster.net. It didn’t seem to explain the features very well. I want to know exactly what this engine is. So here is what I want to know. Is there a level editor? How do the shaders work(well, not well)? How well does C++ work? Are there tutorials on using it in C++? Is anyone here? Thanks for any replies if there are any.

Hi, and welcome!

There was once a level editor, but no one maintained it and no one could agree precisely what it should do anyway, so it fell by the wayside. Perhaps surprisingly, it hasn’t much been missed.

I think the shaders work well. There is always room for debate, of course.

Many people do still prefer coding in C++. (I figure these are people who have never tried coding in Python, but I am not one to judge. :slight_smile: )
The documentation here is primarily geared towards the Python developer, but most of the functionality that is available in Python is also available in C++, with a few exceptions of some of the higher-level features like Actor (you have the lower-level Character in C++), and the same documentation therefore applies to both languages.

It also helps to be willing to read the C++ code itself. The Panda3D C++ code is, IMHO, exceptionally well-documented internally, for such a large project.

There are, however, some tutorials designed specifically for the C++ programmer. They are in the manual under pages named CXX.

David

Thanks. If there is no level editor, how do you create levels? I should look at it and see if I can fix it. One of my main reasons for being here is to mod the engine to fit my needs a little. Also, another reason I am here is because there is Python. It is my favorite scripting language, I use it all the time. So I do know about Python and how cool it is. Problem is I need commercial, and commercial is C++. Also, I know how to implement C++ code in Python, so anything I add to the engine I can add to Python. Thanks!

This has been discussed occasionally on the forum; you can find old topics by searching for “level editor”. For instance, this recent thread talked about it somewhat: https://discourse.panda3d.org/viewtopic.php?t=4628

The bottom line is, I think, that a level editor implies a level structure, which tends to imply a game structure. Thus, there would be one kind of level editor for a FPS game, another kind for an RTS game, another kind for an MMO, and so on. Having one generic level editor that suits all the applications for which Panda is used would be impossible. So, most people write their own level editors for their own applications, or use modeling software like Maya or Max as a kind of level editor.

That’s not to say that it wouldn’t make sense for Panda to have a suite of different level editors. It’s just that it’s a more difficult problem than it appears at first.

There I’ll disagree with you. Panda3D itself is a fine counterexample: it was originally designed to produce Disney’s Toontown Online, a commercial MMO written almost entirely in Python, running on top of Panda. Since then, Panda has also been used to produce Disney’s Pirates of the Caribbean Online, as well as drive the new interactive theme park attraction Toy Story Mania, which recently opened up in Anaheim. There are also a handful of smaller Disney products written using Panda. All of these successful commercial products are written in Python, and run Python to this day. If they had been written in C++ instead, they would not have come out better, but would have cost four to five times the dollar amount to produce.

It is exactly this economy which is driving all of the other game studios to use some high-level language or other, Python or something else. You do hear rumors about game studios that still do all their development in C++, but we think of these guys as dinosaurs.

Of course, there is a place for C++, and that’s close to the metal, in the graphics engine itself. This is why Panda itself is written in C++, and this is why I, for example, am paid to be a C++ coder. But I’m unusual within the VR Studio: the vast majority of our programmers work strictly in Python.

David