The Panda Development Group
Windows, Linux, Mac OS X, SunOS
Languages Written In:
None (be one!)
Panda3D is a game engine, a framework for 3D rendering and game development for Python and C++ programs. Panda3D is Open Source and free for any purpose, including commercial ventures, thanks to its liberal license.
Several options for physics simulation:
Simple AI library “PandaAI” included:
Several options for adding sounds to your game:
Panda3D comes with a set of tools for the creation of a graphical interface:
|License Name||Price in $US||Source Code Included?|
Showing 1-25 of 58
Brief history: Been programming C++ for ~20 years, Python for ~8, used Ogre before and created my own engine around it.
It has quite a fascinating selection of built in features. It is interested just how many optimizations they have made, a prime example is 'flatten', which optimizes and reduces part of the scene tree. It was designed for real-world use, initially by Disney, and it is currently still in heavy use and development by multiple commercial and open source developments.
The features, being made more for the 'real world' are exceedingly functional, but for individual components, Ogre does have more features for rendering, and that can be extended to the other components as well, but it is actually not all that difficult to enhance it yourself either.
Contrary to common usage, the C++ documentation is a little lacking compared to the Python documentation, and many objects and patterns only exist on the Python side, so it is quite obvious that it is really designed for Python use with C++ to be an extension mechanism when speed is required.
To date, no crash or odd rendering glitch that was not my own obvious fault, I cannot say that about other systems that I have used, and I am doing some rather unique things in this one.
The whole Python interface does have a little 'swig'-caused crud on it (like a few destructor functions that should not be necessary on just a couple of classes), but overall is nicely well made and is nicely documented. The lack of real Python doc-help on the calls and classes is a bit of an irritant (due to IDEs pulling their documentation from those), and that is my main grief with that (hence the 4 on ease of use, the lack of proper docstrings is the cause).
Support is primarily forum based, excellent there. However they also have an IRC channel (usually well filled), when the knowledgeable people are there then it is quite useful, but tend to go missing for days, and the other people do not have quite the knowledge level to make up for it (yet).
Still not talked about a great many of its features (of which they are extremely numerable), and they all have a place and purpose, not just put in for fluff.
Overall, this is actually quite an amazing engine, even building my own meshes in code is surprisingly simple. Very well recommended.
I went back to Panda to do a game of small scale, so I have a more objective review this time.
Panda3D is a game engine, it's more than just graphics. It has integrated physics(panda and ODE), network, audio, decent AI. It even include tools to pack and distribute your games. Even an installer packaging using NSIS is included. All you have to do is focus on coding your game. The only thing that Panda 3D needs is a full featured level editor (it's still in development).
Ease of Use & Performance:
I chose to combine them for a reason. With Panda3D you can make your games with either Python or C++. With Python you have ease of use of a high level, since the language is so much more readable and easier than C++ and with few lines of code you get many things up and running. The trade-off of the ease of use is the performance. While it's not bad because the engine is written in c++, using python reduces some performance and you might have to do some tweaks to improve it if you have high scale, dynamic game.
The second option is to use C++ to solve the performance issue, and the difference is noticeable. However, the trade-off is that is not as easy to use, because you can't debug much in c++ and you might have problems using other IDEs than Visual C++ / C++ Express.
One issue is the Panda3D physics system, while good, it's not 100% reliable when you use gravity, you can use ODE or other wrapper for python, but they're not as full featured as the C++ originals.
I'm not saying that the support is bad. The documentation is good and the tutorials are a good help. The API is ok and the forums offer support.
However, compared to other engines, the documentation is lacking in showing what you can do. PyOgre has better documentation and both are using python.
The community is active, but, knowing that the engine has been used in many commercial games, I find it not as active as I expected, compared to other engines
For anyone having difficulties in understanding the manual, you could give these 2 books on Panda3D a shot :
And there is the 1st and only IDE geared towards python and Panda3D, rendered and empowered by Panda3D, to ease my pain, created by me (>.<) :
LOL... and good luck !
Pro's - Free!! Robust. Good community. Lots of tutorials. I found it easy to use.
Con's - Your not going to get the latest features out of this. Don't expect CryEngine graphics or features.
No level editor.
As I write this review (2008-10-07) the engine details are horribly outdated, skim the Panda3D manual for details.
The engine is capable to transform more or less any space in any other space. That is extremmly really helpfull if you like to write your own shaders.
There is an exporter Blender. Unfortunately it does not support all the features, Panda3D supports, although Blender is able to provide this informations. Two examples: 1. Blender has the ability to create more than one animation per object. But with the Blender exporter you have to define the start frame and end frame for every animation. 2. The exporter is not able to export binormals, that may be usefull to normal mapping. IMO the source is unreadable but at least it's stable.
The edit, compile, run cycle is extremly short. I personally use only a simple text editor and never had any problem restarting the engine ten times per minute.
If you look a bit closer at the code base you can see that there is an enormous amount of C++ and Python code. Nevertheless I had only some crashs on rare occasions, and most often only on one PC, therefore it is more likely that the graphic driver has bugs.
The engine supports per pixel lighting and some per pixel effects like normal mapping and glow. This support is enabled through a so called AutoShader Generator. Based on the fixed function properties of a node, a per pixel shader is generated (See cons for more details).
There is a mediocre manual, a reference manual (although the most written word is maybe "undocumented") and as a last resort there are some samples. IMO the samples are extremmly good because they show you better what the engine can handle, and some samples show you some andvanced features you can do with shaders.
Supported Sound Libraries are FMOD, OpenAL and Miles.
Beside the intergrated basic physic classes, ODE is supported.
You get a damn good community that answers you more or less every stupid question you may ask.
There is a GUI, but is not suited to create some high end GUIs. Better think of it only as a possible starting point.
The engine was written when fixed function GPUs were state of the art. That does not mean that the engine has no shader support. It only means that you don't get very good support for shaders. In the current release it is e.g. impossible to get the same FPS if you replace the fixed function pipeline with a simple shader (only transformation no lighting or textures). Panda3D is not slow (in fact I have done some tests on my own, and Panda3D was more or less every time faster than other well known Open Source 3D engines).
It is not possible to extend the shader generator. If anyone likes to add a new lighting model, it's impossible to extend it from Python. One needs to modify the source directly or subclass it with C++.
No support for geometry shaders or other newer features like texture arrays.
The big players behind Panda3D (Disney and CMU) currently don't care about some newer features, modern 3D engines have. E.g. there is no shadow caster, that can be intergrated into any application.
I like to write here a big WARNING.
Panda3D ist not a toy. Again and again new people arrive who only understand a single bit of Python or have heard the word 3D, but don't know what 3D coordinates are for. A lot of people write here, that Panda3D is easy. Yes, it is maybe the easiest 3D engine around, but that does not mean that a 3D engine is simple by definition. Please read the fu..ing samples because they are really helpfull, before you start asking questions on the forum. Thank you.
This engine is only for use with Python - there are no documents explaining how to use it with C/C++, and no discussions on the forum about it, meaning you would have to sift through the vast number of headers and try and work out what to do.
Unfortunately the headers aren't really detailed enough to help. You could look through the source too, but why spend the extra time doing that ?
It looks good, but unless your into Python, then you can forget it.
Panda is very hard to even start, but if you do then you'll know that programming in Panda is very simple based on their fact and the fact that I've seen the code myself and seems easy enough to programming. To me learning to program is easier from a book with lots of tutorials then online ones. I don't know why, but this open source project is very promising they answer you quickly and on time as well. To me I had a hard time even starting my code but I found an easier way which I could just drag the py file into the ppython exe and it works like a charm. so far... to be honest I'm changing my ratings better. Panda could use a book on this and that way it can be easier for some of us that way i can look at the book and my work at the same time. That way i won't have to go to the internet all the time scrounging for tutorials or waiting for help. Panda can use some more physics and collision and a freeware sound system that way we don't have to pay them much money just to sell our product unless you don't mind paying 100 bucks for an indie liscence for FMOD.
I've been using Panda3D for a few years now, and I must say no other project was so interesting yet. Panda3D has quite a few unique features, a very helpful forum, quite a few gurus lurking around on IRC and it's all BSD licensed (so you can use if for whatever you want).
Like any other software it has its bad sides, like overuse of global scope (python's __builtin__), a few bloated classes (e.g. ShowBase) and it lacks common patterns of game design, so after a while you'll have to put a lot of thought on how to actually build up your own project. Unlike in Unity3d there is no such thing as a graphical editor or any idea of components.
However, you can build up those things yourself and customize as you go. A few people already did make their own level editor, IDEs and things like that. Most of the stuff the community makes is released as open source on the forums, so you have lots of resources to learn from. Panda3D isn't developed as actively as it was a few years ago (3-5 active developers), but there is a very solid base already and you probably won't miss any features. The performance is great, btw. Many optimizations are built-in.
So if you're a python coder looking for a solid graphics-, or game engine, this is your choice. C++ programmers could also find it interesting, although the documentation is only ~80% of that of Python. Luckily you can simply translate lots of code from Python to C++ and vice versa, since the Python side consists of mostly of generated bindings.
Very easy to use Game/Graphics/Sound Engine. Python is preferred language of choice, which makes writing code even easier. Community is helpful when you have questions about features. Panda3d is a scene graph engine and has many of the features you would expect.
Taking into account that Python is meant to be a easy-to-learn programming language and Panda3D is a Easy-to-implement-Python 3D Engine, the combination allows one to achieve great success.
Fully recommendable between other 3D Engine choices for python and recommendable for C++ developers too.
I've explored Irrlicht, Ogre, Cube, Torque, and more over the past few years. Panda3d has been the best solution for me by far. To explain my rating in greater detail.
This is a complete game and simulation engine with a very rich feature set, not just a 3d renderer. Its still a good render with very easy to use advanced shaders and rendering effects, but there are still more features than you can shake a stick at. It may not have been so in the past but this engine has been maturing for a long time now.
The ease of use is just unparalleled in my experience. Greater even than Torque which had great scripting abilities, a built in console, a built in editor, and a very easy to manipulate scene graph. Torque's failing however was in the assumptions it made about gameplay, and the way all of its features were entangled in the c++ code, making it a real headache to improve on or replace any aspect. Panda3d makes no assumptions about your game that would put any obstructions in your path, while at the same time letting you rapidly and easily tap into its feature set. Also python really can't be beat for scripting, and Panda3d applications can be written entirely in python without appearing to hide the other half of the logic in the engine.
The stability is flawless in my experience. Even your own fatal mistakes will trigger very explicit exceptions. The performance is good and comparable to other engines. It has great optimization tools included. The engine makes good use of threading, but I found it a bit tricky to push tasks I wrote in python into other threads and track performance across multiple threads.
The documentation is fantastic, and if you have any doubts just look at the manual alone http://www.panda3d.org/manual/index.php/Main_Page. Make no mistake however, this is a python game engine with c++ speed behind. The c++ API is pretty clear, straight forward, and well documented, but it doesn't compare to the python interface. The c++ side is simple to add new features to, but I think Panda3d really excels if you plan to do most of your development in python. If you're a c++ addict Panda3d is a worthy contender, but may or may no be your first choice.
Oh and its free even for commercial games thanks to its very generous BSD license.
Panda's main strength is definitely its ease of use. The fact that it's geared towards Python should already imply that, but the engine itself just makes sense. Plus, the documentation is really good, so there's no frustrating learning curve. Now, graphics and performance-wise, it's not that special, although it has been used in several commercial games. All in all, it's a great engine for hobbyists who just want to make something without too much of a hassle.
Combining a somewhat easy to learn language (Python) and a well supported 3D engine backed by a fantastic community, you get Panda3D. Now like most reviews above one must have an understanding of Python (more or less) and a will (and a hell of a lot of patience) to learn 3D. I recommend having a good firm grasp of your math classes before starting to do any serious programming. By math I mean trig, geometry, maybe even some Calculus.
The community on the Panda forums is nothing but outstanding. It may take 3 days for an answer but when you do get an answer it is what you are looking for and their are plenty of knowledgable forum members to help you!
Okay enough about the good now the cons because everything has cons - this will be from a technical standpoint
1. Some advanced features that are lacking in the engine - although you can't achieve Unreal Engine like quality from Panda nor can use utilize the latest and greatest shading techniques, what Panda does offer is enough for a starting level game. Disney and CNU will probably update the engine to have these capabilities when they make a game that requires them but as of right now don't look for anything too 'fancy' in terms of shader variety and different rendering techniques. If you want the latest and greatest use DirectX or OpenGL (you will have the most control but both are FAR more complex to utilize than Panda)
2. Python and Panda. Yes python is built using C++ and python is the scripting language that controls it but never the less it will still suffer a slight performance degradation as compared to static compiled languages. Some may argue this point but as someone who programs mathematical simulations a lot, I have personally compared Python and C++ together and when you are doing intensive calculations YOU WILL see a difference. Needless to say, Panda is again, great for your basic to intermediate stuff. If your into heavy duty simulation however things may get tricky.
3. Your 3D models and such. Blender is free but coming from Maya and 3DS Max I was hard pressed to learn the interface is quirky. This one complication does not affect my rating on the engine however I believe a well integrated pipeline does affect ones opinion. For example, Disney uses Maya so naturally they have almost full support for Autodesk Maya and all the tutorials and examples stem from Maya and it can be argued that this program can utilize more features of Panda than the other 3D modeling program options. Maya is VERY expensive and most people will flock to Blender and this is okay BUT (and this can be backed up by the forum) Blender and Chicken (the exporter used to convert .blend to .egg) is somewhat iffy at times and only supports a limited number of options provided by Panda and you basically have to jump through hoops and climb several ladders before you can make your model work in Panda (this is compared to the experience between Maya and Blender and yes I have used both!)
Apples for Apples this engine is great for starting in 3D. For your high end stuff you may want to look elsewhere. If your very advanced (as in you can write your own shaders) you will want to look elsewhere as well as its near impossible to add your own to Panda.
what can i say, it's a complete game engine that does it's rendering in c++ and game logic in python so you get the best of both worlds! Fast performance and, even more important, a fast development cycle.
Great Engine but I moved on to Unity3d.
I really liked Panda3d, it was better then alot of engines and I used it for a while, but now that unity 3.0 is comeing out I switched over.
After using 3 other engines for some months (sdl, irrlicht, OGRE) I discovered panda3D and I think I finally found the perfect engine for my project
Panda3D is very user-friendly (python, good design, and very good documentation)
I managed to make a working game with animations &movement & everything in a couple of hours (had to learn panda and python in these hours). It took me several days to accomplish this with the other engines
It maybe lacks some of the advanced features, say OGRE offers but the easy of development is just unbelievable
Also disney is using it for its new pirates MMORPG so hopefully some ncie features will be added (disney wrote the original version fo panda3D)
the use of python over c++ is also very nice because artist CAN actually edit small parts of code (scaling colors enablign and disabling things),this is extremely usefull!
when you have a small dev team panda3D is the engine of your choice!
I've been developing in Panda3D for almost 3 years now and it's grown to a be a 3D standard for me. Whether the project I'm working on is for fun or for work, Panda continues to be easy to use and powerful enough.
Panda's close link to Python is definitely an asset. Python is very easy to learn if you don't know it and has very robust features.
Panda can be used to develop any sort of game or project. It isn't a FPS only engine or a RTS only engine, etc... it's very open and easily adaptible from the start.
And heck, since it's open source, if there is ever anything you really need it to do or do faster that it doesn't, you can add it yourself! And if you ever have a question the (very good) documentation or active community doesn't answer (unlikely), you can look in the code.
Did I mention it's free?
well... I've never gave a try to panda3d until a couple days ago... actually the name and the lack of feature highlights in it's webpage kept sending me away from it. However, since I installed the package and tested the 3dsmax exporter I can't keep my hands out of it. It's features are impressive, and above all, _very_ robust. For a team looking for an engine with really good 3dsmax->engine or maya->engine pipeline give panda3d a try!
+ very rapid prototyping
+ superb 3dsmax to engine pipeline (meshes, bones, morph animations)
+ feature rich, platform independent
- all tutorials and sample code focus on using the engine from python. There's very little documentation and not even one sample program using panda3d from c++.
I use panda3d for our game development because its powerful, easy to use and has great documenation, tutorials and a great community.
I Also apprecite the fact that it runs in my choice of operating system which is linux.
I also greatly admire that it will allow direct export from my preferred 3dmodeling/animation choice of blender ( http://www.blender3d.org).
Wow I think this is a very good game engine. There is a forum with many members that will help you any time. Many people are working on this game engine to get it better as it still is
Panda3D is amazing. Of all the (open-source) engines with Python bindings, it is undoubtedly the most feature-rich and most easy to use. Support and community are excellent, and even under Python it performs extremely well.
For the non-pythoners among us: It can also be used in C++ as any other library, but that is not (yet) very well documented and/or supported. Beginners are strongly advised to stick to Python, that's where Panda3D develops its full potential.
Our company has been making downloadable 3D games with Panda3D for over a year now. The best thing about Panda3D is how quicky we can iterate on our designs. We do most of our game code in python, which lets us concentrate on building the game, not memory leaks.
The support website has excellent documentation. This includes introductory tutorials, an API reference, and active forums.
The graphic quality of Panda3D is not as good as high end commercial engines, but you can still make a good-looking game. And since it is open source, Panda3D is free.
Features: The engine may be lacking some of the features of the more advanced commercial games out there, but it has done the basics, and done them well enough to allow you to get a game done.
Ease of Use: Once you understand some of the 'panda' ways of doing things, it really is quite easy to use. The tutorials/manual really help you get up on the learning curve/starting to produce right away.
Stability & Performance: It is used by Disney for ToonTown and the upcoming Pirates MMORPGS. You can't get a stronger endorsement then that. = )
Support: For a free product the support is great. They have a board where most questions are answered throughly within an hour.
I highly recommend this engine to anyone who wants to get an actual game out the door.
I enjoy programming as a hobby in my spare time amongst work, uni etc. I have previously done a lot of C + OpenGL programming, writing my own game engine over about 2 years. In it's final stages, this engine had 12000+ lines of code, once compressed/minified.
A while ago, I came across Panda3D. Ever since following their online 'hello world' tutorial in the manual, I have been sold out to Panda. In less than 100 lines, the Panda3D engine could do more than I had spent 2 years and 12000 lines coding.
Admittedly, the Panda3D engine is a much higher level API than OpenGL, as is Python when compared to C, however the simplicity and logical outlay of the engine still defys anything I've worked with before.
It's pythonic works-out-of-the-box functionality is another feature that really impresses me. Reading the online Forum I came across some code another user had written in a different OS, different environment to me. I expected to have to spend at least 1 night fixing compatibility issues just to get the code to work, but after copying and pasting, it worked, literally, within seconds.
The last feature I want to mention is it's wide-ranging support for industry standard extensions. The engine comes pre-packaged with support for many extensions, but if you need something, just check the forum, users regularly post code they have implemented that wraps around professional quality 3rd party libraries. Sound? Panda3D supports FMOD, OpenAL and Miles. Physics? Try ODE, nVidia PhysX, Bullet and Newton! Shading? nVidia Cg is ready to go. Multiple Graphics API's? You bet!
To quote the panda himself, it's sheer awesomness. 5/5
as the title says, i found this engine very easy to use.
The support is excellent in the forums, they respond quick and mostly in a helpful manner.
The setup of a panda3d Release version is very easy.
If you want to setup a Debug version then you will most likely encounter some problems that in my opinion could be handled better. (missing libraries, need to be downloaded and compiled by yourself, which is not to be classified as "works out of the box" anymore). But then again the forums offer nice and quick help for this.
The manual is kept in a way to support both python and c++, while the examples and tutorials are mostly in python (which is a bit annoying for c++ developers).
There is other users who are trying to get all samples converted to c++ so there might be light at the end of the tunnel in near future (?).
Overall I would definitly recomend this engine.