Few commercial projects using Panda3D


Recently I was seeing Ogre’s website and I noticed many commercial projects using it. I was thinking why is not there many commercial projects using Panda3D? The engine has a strong community even commercial projects.

Created by Disney should be a strong point to Panda and to motivate these people to use it. The engine is easy to use, has great tools. I can’t understand why we don’t see good projects using it. Of course there are Pirates of Caribean, Toontown, A vampire Story etc. But we could see more projects using it like Ogre does.

I started trying to use Panda sometime ago, I recommended it to my friends but many of them gave up to give panda a try, they told me they did it because bad documentation, lack of popularity, bad performance and other issues that I don’t agree with them. Anyway I will continue to use this engine I will try to master it someday and make my own projects with it.

What do you think about it?

How many do you call “few”? I can name quite a few commercial games/applications that use Panda3D.

Lack of documentations ? It means they’re too lazy.
Bad performance ? It means they didn’t read the manual.

Now you know the failure factors. It’s not the engine.

The manual has incomplete sections, but the Ogre manual isn’t perfect too.

Wait, what does this have to do with anything?

Ogre has much more than Panda. That’s I want to say, it seems developers like all its complications and like to spend hours developing in c++ to have something working with Ogre.

That’s a good question, as I said I don’t agree with them, I decided to share it with you to know your viewpoints about this subject.

As I said above, I will continue using Panda3D anyway.

Well C++ is still the most used language in gamedev by my knowledge.

Its a fact that Ogre is more popular, I have been using Panda since version 1.6.2, I can’t say what were its features compared to OGRE before, how active was the community, when was the manual finished, what platforms were officially supported before. That all would affect its popularity. Add the fact that Panda is ‘aimed more to’ Python developers also can affect its number of users. The old site layout could affect all this a tiny bit too.

These two games using Panda3d are relatively ‘new’

What I’m saying is give it some time.

Lets just try to make a rough unbiased comparison of the engine features and see what Panda3d is lacking ( ogre3d.org/about/features ):

Same here.

  1. Panda3d’s DirectX is lacking behind,
  2. I think some engine classes are undocumented,
  3. Panda3d has less games
  1. Panda3d’s DirectX is lacking behind, again.

Panda3d (currently) has official installers for Win, Mac and few Linux distros.

  1. Panda3d doesn’t have a ’ material declaration language’
  2. Panda3d supports GLSL and Cg shaders, but not HLSL (isn’t it almost identical to Cg ?)
  3. ‘Material LOD support’

Hmm, did I miss anythin here?

‘manual bone control’ - if there is IK support…
Flexible shape animation support - the thing is Panda3d supports shapekey anim, but I don’t know if any exporter supports that.

  1. No bsp support for Panda3d
    8 ) There is a built in shadow in Panda3d 1.7.0, but some and myself have rendering artifacts, the samples with custom shader shadows seem to be broken with 1.7.0

“Scene querying”?

  1. “Compositor system, allowing for full-screen postprocessing effects to be defined easily, via scripts if desired” - now thats cool.

“Support for skyboxes, skyplanes and skydomes, very easy to use” - its just few lines of code to create a sky* effect in panda…

‘ReferenceAppLayer’, well Panda3d does have official ODE and PhysX wrappers
And not mentioned here but until finished:
10) Scene editor.

Of course just reading the feature page isn’t enough for a real comparison. OGRE has loads of ‘plugins’ for fast forest rendering, ocean rendering, unofficial wrappers for just about any sound and physics engine and lots more…

just to throw myself inbetween the engines and the guys counting their features. for me, personally, panda provides EVERYTHING i need to develop a game/visualisation/whatever while it’s dead-simple to use.

ogre sure provides those features too, but not in one single package, and not with python. so since i’m a python guy my choice is obviously panda.

long discussion short answer. if an engine provides what you need, use it. if not, don’t. it’s that easy and i see no need for any “x is better than y” comparison. that’d be like fighting over the most delicious flavor of icecream. if you compare engines based on the number of features you’ll never use… chances you’ll ever finish your game with that engine propably are slim.


Thats not the point of the topic, its why Ogre is more popular that Panda. I just listed 10 features missing in Panda3d which might affect it.

You’re really making a weak comparison, I bet I can also list 10 features which Panda has and Ogre doesn’t.


Sure, like almost everything game logic related…

Still, I actually think comparing OGRE with Panda is perfectly pointless. OGRE is a mare rendering engine. It doesn’t do anything outside of that, unless coupled with lots of other libs, so it’s no surprise it’s graphics arsenal is larger. And while there are integrators for many of those on the OGRE website/wiki, it can’t really be called a “game engine”. Panda, on the other hand, is probably as close to a middleware as you can get with OpenSource. It’s somewhere between stuff like OGRE and stuff like UDK or Unity. It does everything you need to make a game OOTB, while OGRE does only rendering.

Being a sole renderer surely helped OGRE gain momentum at the time Panda wasn’t even Open Source (or half-open source). A small, coherent, rendering-only library is far more purpose-agnostic. Obviously, Panda (or even UDK/Unity middlewares) can as well be used for non-game-related stuff, but it’s usually easier to use clean renderers for that. Coupled with clear focus and simplicity, I think it explains OGRE’s popularity. And interest from commercial developers imho came from that. Also, as a result of that popularity, there are even books covering OGRE’s usage – this certainly aids in gaining interest on the commercial games field. Just like the “meant for consoles” additional licence option. It all helps. OGRE is also very mature in terms of approach, and that helps too, because you will only attract professionals if you look professional. I’m not implying Panda doesn’t, I just rant on OGRE at the moment ;D.

That all said, I think Panda just didn’t have enough time to shine yet. It’s been OpenSource since 2008, and I think people who looked for a free (as in beer) engine and ended up eventually using, for example, OGRE actually wanted that too. Also, being so long on the scene makes OGRE more reassuring. But maybe that’s just my assumption.

I fully agree with Thomas, that it all depends on what you need. That’s what I’ve learned over my years – choose an engine based on the needs you have, not anything else. Thus you must understand your needs, or there’s large chance you’ll end up changing the engine, no matter where you start.

I also agree with the C++ assumption. You can see all over the Internet that people are somewhat afraid of Python and tend to prefer C++ whenever they can, despite the fact that even engines like UE3 also provide (custom) scripting languages, usually used write do most gameplay anyway. They think a game written in Python must be slow and that Python will limit their possibilities. In the same way, people are afraid of throwing all of their eggs into one free soft basket, as in using an OpenSource middleware like Panda. Trust given to big open source projects by commercial developers is very limited (falsely, as Panda and it’s community proves). They think such projects have large chance of being unstable or unable to provide good support. That, as I assume, is a reason why they prefer to use only a renderer, building the rest of the stuff separately, either from other small, self-contained packages or in-house.

All the above in turn forms a reason why one shouldn’t depend on opinions, rough lists of “(commercial) projects made with” or even sole feature lists. Sure, that way you get some indication of the quality of the project, but not of the project’s usability for your very purposes. Your neighbor might suggest the best screw driver to you, but it won’t do you any good, if what you need is a wrench. Also, one must understand that “popularity contest” is a self-perpetuating mechanism. When something is popular it attracts more people, even on popularity and feeling of assurance alone, making it even more popular. If you go with this, you might loose great opportunities of actually using what you really need.

Panda is for people who look for an all-in-one Python-powered game dev middleware. OGRE is for DIY people who only need a renderer, because it would take them too much time to write it themselves. That’s the way I see it.

It’s like asking someone why they use Panda over, let’s say, UDK. UDK is great, it’s a derivative of the industry standard, but I need Python, Linux/Mac support, community and/or (not my case, but surely someone else’s) source code access etc. The sole fact that UDK is better in feature comparison doesn’t mean anything to me.

Oh, and one more thing. You just CAN’T judge documentation based a peak into the API reference. The real value of documentation becomes visible only when you actually start using software. API reference is a must, but with Panda the real power sits in the manual. It describes basically everything one needs to know (the remaining 10 or 15% can by found on the forums). When you’re done with the manual and become fluent, the API reference’s lacks in method descriptions become far less relevant, because you already know which method does what. The manual taught you that, and you use API reference only to remind yourself of names or arguments. And the method names are usually self-explanatory enough. I really don’t see Panda as lacking any kind of documentation.

Just my thoughts.

to answer the initial questione:
most people use c++. that’s what they know, that’s what they use.
and c++ game developers simply out-number the python ones. which naturally leads to more commercial games written in c++ than in python.

if someone prefers to use another engine they’r perfectly free to do so. even if they miss great alternatives due to lack of investigation. you can’t force people to read manuals ( i know everyone sometimes you feel like doing it anyway).

i still don’t get what’s the point of this discussion other than wasting time and traffic.

I guess people just like analyzing things :stuck_out_tongue:. Or finding out why others have the opinions they have. Don’t see anything wrong in this, as long as it ends there.

I think coppertop’s analysis is quite nice (though Panda has been open-source for a long time, way before 2008).

In terms of popularity, the most popular thing is rarely the best. Look at Windows for the most obvious example. Or McDonald’s. Or the QWERTY keyboard. There are many thousands of examples. There needs to be a certain minimum quality and usability, of course, but beyond that things become popular for reasons other than quality.

That’s not to say that Ogre doesn’t have lots of quality, or that it’s not (for many purposes) the best choice for the job. It does, and it is. But I’m just saying that you won’t answer the question of why Ogre is more popular than Panda by comparing their relative quality, or feature lists, or documentation, or any of these.

I personally don’t make a big deal out of Ogre being a “rendering engine” vs. a “game engine”. Since there are teams that do provide all of the add-ons you would need to write a game, then it doesn’t matter if these additional systems are technically part of Ogre or not. They’re available, and that’s all that matters. (In the same sense that Linux provides everything you need in an operating system, even though the term “Linux” itself is most properly applied only to the kernel, and not to all of the software that actually makes it useful–but that really doesn’t matter in practice.)

Panda hasn’t been as aggressively promoted thoughout its open-source life as Ogre was, and I see that as probably the biggest factor to its current visibility in the development community. There are no doubt other contributing factors (such as the Python phobia, the cute-and-cuddly name, concerns about its early license, and so on).

I do see this also as a problem. Open-source projects depend on their popularity to stay alive. Panda will need to broaden its community in order to remain viable in the future.


What I’m saying is just that if engine A lacks this, this and this, then it just might affect the end choice. Of couse there are a lot more factors.
What some people failed to understand is I looked on what Panda3d doesnt have for this reason. I never said there can’t be the opposite.
The author asked to give our opinions on why OGRE is more popular and so I did.
And he did say hes sticking with Panda, this is not a ‘why should I choose Panda’ topic