Whether or not to use panda?

Hello. I’ve been spying on Panda 3d for a couple of months, and wanted to ask if anyone could help me to decide if the engine is right for me.

I’m currently working on a project that has a target of Half Life 2 level graphics (maybe a bit ambitious). We are currently using the Blender Game Engine. There are some fairly good sized scenes with quite a number of indoor and outdoor locations. It’s an adventure style game, so no intense interactions (no combat or action). But there is a big emphasis on making characters and scenes look good and believable, while not sacrificing performance.

We are currently running into performance issues in BGE, and are finding we’ll need to step down the quality of our models and textures for performance reasons. I’d rather not see that trend continue, and I’m investigating other options.

Ogre3d seemed like a nice choice since it seems so capable, but it’s just a render engine, and in order to use it you really need some good C++ programmers. Unfortunately that idea is not popular with the rest of the team.

I found this engine and am quite happy at how feature complete it seems (since Ogre is roll-your-own), and that it uses Python (which is what we are using with BGE). That will go down much nicer.

My main question is how capable is Panda3d when it comes to performance and graphics? Is python only used for scripting, or is it how the engine is written? That and it seems that many of the games made with Panda3d have a cartoon style, so I can’t judge whether it can handle more realistic styles.

Any insight is welcome. Thanks. :slight_smile:

JFT

Hey, welcome to Panda3D!

Panda3D’s core is written in C++, which means that it doesn’t suffer from the performance overhead of Python.
Even though Panda3D is a game engine that provides a lot of stuff to help creating the game, in the end it remains just an interface to the graphics card. So in the end, you define how your game will look and how fast it will run, not the engine.

Panda3D ships with performance monitoring tools to help you squeeze every millisecond out of your frame rate. As for graphical capabilities - this is not limited by Panda3D, but by the capabilities of your artists and graphical programmers. Panda3D provides classes to make this easier for you (like the ShaderGenerator), but doesn’t limit the look of your game to a particular style.

If you have any specific demands you can always post some pics of what you got so far and ask if X, Y or Z in it would be a problem when using Panda. From what I’ve seen of BGE I doubt that will be the case though (no insult intended towards BGE :wink:)

well the good thing about Panda 3D is that you can do just about anything

the bad thing, you have to do everything yourself

truly everything, right down to even how a button reacts upon mouse over

if you have the knowledge then basically you can make anything you want

IMO probably the hard parts will be optimisation, which will probably be done both ways, in the models within the 3D program of your choice, and in the engine, codes galore, all i can say for python or C++ script since its not my specialty

If it was truly everything, then you would have to make the button itself… Or all other GUI elements. Or write your own animation system… or your own renderer :wink:. What you’re talking about is behavior customization, not DIY :wink:.

i really like panda3d, but depending on the team you have you may wanna check out unity3d as well. it has a way more wysiwyg approach to gamedesign. but from my experience (not covering the recently released unity3d v3) panda3d has way more features. also panda3d has been used in mmorpg’s already, while unity3d is quite commonly used in single player games.

both engines can be used on osx and windows, unity also has a iphone version, while panda’s is still in the works.

the indy version of unity, priced at 150$ (iirc) is able to do a lot, but for a bigger, more customized project requires the pro version which is quite expensive. on the other hand, it’s editor is really awesome.

if you have a team with a dedicated developer, panda is (in my opinion) the better, free, way to go. if your team consists of artists, unity may be the better choice. lastly, it depends on the project, if your game is using common methods unity will probably do fine, but if you need to change engine mechanics, panda if opensource and thus better suited for such aims.

point taken

Wow. Thanks for all the feedback! With responses like that I might stick around for a while. :smiley:

I’m an artist, and I’m not much good at programming, but I don’t mind messing with code or compiling it. I just end up giving myself a headache rather than actually accomplishing anything. I have no knack for programming… :blush:

But, personally, I don’t mind dabbling and getting my feet wet, even if I get nowhere. But I’ve got to convince a team of 10 people (mostly artists) why BGE is kinda lacking and not what we need to do the job. I mean, who can compete with “Press P” and you’ve got a game?.. lol

But first I need a viable alternative. It’s a volunteer project, and they want to use OSS tools. So I doubt they’d go for Unity3D (as nice and user friendly as it is). P3D is the first OSS “full package” I’ve found, and really looks like it might fit. Too bad I didn’t find it earlier! My programming handicap made sure to it that the time I spent experimenting with Ogre went mostly nowhere, and might have been better spent playing with P3D.

Anyways. I did play around with the SDK a little. I agree with some of the sentiment in another thread that the perception of P3D can be a problem for getting it adopted by more people. I will admit my first thoughts when I found P3D was my knee-jerk reaction of “python is slow” (which I’m not qualified to speak on), thus P3D is probably slow. And all the cartoon graphics reinforced the idea, especially without a more realistic demo or game to contrast with them. That by itself seems to suggest either it can’t do it, or it’s too hard to use to make something better. I still gave it the benefit of the doubt, and the feature’s page suggested a lot of nice things. Plus the manual is very nicely done, one of the nicest “getting started” guides for anything I’ve run into.

I tried playing 7 million to get a better sense of what Panda’s like, but I couldn’t get past the avatar creation screen. I still have a few nagging concerns I want to clear up.

How is it with culling, LOD, and paging geometry (if available)
How is it with shadows (2 of the shadow examples seemed glitchy)
Can AA be used?
Can you have multiple scene graphs?

Probably others I can’t think of atm.

I don’t know if I really have any permission to get really specific about the project itself. Really, the best way I could describe it is imagine you wanted to recreate Half Life 2 in Panda. A comparable level of graphics, but with the scenes/maps being more close and woven together, rather than linear. Basically a lot of stuff with quite an amount of detail pretty close together. Shader’s won’t be used for everything (like most games these days), but they will be used frequently, and there will always be an ocean in view. I don’t know if that’s really a good enough description.

Sorry if I’m being rude going on about all this, or sounding like a complete noob. Just trying to figure things out.

Thanks again. :slight_smile:

Panda3D provides frustum culling, portal culling and LOD. You’ll have to be a bit more specific about “paging geometry”.

Panda3D provides built-in basic shadow support, but you can also just write a shader yourself for this if Panda3D’s built-in shadowing does not fit your needs. There are numerous examples around the forums for various shadowing algorithms.

Yup.

As many as you want.

You’re not being rude. We love to help beginners out with Panda3D. :slight_smile:

I’ve gone through the hello panda in the manual, and poked around some of the other tutorials on the forums. The python is surprisingly easy to get around (and I have no experience with python). I’m definitely happy about how painless it was to go through them. Great stuff. I’m definitely going to use panda for my personal projects. I still have to do some tests before I can really feel confident about trying to push for Panda in my team project, but I feel MUCH more comfortable with it. As an engine / framework it has the kind of features I was hoping for.

By that I mean streaming objects, basically loading and unloading objects from memory during runtime, so that load times may not be needed in a large outdoor scene. It’s not something I absolutely need, but it’s something nice to have.

Oh, and I’ve visited the Panda IRC channel on FreeNode, but everyone is lurking. :frowning:

Thanks again for all your answers, it’s been helpful. :slight_smile:

Are you referring to this?

I disagree. I think you should frequent it a bit more, answers are tipically answered in a short time. :slight_smile: