The current situation of the Panda3D engine...

Disclaimer: This thread is not to offend anyone or undermine the hundreds or thousands of hours of work they have put into this project.

I’ve been a Panda3D user for 8 years. That’s a long of time, I’ve seen change in the engine and in the community and people and organizations come and go. I do believe it is time we had a reality check. Why? I think both newcomers as well as active developers should understand the current situation we are in so both groups will make better choice what to do from here on out.

Let’s accept one thing: Panda3D is lacking many things a modern game engine such as Unreal and Unity have. I agree, most open source engines are probably in worse state, but that doesn’t make Panda not in a bad state.
Let’s leave the disadvantage of Panda3D jobs are almost non existent and companies require a programmer to know either Unity or UDK today as a job requirement because this doesn’t depend on us and we can’t change it.
But besides that,

  1. Panda3D does not support mobile platforms which is a huge market now.
  2. Same with home consoles. It’s not like todays Playstations or Xboxes require 4 digit licenses and distributing games on discs.
  3. Panda3D still makes the user write shader code instead of creating materials in a visual shader editor and having some shaders builtin and simply enabled/disabled in code. It’s 2016, Unity or UDK users don’t need to understand the low level details and algorithms used in shaders.
  4. Panda3D does not have a scene editor. Blender or Maya to EGG can be used, but there is no live preview or live editing this way.

For the above reasons and the improved licensing and pricing of Unity or Unreal, I’m not surprised why most non-hobbyists don’t go with Panda these days. They will after all limit themselves to a smaller market, need more things done to get the same results other engines have builtin, provided they have to knowledge to do that.

Again, I don’t want to offend anyone who works so much on Panda. But lets be real here, CMU has pretty much abandoned Panda, Disney as well except David, but he mostly works on lower level things. Both CMU and a Disney employee that were working on a scene editor never got it off ground, Android support has been under works for maybe 3-4 years, a visual shader editor was agreed to be a good idea but not made, Tobias was (is) working on including modern shaders in the engine but how fast is that going? I’m not saying there aren’t reasons things aren’t going as fast as we’d hope, again. Yet I see new versions of the engine come out with features added that improve performance, change some naming conventions, ect. I check the release notes and good job on improving existing things and making things faster, but is that what we need now? Let’s get back 5 years ago, just how much is Panda3D capable of visually more today out-of-the-box than 5 years ago? Or when it comes to physics simulation, or particles?
Look, all I’m saying is maybe we should prioritize what needs done first. And if you think there’s not enough people to do this, maybe we should team up with projects like Godot instead? The ship isn’t sinking per-se, but in my opinion only because we’re desperately removing water on board with buckets.

If nothing changes I’m sorry, but less and less people are going to use Panda. We don’t like Unreal or UDK licenses but they put bread on the table and get the job done much faster and easier. Some money saved and Python just isn’t enough to sell Panda anymore, in my opinion.

Of course there are people who use Panda and find it enough for their needs, if you’re going to post something like that then you missed the point I’m trying to make with this thread.

I invite you to hang out in the chat room and talk to the devs who are working on all the things you list (except for the console part).

I wonder what exactly the point you are trying to make is. And what sort of reply you hope to get and how you think this will help anyone or improve anything. Especially after you punch people right in the face after disclaiming you have no intention to do so :open_mouth: .

Sure there are many nice to have things like graphical shader editors, deployment on consoles, a big community, a big developer team with highly paid jobs and infinite funds, Panda3D wet tshirt contests during summer, a Panda3D social foundation which teaches orphans to code shader-assembly starting at the age of 4 etc. Reality is Panda3D is a rock solid engine and does a very good job at what it is designed for. It’s developed by a small number of people who serve their needs, and the needs of the community the best they can. No one is paying the developers to spend thousands of manhours developing tools they don’t need over other features (if you have the money you can probably hire some to do so).

If nothing changes, Panda3D continues to be a great framework under slow and steady development, with a small albeit wonderful and friendly community.

If you feel the Panda3D future could benefit from improved development, git clone and polish up the mobile deployment, write toolkits and that shader editor and send a pull requests. If you feel that Panda3D needs a bigger community how about creating more eyepleasing sample applications we can ship out to attract more people?

Sobbing in the corner of the forum and injuring the feelings of developers is not going to help. Contribute to help yourself and everyone else would be a better solution. Become a developer today!

I actually think Panda has been seeing stronger and more significant growth in the past few years than during most of its development period. You make some valid points, which I will briefly address, but I disagree with your conclusions and the overarching perception that leads you to those. But I appreciate that you do bring some important issues to light.

Very true. This is something people are actively working on though. Last year we gained a WebGL port, which today runs quite well both in the browser and on all mobile platforms.
Still, weighing against that, I think it is reasonable for Panda to try not to spread its efforts too thinly. It’s better to be a good engine on a few platforms than a mediocre engine on many. So this would not be my first choice of priority.

I don’t think this is true. Not sure about Xbox, but last time I checked a PS4 licence costs thousands of dollars and they only hand out devkits to companies they partner with.
Aside from that, there’s been very little clamour in the Panda3D community about this, so I disagree about this being an important priority.

I would point out that since 1.5.0 Panda has shipped with the shader generator and the filter manager, which has allowed people to do various graphical effects without writing shaders. (It’s still receiving updates; earlier this year it received support for hardware vertex animation, and it may soon receive support for PBR out of the box.) But I would be missing the bigger issue I see in this point.

I guess the core of the matter is that Panda3D is not Unity or UDK. It probably couldn’t be if it wanted to be because Panda3D doesn’t have a giant team of paid full-time developers. Panda3D excels at what it purports to be though; a framework targeting programmers, offering a robust and mature codebase for them to develop games, simulations and engines on top of, and it remains as viable an framework as any for these purposes. Even today there are several software giants using Panda3D for simulation and prototyping.
Panda3D has a comfortable niche; while I’m certainly not trying to argue against improving Panda3D or broadening its user base, I do not see the doom you foretell.

If you want to get pretty shaders out of the box, the RenderPipeline is designed exactly for that. A lot of people get started with Panda using the RenderPipeline and get great results quickly without writing a line of shader code. I highly suggest you check it out.

Anyway, it may seem that I’m trying to side-step around the point you’re making, but I definitely do agree that Panda3D could be doing a better job at offering better shaders out of the box for people to get started with quickly. It’s an active development focus. Just recently Panda gained support for PBR materials, and all the tooling has been updated for it now as well, and now that most of the underlying stuff is here, adding the standard shaders is high on the roadmap.

This is actively being worked on. One of the relevant projects:

I think this perception reflects some communication issues on the part of the developers. Panda3D has moved forward tremendously since 1.9 release, but the recent releases have all been bugfix releases, which have not included the new features. There have also been no blog posts announcing all the awesome changes that have been made to the master repository in the meantime. So, I can appreciate that without hanging out in IRC or following the GitHub commit logs, it may seem that development is fairly stagnant.

Statistics show, however, that development has been steady if not increasing over the past couple of years:

And that’s not counting all the projects that have recently sprung up to improve Panda3D tooling, or the work that has been done on other branches to create WebGL port, and to add a Vulkan renderer to Panda.

And one only needs to look at the commit log to see the massive amount of changes that are between 1.9.2 and the latest master version to see that development is most certainly not stagnant: … 2…master

We should absolutely be doing a better job of communicating what’s happening, and what the current foci of development are.

Massively. Panda3D has moved at lighting pace in the last 5 years in terms of rendering features. The vast majority of modern OpenGL rendering techniques are supported today, whereas Panda3D was massively trailing behind 5 years ago. Have you seen RenderPipeline screenshots of late? There’s a reason the pipeline always runs on the bleeding edge of Panda3D.

Any stats to back this up? My perception is that the community is growing at the moment. We just recently passed 500 stars and 173 forks on GitHub, even though we’ve only been on GitHub for a year and a half. Another game using Panda just came out on Steam as well. And personally, I’m seeing a lot of new people gain interest and become involved with Panda3D.

I certainly don’t want to say that there aren’t ways Panda can improve to be more accessible, and we should find these ways and pursue them. One of the ways I think we can improve is to improve our tooling, to make Panda3D friendlier for artists to use, which is something Panda3D historically has been lacking in.

About Godot: Godot’s a great engine, although it has its quirks. It’s somewhat similar to Panda in its design, and I would certainly recommend it over Panda3D for 2-D games and perhaps also mobile games.
Its 3-D rendering engine is unfortunately vastly inferior to Panda3D due to targeting OpenGL ES, so it is not a way out for people who are using Panda3D (or the RenderPipeline) because of its advanced graphics capabilities. I am told they mean to address this, but Panda3D allows you to use state-of-the-art graphics today, rather than it being a promise of the future.

