Panda speed bumps - what to look out for

Hi guys,

Just wondering if theres anyone out there who has developed a game to market or to release that can share some insights on Panda.

[]What went better then expected?[/]
[] What potential blockers can other devs expect?[/]
[] Was there any mechanic you needed to drop because of a technical limitation?[/]
[] What tools did you use in your pipeline?[/]

Just trying to future-plan at a high level and mitigate any problems :slight_smile:

Michael

I never really released anything bigger than a small prototype, but I’ve got some industry- and academic experience with Unity3D and Panda3D. Also I’ve spoken to a few developers who used Panda3D for released games.

What woks better than expected:

  • Can’t really tell, since for most people it was the first time working professional in a game. In comparison to Unity3D you can view the source code and modify it, which often is problematic in Unity3D, since its API is very restrictive and some things aren’t documented. Also I’v heard that the Panda3D community is more friendly :wink:

What potential blockers can other devs expect?

  • Clearly the lack of a visual editor. If you need to arrange many objects, say design a level for an FPS or an adventure, then there’s no possibility for visual rapid prototyping like seen in most other engines. You’ll have to either use a 3d modelling package like Maya or Blender for level assemblage or roll off your own editor (a few community members did).
    Another potential pittrap (some will call it a feature) is the lack of any design patterns. There is no proven, nor suggested scheme for how to manage your files or your code. You’ll have to come with quite some understanding of programming patterns to not end in an unmaintable, hard to extend, chaotic mess.

Was there any mechanic you needed to drop because of a technical limitation?

  • Actually I can’t think of any technical limitation. There are no license-based anti-features or limitations. Unfortunately there also doesn’t exist any asset store where you could buy ready to use modules (like in unity), but our forums serves you with hundreds of snippets and examples.

What tools did you use in your pipeline?

  • Most people here probably use Blender, Maya, Max for modelling (and level design in some cases). Other tools like L3DE, Makehuman are used for creating landscapes, skies, humans and all other sorts of visible assets. For development there are many different IDEs and editors and I don’t think there is a real concentration on certain ones. For deploying and optimisation you can use Panda’s included tools.

Hope this helps you a little bit.

Yep - I noticed the lack of scene editor, there a few ones out there, Wezu’s is looking good. I’m not sure what happens in industry, but it looks like many devs will just create their tools from scratch.

An editor like this developed by the guys that made LOVE would be a killer feature:
youtu.be/DPIA2g8T6Hw?t=4m45s

I actually kind of met this while doing my current project. My code at the start was very spagetti like, so ended up refactoring and building in elements of a entity / component framework rather then relying on inheritance and I think its made things a lot easier to understand.

Glad to hear there hasn’t been any technical limitations. The ones I’ve come across are things that would occur in any engine, like trying to render a forest without actually using LOD or the RBC. :slight_smile:

The forum snippets area has saved me countless hours, but sometimes I wish things were in categories, so all the ‘Shaders’ things are in one spot, ‘Camera’ stuff in another. Save me a bit of time finding the exact search term to bring up relevant stuff :slight_smile:

Didn’t know that makehuman was opensource, nice.

I was sort of wondering it Panda’s deploying tools would work in production, or it there were other sorts of tools used to get a deployment. I haven’t really researched into that yet though.

It does, thanks!

As far as an editor goes, you might also want to look at Kurohyou’s work here. His editor is highly inspired by Unity, which really is a good thing. I’m also working on a SDK, but it’s not ready for prime time yet.

Regarding technical limitations, the ones I’m most concerned about are the lack of 16 or 32 bit per channel textures (not exactly a show stopper, but makes some stuff more difficult) and the lack of hardware skinning – in Panda, all animations are done on the CPU, which is a performance bottleneck.

Other than that, there aren’t any real technical limitations, but there is a lot of stuff that Panda won’t do for you, while the likes of Unity would (in exchange for $1500 :wink: ). For instance, Panda’s OOTB light support is very basic, so you will need to figure out a way to manage lights. If you want deferred shading, you gonna have to roll that out yourself (although the snippets section will be of great help, IIRC). Panda has portal culling, which is essential for many kinds of games, but it won’t create portals and cells for you (which also means you can set them up by hand in the most optimal configuration). And, as Nemesis mentioned, Panda doesn’t have a “tried and true” design pattern for your game and assets, and that also includes the lack of a map format.

All this isn’t really a bad thing, it just depends on what you expect and need. While doing all this stuff is certainly not faster than having an engine that does it for you, it’s a lot more flexible and you get a lot more control in exchange. You will also find that Panda is great at not getting in your way, so there’s nothing it can’t do, there’s just stuff it doesn’t do OOTB.

I absolutely agree. The snippets section is awesome, but some really useful stuff might get lost in it. Something more structured would be welcomed, but I would personally prefer tags over sections. Some snippets are almost entire libraries, in fact, so it might be very difficult to figure out where they belong.

PS.

Actually, it’s “guy” that made LOVE, not “guys”. That whole thing is one man’s work. Which kind of proves anything’s possible ;D.