Ok i see a lot of partial truth and mistakes around there.
As a long time Panda3D user i'll try to make a more documented answer on the panda3D part.
Panda3D is different from most other engine because it's not a C++ engine with scripting features but a Python engine with C++ Horse power behind.
The main features of Panda3D lies in the python layer not on the C++ layer
(which is very efficient and organised but quite low level).
Panda3D is NOT FOR C++ programmer. 99% of the time you dont need to build anything from C++ or to use the build system. You use the python engine . You don't need a single line of C++ knowledge to use Panda3D
(but you need an understanding of Object Oriented Programming)
Panda3D is in constant evolution (new or updated features every 2 weeks in head source code but release are less frequent)
Community is python based not C++ based so Codes,samples and addon are python module, not C++ sourcecode.
What is difficult in Panda3D for long time programmer like myself (coming from C++ then Java background) is that a lot of things that are natural in Python/P3D were nearly unfeasible in C++, so the old programmation tricks and structures are not very efficient in Panda3D.
EG: i now program in Panda3D in real time meaning my program is running always and i can inject new objects, new version of existing object into the game without stopping it ! => dynamic programming to the best....
Now what is included in Panda3D
Core System = very well documented (doc & tutorials & samples)
a rendering system with CG shader features, render to texture, projected texture ,realtime geometry proceduring etc...
an animation system with multipart actors, animation blending etc...
a sound system (2D and 3D sound)
some video playback features
a task system with Parallel, Sequential and Timed task
a Finite State Machine
an event system that allow any object to receive, intercept or send any information to any other object in the system
an arcade based collision system (very efficient but not physics oriented)
Legacy System = poorly documented (samples only)
a low level network system (datastream oriented)
a high level distributed network system (nearly unknown)
a simple physics system (only forces )
interface with physical devices for 3D reality (gloves, pads etc...)
New features = poorly documented (but in progress)
a physics system based on Ode
a glyph vision system (ie you detect object on Webcam ....)
some third party pluging for Novodex Physics engine, terrain rendering etc...
Panda is configured by default to optimize ease of use versus pure performance.
Now there is a bunch (>50) settings that allow to optimise performance
(caching, culliing, texturing, etc....). It is just not activated by default ...
The main drawback of Panda3D are:
- no built in world editor (scene editor is not maintained anymore)
- no built in persistence layer
- no clean inheritance between your object and panda3D object
(easier to say your GameObject have a Panda3Dobject that to say your GameObject is a Panda3DObject )
In term of community contribution to the C++ sourcecode, it's very under control. Your code must live some times around (with release and so on)before it is integrated in the main source code. (it avoid a lot of partial implementation and a lot of duplicated code)
There is also a tutoring program for C++ willing contributor.
In fact you can apply to implement small features already identified and one of the Carmelly Mellon Code maintainer will help you to create and integrate the source code.
I would say that Panda3D adress a different population of people that other engines. I'm a full time IT guys (ex programmer, now project manager)=> I don't want to spend hours working on my game to get it run, i want to spend time on my game concept. I can't afford more than 2 or 3 hours / week on the topic and it is still enough to get results with Panda.
(at least before my first son arrived , 1 month ago

)