Best Game Engine?

Hi everyone. I’m new at game engines and need some guidance please. I’m looking to create a very simple fps with a style that’s similar to cartoons (cel shading). Is Panda3D the best engine I should use, or would Crystal Space be a better yet. I’m comfortable with Python, but have no C or C++ experience, though I would learn if I had too. I’m also using Blender if that helps at all.


Asking this kind of questions is kinda pointless because most people on this forum (and on CS forum, accordingly) are here because this is their engine of choice, and it is so because they’ve tried other engines and found Panda to be the best for their needs… :wink: So we’re kinda biased :wink:. You’d be better off comparing the documentation and features, I guess.

Still, since you’ve asked. I’ve used CrystalSpace (which was my first engine to use), hit a wall with it, switched to Panda and have been living happily with it so far. That’s my long story short in this regard :wink:.

And as for why I hit a wall… Mostly lack of documentation coupled with slow and unreliable development heading in not well defined direction. At least that was the case about 1 or 2 years ago.

In general, if you want to use Python and have an engine that is ready-to-go (as in, not OGRE) then Panda is the best choice because it was designed around Python from the start. CrystalSpace has CEL and PyCEL (and CELStart… which kinda proves they lack(ed) a good plan), but their Python layer is far less “pythonic” than with Panda and felt clunky to me.

On the community side, both engines have good support, but Panda’s community is bigger and more active. The forum’s code snippets section is almost like a box full of Lego, you just need to search for what you need.

Oh, one thing that is undeniable and objective – Panda has a way better GUI system built in. In CrystalSpace there’s only basic billboards (unless you use something like CEGUI which is also possible with Panda), while Panda has DirectGUI, which might be strangely designed but it’s quite powerful.

Both engines have nice support for Blender.

CrystalSpace’s Blender exporter is probably one of the brightest of it’s points. It basically allows you to export a complete game for CELStart. Or at least that was the plan, last I checked. But that’s also it’s biggest drawback – because of it’s complexity, it’s easy to get lost in it and it’s not very stable. Let alone prone to not working whenever the CS, CEL, PyCEL or CELstart are modified.

On the Panda side, Blender is supported through the Chicken exporter which is very simple to use and does only what it must do – exports graphics and animations. That’s it’s biggest power and even though it has its limitations (like it doesn’t export lights, so you must use empties for that) and some stability issues, it’s just very reliable, which I couldn’t say about Crystal’s B2CS.

Additionally, you’d need to build CrystalSpace yourself, while Panda provides stable and development builds for all supported systems (mainly Windows, Ubuntu and Mac). And believe me, building CrystalSpace (as with any large library) is a real pain in the ass, especially if you need to do it often (and when I used it that was the case, since development version was the only one that made sense).

There are other things, but you get the point. I’ve used both and I highly recommend Panda. I wouldn’t be here if that wasn’t the case :stuck_out_tongue:.

First off, thanks for replying so quickly and so in depth as well! I kinda decided already on Panda because for some reason I cannot log onto crystalspace forums and can’t be arsed to keep trying!

The reason I asked as to which was better was simply because I understand certain engines are better at various tasks than others; really don’t want to waste huge amounts of free time on something that will eventually fail not because I’m stupid but because the engine wasn’t built/designed to do something I want it to do - like a fps.

Thanks again for the help!

Just out of interest, you mentioned OGRE as not being ready-to-go; may I ask why?

Well, technically there are no differences between Panda and CrystalSpace in regard to what they can do. The differences are in how they do it, how well and how easy it is to achieve good results. I’ve been using Panda for some time now and it still amazes me how easy it is to get things done with this engine (no, they don’t pay me :wink: ).

As far as OGRE goes, that’s a completely different story than CS and Panda. While these two (especially Panda) are game engines in full sense of this term, OGRE itself is basically only a rendering engine. If you want anything other than that – like collision detection, physics, GUI, AI, sound, you name it – you have to pick up one of the additional libraries available. They seem to be quite well documented (well, OGRE is arguably the most popular OpenSource rendering engine with a large community), but that’s additional work you need to do and it’s not as reliable. With Panda you just install one self-contained package and you’re good to go.

Also, most importantly, you can be sure that what comes with Panda will work with Python. In case of OGRE, Python support is added in a similar way as in CS – as an add-on installed separately – and you can’t expect everything from the OGRE’s additional libraries to be python-enabled.

That’s basically what I meant by “not ready to go”.

On a side note. If you want to make an FPS, then perhaps you would be interested in my code snippet for ODE-powered FPP. [ODE Middleware).

Thanks, read through Ogre docs and saw it’s a graphics rendering engine first. Again thanks for the reply. Also regarding your link, no idea what everyone is talking about, it’s all french to me right now, but planning on downloading anyway and playing around till I get it :slight_smile:

Another question if you don’t mind, is there a tutorial of some kind that’l show blender and p3d working together? I plan to put together a small test world in Blender this coming week, sought of a simple training ground so am wondering as too how much detail I should put into Blender models?

Hehe, read the attached PDF, it should clear things for you. Also, the code is extensively commented. Basically, it’s most of the building blocks you need to deploy an FPS that Panda, as a general-purpose engine, doesn’t have included. If you have any questions feel free to write there or PM me.

Regarding Blender, take a look into the manual. Well, technically you obviously should start by reading it all top to bottom :wink:. … om_Blender – here you can find a link to the Chicken exporter. Get it, install it, play with it. It has nice documentation that comes with it.

Not sure what you mean. Triangle count? If so, the same rules apply as to any other engine. If you’re asking about creating models for real-time rendering in general, then that is quite a large subject and you can find a lot of documents on it on the net. I have no link at hand ATM, sorry.

Read through your pdf today, as well as the panda3d manuals, sort of makes sense, obviously going to be quite a learning curve but I’ll get there. Personally I think the best way to learn is to do, so I’ll start creating a very simple ‘scene’ that i’ll figure out how to manipulate later.

Going to be fun :smiley: