panda3d-editor

pro-rsoft and another member are creating an editor for P3D, but not telling us anything. I hope it’s not for their own personal purpose :smiley: :smiley:
I thought you use your favourite C++ over Python.

It’s there :

code.google.com/p/panda3d-editor/source/checkout

Meh, we wanted to wait till we have something that’s actually usable to announce it, but I guess it’s too late now you guys have discovered it. :slight_smile:

Let me provide a bit of info.
The editor is divided into three parts: the editor core, dgui interface and wxgui interface. Hypnos works on the core and DirectGui interface (and thus usable in-game) and I just do the Wx interface. Hypnos does most of the hard work. :slight_smile:
Screenshot:
pro-rsoft.com/screens/panda-editor1.png

We’ll publish it when we have more stuff finished.

PS. The idea of this is that later more people who want to participate can do so so it grows out into a good, solid, stable, usable editor. That’s also part of the reason why its Python, not C++.

wow. awesome! looking forward to try it out :smiley:

btw: is it 100% python?

just had a look at the WIP code. all python and blender! i love you, guys xD

I’ve been working on it for a while, but didnt want to get ppl trying it, and forget about it because of a instable or unusable state. But actually i was thinking about announcing it soon.

Initially the basic editor was part of my bachelor degree work, which i took out and improved it in the last 2 months. Even if it’s not yet close to being finished, it does help creating a scene already (also trying out how something may look).

The editor has some good and nice features. It does create egg-files, where i try to keep them readable by the “normal” egg-loader (at least models loaded into the editor will load with the “normal” loader). However the editor features a lot more objecttypes, like all types of lights, particle systems, geomipmap-terrain and some sort of scriptable nodes (this is likely to be heavily modified in the future). Thus it will require a special loader (which is part of the editor).

if you check it out, you may want to test both interfaces in src/main.py:
(using the directgui interface)

  USE_GUI = "dgui"

or (using the wx-gui)

  USE_GUI = "wxgui"

or (just use the loader, no editing)

  USE_GUI = None

Now that is has been announced, if somebody is trying it and gets a error/crash. Wait 15 minutes, check it out again (i might checked in a buggy version). If it’s not by then you can post a bugreport here: code.google.com/p/panda3d-editor/issues/list

But remember it’s still in a very early part of development. So be careful what you plan to do with it. The egg-format i am currently using may change heavily and i am not planning on being backward compatible for the next months :slight_smile:

edit: the project currently contains quite a lot of stuff from the forums, i want to thank everyone that has released code, especially directgui related stuff.
especially:

  • ynjh_jo for the scenegraphbrowser and the Popup Menu (which is not used yet but in the cvs)
  • pro-rsoft for his fixes and the wx-gui

a directgui-interface screenshot:

God bless you guys, this is for sure a must-have for the P3D project.
it is indeed promising - I like the choice to made it in python and to use Blender as default modeler.
By the way, I would make you a question though, since I’m wandering for long time to make something similar using Blender: why don’t you have done a Blender scene-exporter instead of build from scratch a new editor? wasn’t so less developing-time demanding?

anyway I just can’t wait to see it and maybe contribute to fix issues if you agree

i see this tool and the blender exporter as totally different tools.

this is a szene editor where you combine different models to a szene. Blender is a tool to create those models. You actually can combine models in blender as well, however you cannot add particle systems geomipmap terrains etc. in there, and check if they are scaled correctly in comparison to the rest of the world.

secondly while testing/developing games, it makes sense to have the possibility to change things during gameplay, by this you dont need to restart the game if you see that that key you need pickup, to open the next door is in, not on top, of a table. :slight_smile:

give the project some time (maybe a month), the i’ll be happy to get bugreports / fixes to implement.

indeed great points - you’re making sorta of quake editor for P3D then, I bet lot of panda-people out there just can’t wait to see it happen and since they’re lot of potential devs and beta testers don’t hesitate to ask a hand

My traceback with “wxWidgets” version:

Warning: DirectNotify: category 'Interval' already exists
Traceback (most recent call last):
  File "main.py", line 16, in <module>
    from wxgui.pConfig import Config
  File "E:\Documenti\Emanuele\Programmazione\Libs\Panda3D\Panda3DEditor\src\wxgui\__init__.py", line 2, in <module>
    import pEditorApp
  File "E:\Documenti\Emanuele\Programmazione\Libs\Panda3D\Panda3DEditor\src\wxgui\pEditorApp.py", line 4, in <module>
    from direct.wxwidgets.WxAppShell import WxAppShell as AppShell
ImportError: No module named wxwidgets.WxAppShell

However, in my opinion, all tools should use wxWidgets as unique GUI toolkit, without the bundled one, for many reasons:

  1. Respect of the OS “Look & Feel” (a tool usually doesn’t run in fullscreen mode).

  2. Respect of the Human-Computer Interaction laws, directives and advices (customized GUI toolkits are often a pain from the usability point of view -> i.e. Blender)

  3. The internal GUI is a part of the game, the wxWidgets GUI is a part of (external) tools: the in-game GUI is (in my idea) a game resource as a model or a texture, so an editor with WYGIWYS approach for the in-game GUI would be perfect!

The WxAppShell is a pretty recent addition to Panda3D. I believe 1.5.4 doesn’t have it yet – you need to check it out from CVS.

Alternatively, create a directory inside C:\Panda3D-1.5.4\direct\src called “wxwidgets”, add an empty file called init.py inside that dir, and add this file there:
panda3d.cvs.sourceforge.net/view … iew=markup
That should do the trick.

And yes, for the reasons you’ve stated, I’ve always wanted to have the tool wxPython-based.

if you are willing to contribute to the wx-interface, check with pro-rsoft. even better if you help improving the directgui part, which may improve the whole panda3d gui interface.

one thing is not clear to me:
are you Hypnos and Prosoft working together or there are 2 branches working by oneself? I’m asking cos’ seeing the project files there are 2 distinct folders src/dgui and src/wxgui that make it looks like 2 distinct projects and also the 2 interfaces look quite different. My opinion is that is best to find now a direction to follow - wx or dgui - and stay stick to that just to not waste workforce and to have neat code to achieve best results. What do you think about?

Mmmm…After the “wxwidgets” trick it says that there is not an available graphics pipe :frowning:

Emanuele do as I did: download via CVS the last files and build em up and all your problems will be wiped off.
PS: visto che sei italiano se hai bisogno di aiuto PMmmami i tuoi dubbi che vedo di darti una mano io che l’ho gia’ fatto

Actually, the actual code that does everything is in src/core. This is more like an api though and there are two different interfaces to it – one via wx, in src/wxgui, one via DirectGUI in src/dgui.
Both have their advantages – the dgui is very useful to use as an in-game editor (you can just import the modules from within your own game).

nice idea - I’m actually getting into the code and seeing what you mean
keep up the nice job guyz!

Hi,
i’m new to panda. Will the editor allow to place ODE bodies, joints collison boxes?
That would be very helpful.

jan

Not yet – but that sounds like a useful addition.

Maybe I could help adding that. I’m pretty new to python though but get the feeling it’s pretty intuitive to work with. Also I worked with ODE before (in combiniation with OpenSceneGraph and 3DS Max).
I think I’ll give it a try.

EDIT:
hwo to I run the wxgui? I set USE_GUI = “wxgui” and install wxPython but it still complains about missing modules

What missing modules? the one mentioned above in this thread?

The different object type classes are in the src/core/modules/ dir. However, please be aware that the wxgui interface does not really respect the different object types yet. dgui does, however.