Panda3d and Blender integration pipe line

Hi,
I am a novice to Panda3d. I wanted to know if there is a integrated editor/asset pipeline for Panda3d and blender as a combined system. I mean like the game environments like Unity3d etc provide. From what I understand Panda3d is a great platform for games. Complete C++/Python integrate development environment.

If not if all agree we can start building it. I am a experienced C++ developer. I have experience in C++/Boost and mostly worked in server. Though I am a novice I would like to give a helping hand.

As I know blender is a exceptional platform for 3D animation and gaming, but I would prefer a panda3d engine for blender.

Please respond.

There were afaik at least two attempts to integrate a different game/render engine into blender. One was for OGRE and it’s dead now, the other one was during the YoFrankie project by the Blender Foundation. They tried to integrate CrystalSpace 3D and abandoned that road because it was too much work, so they focused on improving the BGE because that was easier, if i recall correctly.
Now there is a project called GameKit but for licensing reasons it’s not directly integrated into Blender because it would have to be GPL then and the author wants to use a more liberal non-viral license.

So all in all, for licensing reasons alone you simply are not legally allowed to integrate Panda3D fully into Blender. I hope I didn’t make any mistakes here though, because i’m not entirely sure about most of this.

I’ve been thinking about writing an exporter for Blender that takes class info from Blender object properties and directly writes out Python code to create these scenes. For example, if you have a Player mesh at location A, with property ‘Class: Player’, and a Monster at location B, with property ‘Class: Monster’, it would actually write lines ‘createObject(Player, { pos = Vec3(…) }) … createObject(Monster …’. These classes would be written in your actual code, and you just call the function that this code is in, importing it in. You could do per-instance scripting by writing the script in a Blender ‘Text’ object, most probably a class that derives from Monster or such and overrides certain functions, and reference this script in the logic properties. The exporter would paste this class in before the createObject function allowing creating objects with special functionality for that instance. You could have pre-load and post-load events, the code for which would again be in Blender text files. Eventually you could make a .pyc out of this to make loading quicker. Thus rather than having an intermediate format which you then write code to read, you just write the code that creates the objects.

I think this may be a great way to use Blender for level design. In this case the Blender models are simply placeholders and only position/orientation data is used, but you could use Blender as an actual modeller for the level meshes (like brushes in BSP level editors) by exporting them to .egg, naming these in the Logic properties, and having the object load the respective mesh up.

This is very similar to a pipeline I used for Python scripting and level saving in a C++ game I’ve been working on, GraLL 2, but given that Panda3D is completely exposed to Python, including physics and interval stuff, this could make scripting a lot easier.

You could have libraries of objects in another file which you just append in using Blender’s normal append functionality, thus making it like a game obstacle library. You then tweak the properties or write custom scripts.

This is just something I’d been thinking about for the past day, might look at putting it into action soon. Just started experimenting with Panda3D two days ago. Currently the .egg exporters for Blender also export position data for each mesh and put everything in one file, which gets in the way of this sort of idea. Shouldn’t be too hard to modify them to do otherwise - will look into it.