I absolutely agree. Might I suggest that we do this not by using colourful rhetoric and inventing scary words such as “semi-abandonware”? I fear you may otherwise risk ruffling some feathers among people who actively contribute to the engine, as well as scare off people who may otherwise have contributed. We need reasoned discourse more than anything, not FUD.

I would encourage you to contribute, even if not by developing, but then by helping to shape the development foci for Panda3D by talking to developers on IRC, communicating with users, writing blog posts and manual pages, and contributing to design proposals such as this one, which you may appreciate in particular. That would do far more good for the future of Panda3D than this thread title, I reckon. :slight_smile:

1 Like

Before getting the time to respond to all I’d just like to point out I have contributed to Panda3D before. I’ve written or updated few manual pages and basically went through all of the manual pages fixing typos and old code a year or two ago, which took a while. Not that contributing or not contributing makes my points more or less valid but I guess some people think I’m “punching developers” in the face even after all the disclaimers so I thought I’d mention this.

I’ll also admit I could probably make a better topic title.

I didn’t claim or imply otherwise. The post started with “this thread is not to offend anyone or undermine the hundreds or thousands of hours of work they have put into this project.”

Nobody disagrees with this. Nobody disagrees there’s a wonderful and friendly community and some development going on. All I’m saying is to get more people in the community in 2016 when there is more competition and way more expected from such a tool is becoming harder. This is not sobbing in the corner, this is discussing something which I believe has to be discussed.

Why do you think there aren’t people who have done that already? Since 2008 I don’t think any of the sample program assets have changed and some of them are programmer’s art from like 2003 or something. Why haven’t talented people contributed? This is a simple question.
Maybe because it’s the other way round, first you need something to be good enough before more people feel it’s worth jumping in, instead of asking people to jump in to make it good enough?
No, I’m not talking about me, I’m not a 3d modeller.

See, this is the kind of mentality I find in many open source projects. “You think it’s not good? Then make it better.”. No, saying that doesn’t help. Sure, this is an open source project and accepting contributions is normal part of it but I find with some projects every time someone asks for a feature or “complains” something is missing he’s told he should try to add it himself. In my opinion most of the time if the user could he would do it instead of asking for it, he wouldn’t need you suggesting him to do it. Being told that just gives the impression there’s nobody else among developers who can or will do it and maybe it’s time to switch to another tool.

I think adding mobile support should be a higher priority than adding PC features simply because mobile is a big and different market and I think that will attract more developers who can make the engine better, with existing devs (=faster).

If we decide what is important to be what the current community members are interested in then sure, most of what I said in this topic would be invalid.
But I’m talking about ways to get more people in the community and their interests.

I’m aware of that, but when was that, 2008? Shader generators and editors today can do a bit more now. I don’t remember any engines having a visual shader editor back then.

Sure. my whole idea is that, if possible, priorities should be rethinked. I don’t think it’s a black white situation where Panda either has to be an open source engine with limited supported platforms and graphics features and no editor or an engine with all the cutting edge features.

Well, the “doom I foretell” doesn’t mean nobody is going to use Panda. Some people would use panda for years to come even if nothing changed since today, but that would be a sad situation.

I did. Tobias has done a lot of work. If there were more people like him working on all the other features I mentioned I wouldn’t even make this thread. But I can’t remember how long ago it was when someone else like him came and made significant upgrades to the engine.


Great. Hope this projects won’t face the same faith as the old ones developed by CMU and a Disney VR employee.

Yes, but I think you’d agree that making low level OpenGL features accessible is different than having high level classes that can get something done with few function calls and if it was not for Tobias last year it would be the former situation.

Well I can’t show you stats, all I can do is give reasons why I believe that. All I can say is I notice less active members in the forum, less websites or bloggers or youtubers mentioning Panda, less people I work with actually having heard about it. That’s all.
Wasn’t the game which came out on Steam been developed years ago? Or are you not talking about Plith or Signal Ops?

The reality of community-driven open source projects is that people will work on features that they need or which interest them. rdb’s focus is, from what I’ve seen, staying at the bleeding edge of graphics technology, general housecleaning, and every now and then a big whopper like WebGL. Then there’s people like tobspr who do projects like RenderPipeline, and then move on to whatever else tickles their fancy. (Hey, tobspr, are you still around? Come back to IRC, please. I miss your screenshots, and pointing out minute details on them.) Unless somebody starts paying salaries, there’s really no incentive to work on anything else.
Nor do I really see the need. The preceding paragraph concerns itself with developers who contribute to the engine. Your arguments are about developers who use the engine. There may be some overlap, but unless a specific need arises, many will not cross the border from engine users to engine developers. Actually, I would think that if a need arises (early enough), many would rather switch engines than contribute to Panda3D.
I see no reason why they should be pandered to. There is no revenue stream that they provide, nor anything else that I can think of, for that matter. Thus, there is no point in seeing their needs as the drivers of Panda3D’s future lines of development.

The rest of your post rests on this premise and I simply think it’s not true.
I could give examples of other open source projects but there’s no need, just ask rdb whether everything he added to the engine he personally needed, or check his post in this thread. I think he makes it clear that that is not the only reason.
In the end it personally benefits the developers if they add some feature they think many others will need but they personally don’t because it attracts other developers to work on the project with them which helps keep the project alive and grow faster which would not be possible by one person. That’s one of the beauties of open source development.

I haven’t contributed to the code of Panda but I’ve contributed to the wiki and I think that will work for an example, I had no reason to clean up old code or write missing pages for myself.

how can you compare a totally-free-to-use engine to paid engines? if you are willing to pay the price, you use Unreal or Unity etc., if you are not doing a commercial project, you can safely stay with Panda.
if you want mobile support/console support/scene editor, you pay money, or do some hard work.
the foundation of Panda3D(such as code base) is good and it can still be used in the future, when more feature such as scene editor become available. and Panda3D can be used with C++ so it’s a serious engine, not just a toy for kids, although it’s easier for kids to learn (thanks to Python).

and scene editor is not what everyone desires. recently i tried Unity and other free game engines, eventually i chose a small free engine and dropped Unity for the sake of speed/simplicity/independency of IDE and what i like is programming, not mouse clicking.

last thing, there is something in Panda3D that paid engines can’t do - open source. open source means more freedom, more expandability. for example, try making a very large scene(10000km x 10000km) in Unity, you will find the limitation of single precision float causes you a lot of trouble, you don’t have other choices but tricks. but in Panda3D, you have a savior, you can compile Panda3D with double precision float, no need for tricks.
when you choose a closed source engine, you accept the limitation, you can’t do more. freedom is the reason why some large game companies make their own engine instead of using existing engines.

You are again trying to make this into a black and white issue. It doesn’t have to be either Panda-grade or Unity-grade.

And again, I didn’t say Panda won’t be used in the future, I even said Panda will be used in the future even if the development stops today. But that’s not the point.

Sounds like you are either a newbie, hobbyist or indie dev. Nothing wrong with that its just that that’s not the majority of game developers. Regradless, having a scene editor doesn’t make use of a scene editor mandatory.
Scene editor does very little, you have to write code and add them to the nodes. All that scene editor does is allow to do imports and some function calls visually.

This is not a Panda vs Unity or paid engines thread. You pointing out good things of Panda doesn’t undermine the weak points of Panda I’ve mentioned.
Open source means very little to the average developer if he doesn’t get the tools he needs in the first place.

No, it’s not “the” reason. It can be a reason or one of the reasons. Some large game companies use commercial engines just fine. But again, trying to find downside with other game engines doesn’t by itself undermine the weak points of Panda.

Most of these comments are just defensive. I expected we could have a productive conversation instead of trying to protect a tool from criticism.

i didn’t deny the weak points of Panda3d(when compared to paid engines).
but you seem to be demanding more from Panda3d, which is a free engine.
i saw the phase “protect a tool from criticism”, why do you criticize(i may spelled the word wrong but who cares?) Panda3d in the first place?

when someone gives you a free lunch at a small resteraunt, would you say: “you should take me to Starbuck across the road.” ?

when i said scene editor was not what everyone desired, i should have said that: scene editor is not indispensable.
Panda3d offers what are indispensable, and some bonus(dispensable). that’s what free engines can do. if you want more, you pay, or you help produce more.
does that make sense to you?

or you think you can do better than the Panda3d developers? in a given time, a given budget? can you prove it?
or you think Panda3d will have all features that you want in 2 months(or 2 years), because you talked?

It’s called “constructive criticism”. Look it up. Nothing to do with demanding anything.

Almost nothing is “indispensable”. That’s not the point either. The point is what do many people expect, because that’s the expectations you have to meet when you want to expand your user base, and the devs have mentioned several times over the years that they want that.

I have already responded to this more than once.

Call down and try to have a respectful conversation, you still fail to get the point of this topic. One of the devs already has.

For someone who claims to know the benefits of open source libraries you don’t seem to be familiar with feature requests on github or launchpad.

(knowing about the term “open source”) == (i have to use github or launchpad) ??
look, you seem to be always finding chances (in the details of conversation) to prove other people were wrong or inadequate, so that you may look more right. i have seen this phenomenon many times and many-where, so i have doubt.
maybe you get respect from the people who know who you are, but why post here when you can (use github or launchpad) $$ (you can talk to developers in person)? why post with a new ID if you have used Panda3d for 8 years and contributed much?
i remember drwr, rdb and other people in the forum who taught me something when i learn Panda3d and Python. i say sorry if i offended a person whom they know.

I’m not going to turn this into an argument and discussion about myself. This is not about me, who I am doesn’t matter, why I had to make a new account, etc. Im just making points, and rdb (aka pro-rsoft back in the day), one of the few core developers read my points, agreed with some and disagreed with others. Sadly few other users just started defending their tool.
But If you want to discuss the actual points about what Panda could really use, like I’ve discussed with rdb, be my guest.

You decided to explain to me what open source means in your first post to prove a point. I’d imagine you know a thing or two about github, launchpad or sourceforge features, yes. If you didn’t know that about github, then okay, but that was in response to you asking whether I as expecting for features to be added by just asking (“feature request”) and I explained yes, and that most common open source software hosting and management websites provide you that as a separate page for your project. That’s all. I’m not here just to try to argue and prove I’m right.

Panda3d has its own niche. Its never going to be everything to everyone. I’m new to panda3d but so far it’s been a great fit for teaching myself fundamentals of 3d graphics and applying systems around them to make games. Also a great opportunity to dive into the engine and experiment without the impression that you’re drinking water through a firehose. That seems to have been what the goal was all along anyway for the team that started this.

I don’t understand the holy war going on here. The development team seems to consist of volunteers. You’ll get more flies with honey than vinegar.

I think it’s the same points I’ve already addressed.

Aka “there will always be people using it”. Not the point.

It’s not a black or white issue where Panda either has to be the way it is or everything for everyone or Unity. Again.

Sounds the same black and white thinking. You either have to drink from a tiny cup or a firehose.

And btw, Panda was not developed with the goal in mind to be a teaching tool. It’s cool that you can use it for that, but it was developed by Disney VR in the late 90s - early 2000 as an in-house game engine (similar story to Godot engine) for some Disney games, then it was open sourced and development continued jointly by Disney and CMU, and some volunteers. People from CMU (Josh) in few years wrote most of the current manual and made the engine easier to get up and running with. They also used to have classes in CMU to teach game programming to students with Panda and Python. But Panda was not made as a teaching tool from the start and didn’t become mainly a teaching tool during this time period. CMU has another tool for that, Alice3D. CMU I think stopped working with Panda3D around the 2007-2010 time frame and switched to Unity, though they still host the website on their servers. David (drwr) still develops the engine though not as much ( ) but the maintainer is rdb.
During the life of Panda Disney has become less and less involved with Panda, two of the DIsney MMO games that were powered by Panda, Toontwon and Pirates of the Carribean Online, have been closed and CMU which was meant to maintain the engine when it was open sourced has switched to Unity. rdb has done amazing job maintainig the engine and adding new feature and there have been others contributing stuff but still, there are things I think Panda could really need to grow out from a niche market and maybe development should be focused on those stuff instead. rdb already replied and said what he agrees and disagrees with.
It’s not the end of the world but hope this explains where I’m coming from.

There’s some discussion going on among developers about ways we can make Panda more broadly accessible. I’ll let you know if it turns into anything interesting.

Thank you

I’m a experienced Python programmer, but not a experienced game programmer, what makes more difference its an editor. A editor to add, see, move, and build scenes, program and run. This make easier for anyone use Panda3D, especially beginners, and what I have always wanted.