FRAME - A modular Panda3D game editor

FRAME

The FRee Adaptable and Modular Editor for Panda3D.

Fond of Godot, Unity or Unreal engine? They all have awesome editors to create games and you wish Panda3D would have one too? Then this project may be just the one for you!

While still in early development, the ambitions of this editor are high and it will take time to get anywhere close to existing editors of other engines but, now is the time to try and test, let me know which features you want to see in it!

It won’t be a direct clone of other engines editors as it will:

  • Respect Panda3Ds workflow freedom
  • Be adaptable to fit your team
  • Be modular, add/remove sub-editors as needed

Features

As you can add and remove editors the features are listed on a per sub-editor basis.

FRAME

These features are specific to the FRAME itself.

  • Create a project filled with template files representing a basic Panda3D application including setup for deployment
  • Store page for adding/removing/updating editors and other assets

Scene Editor

This editor is for creating scenes/levels

  • Adding and Removing Objects like Models, collision solids, lights, cameras, etc.
  • Edit Objects position, rotation and scale using standard shortcuts (as e.g. in blender)
  • Load custom shaders for previewing right in the engine
  • export to project specific json file or as bam file
  • ability to add custom exporters
  • extensive, branching undo/redo history handling

Dedicated Forum topic:

GUI Editor

The editor for creating UIs

  • support for all DirectGUI widgets
  • support for most widget properties
  • export to project specific json file or python script
  • extensive, branching undo/redo history handling

Dedicated Forum topic:

Logic Editor

Connect everything together in this editor

  • Adding and removing logic nodes
  • Nodes for event handling and function calling
  • Basic math nodes
  • Basic Boolean logic nodes

Install and Run

Currently there are no pre-built packages available. Plans are to package and distribute this editor once it's possible to built a simple game with it. In the meantime, let me know where you would like to see this being distributed. You can easily run it from source in the meantime.

Grab the latest version from:

installing Editors

On first run, there will be no editors installed!

Head to the Store page within FRAME (first loading that page may take some time!) and install the desired editors. The installation process will currently make the application freeze as long as it's installing the package.
This part is being worked on.

News

Since I'm actively working on FRAME and it's sub-editors, I will post updates about every week on mastodon, so make sure to follow me there to not miss out new features.

FAQ

Why have you created the editor?

There are many different reasons. One of them is personal interest, having an editor to simplify creating my own games. Another reason was the general interest in editors from parts of the community and the lack of actual "game" editors.

Why don't you work on [existing editor XYZ]

Most of the other editors have different goals and ways to achieve those. I wanted to create an editor which will only depend on panda3d and pip packages based on panda3d so that it will be able to run on whatever platform Panda3D runs. Also most other editors are scene editors without, extending them to be game editors (e.g. including GUI and logic editors, asset management and more) may be very hard.

Will it have a multiplayer game template

There will be templates for such games as well as others in the future but they are not available yet.

Can you implement Feature ABC of Engine XYZ

Depends, if it fits in the editor and Panda3D supports it, chances are high it may get implemented someday.
8 Likes

I’m impressed–both by the expansiveness of this project and by your work on it! This is looking pretty good thus far, I do think! :slight_smile:

Thank you very much I hope I can keep up the pace with implementing new stuff.

At the moment my plans are to create a very basic game and see how far I come within about a week.

1 Like

Indeed! Strength and motivation to you for it! :slight_smile:

That seems like a good idea, to me: Not only a nice (and hopefully fun!) way to take the measure of your progress, but also a test for the system, I imagine. :slight_smile:

Alright, after successfully finding lots of bugs and useful features in the game project I’ve tried doing with the FRAME over the last week, I can tell, it does go in the right direction since I was able to create an actual playable game with some parts being simpler to do in the editor than writing all the code by hand but, the FRAME isn’t there quite yet (as expected). It needs polishing indeed and some of the ideas and bugs are now put up on github on the respective editor repositories.

I’ll try and tackle them as soon and as fast as possible but there will probably also come more bugs and feature requests in the future. But that only means the FRAME will get better as a whole.

Some of the issues are also tagged as “good first issues” which probably only require editing a handful of lines at most.
So, if anyone’s interested in helping me make this editor the go to editor for Panda3D, grab the source and join me in this journey!

2 Likes

Honestly, that sounds like rather good progress, to me! :slight_smile:

The FRAME now has a rather full roadmap for its beta and first official release, check it out at Panda3D FRAME · GitHub

Don’t hesitate to share your thoughts here and feel free to add issues for features you’d like to see added to the project.
I’d love to hear from you all!

2 Likes

Wow, you have quite an extensive plan there, it seems! Well, good luck with your path along that roadmap, then! I hope that it goes well! :slight_smile:

Thank you for your kind words and yes, there’s quite a lot in it but I’m confident that I can get all of it done. I hope this will be useful for more people than just me in the end ^^

1 Like

I imagine that it might well be!

An editor is something that people have asked after a number of times over the years, I think. And after all, having such a thing available may well encourage people to take up the engine who might otherwise dislike or be daunted by its by-default code-heavy approach.

Indeed, I would say that having a decent editor available could be a valuable thing. :slight_smile:

Yes, the wish for an editor has been out there for a long time now. It’s not easy to create something that’ll fit for Panda3D though since it’s so multi purpose not only in where it can be used but also in how it can be used, so the editor should not be limiting.
That’s probably where most other editors struggle, they are just nice scene editors, but there’s so much more to Panda.

1 Like

Indeed; and I quite like the modular approach that you seem to have taken. :slight_smile:

python version :
Python 3.11.3 (tags/v3.11.3:f3909b8, Apr 4 2023, 23:49:59) [MSC v.1934 64 bit (AMD64)] on win32

Windows 10 build 22H2 64-bit operating system, x64-based processor
---------------------------------------------
Sorry to trouble you with novice problems but, as a novice, and after reaading this topic (and looking at the Showcase), thought it would be of great assistance in my (in vain ?) persuit of all things Pythonish and Panda3Dish.
So downloaded from GitHub, decompressed into downloads/ frame and then moved all the sub dirs to /documents/frame

Ran as per readme

  1. Download the source code hosted here on github OK -decompressed to /documents/Frame
  2. run pip install -r requirements.txt from within the FRAME editor folder / no editor folder requirements.txt in /Frame

ERROR: Could not find a version that satisfies the requirement DirectFolderBrowser>=22.10 (from versions: 20.10, 20.10.post1, 20.11, 21.2, 22.1)
ERROR: No matching distribution found for DirectFolderBrowser>=22.10
Changed the line from 22.10 to 22.1 - ran ok ??
ERROR: Could not find a version that satisfies the requirement DirectGuiExtension>=22.10 (from versions: 20.12, 21.5, 21.11, 22.1, 22.4, 22.5, 22.9)
changed from 22.90 to 22.9 - ran ok ??

Don’t know if this makes any difference but it ran ok

  1. run FRAMEs main.py (see below)
    python3 setup.py install --user py setup.py install --user
    anyway, after yards of installation data it finished off with :-
    Installing panda3d-frame.exe script to C:\Users\richa\AppData\Roaming\Python\Python311\Scripts

Installed c:\users\richa\appdata\roaming\python\python311\site-packages\panda3d_frame-22.10.post1-py3.11.egg
Processing dependencies for panda3d-frame==22.10.post1
Searching for DirectGuiExtension==22.9 [had to edit the requirements .txt from 22.90 to 22.9 for python for this to run]
Best match: DirectGuiExtension 22.9
Adding DirectGuiExtension 22.9 to easy-install.pth file

Using c:\users\richa\appdata\local\programs\python\python311\lib\site-packages
Searching for DirectFolderBrowser==22.1
Best match: DirectFolderBrowser 22.1
Adding DirectFolderBrowser 22.1 to easy-install.pth file

Using c:\users\richa\appdata\local\programs\python\python311\lib\site-packages
Searching for panda3d==1.10.13
Best match: panda3d 1.10.13
Adding panda3d 1.10.13 to easy-install.pth file

Using c:\users\richard\documents\panda3d-1.10.13-x64
Finished processing dependencies for panda3d-frame==22.10.post1

Sorry for the verbosity but as I’m not sure whet to look for thought something in there may help !

##################### aha, thought I solved → Nope !

C:\Users\Richard\Documents\Frame>panda3d-frame
’ panda3d-frame’ is not recognized as an internal or external command,
operable program or batch file.
Py

panda3d-frame Traceback (most recent call last):
File “”, line 1, in
NameError: name ‘panda3d’ is not defined

FROM THE README
To run the editor directly from source, call
python3 -m panda3d_frame.__init__

-m panda3d_frame.init File “”, line 1
-m panda3d_frame.init
IndentationError: unexpected indent

I did a search of the files in /frame & got 19 hits… - don’t know which file it refers to and python doesn’t say. And I hate the indentation side of py, {give me brackets every day.}

running from FRAME editor folder. or Frame\build\lib\panda3d_frame\templates\Editor
There is no frame/editor folder - the nearest is
Frame\build\lib\panda3d_frame\templates\Editor
running the cmd line generates a screen for about 1 second then
C:\Users\Richard\Documents\Frame>py -m panda3d_frame.init
Known pipe types:
wglGraphicsPipe
(all display modules loaded.)
Traceback (most recent call last):
File “”, line 198, in run_module_as_main
File “”, line 88, in run_code
File "C:\Users\Richard\Documents\Frame\panda3d_frame_init
.py", line 47, in
main()
File "C:\Users\Richard\Documents\Frame\panda3d_frame_init
.py", line 41, in main
from .Frame import Frame
File “C:\Users\Richard\Documents\Frame\panda3d_frame\Frame.py”, line 26, in
from panda3d_frame.GUI.MainView import MainView
File “C:\Users\Richard\Documents\Frame\panda3d_frame\GUI\MainView.py”, line 11, in
from panda3d_frame.GUI.MenuBar import MenuBar
File “C:\Users\Richard\Documents\Frame\panda3d_frame\GUI\MenuBar.py”, line 12, in
from DirectGuiExtension.DirectMenuBar import DirectMenuBar
ModuleNotFoundError: No module named ‘DirectGuiExtension.DirectMenuBar’ <<<<======================

C:\Users\Richard\Documents\Frame>FRAMEs main.py
‘FRAMEs’ is not recognized as an internal or external command,
operable program or batch file.

C:\Users\Richard\Documents\Frame>py FRAMEs main.py
C:\Users\richa\AppData\Local\Programs\Python\Python311\python.exe: can’t open file ‘C:\Users\Richard\Documents\Frame\FRAMEs’: [Errno 2] No such file or directory

If you haven’t fallen off your chair laughing, fallen asleep or lost interest, any advice, help you can offer would be greatly appreciated.

Thanks, Richard

post script ( a few hours later)
I read all .py files into PyScripter & ran them through the indent checker - no errors (I didn’t expect any - also didn’t expect that many blxxdy files - another feature of python ?
16:03 17/04/23 - God, how boring… :upside_down_face: :upside_down_face:

  • don’t understand these emoji things either - hope they don’t cause offence! (non intended)

Open the text file requirements.txt and fix it:

panda3d>=1.10.11
DirectFolderBrowser>=22.10
DirectGuiExtension>=22.10

To this:

panda3d>=1.10.11
DirectFolderBrowser>=22.1
DirectGuiExtension>=22.9

Ah yes, the source versions are working only with the development versions which don’t have a release on pypi yet. I’ll probably provide some more updated versions soon since there has been a few additions like the DirectMenuBar. In the meantime, the best you could do for now is, if you want to run the FRAME from source also install the dependencies from source:

Simply run python setup.py install --user from the directory where the setup.py file is in for both dependencies (and probably also for all editors you want to try).

I initially planed to make a new release as soon as I have a working version of the NodeEditor with the new node loader and python AST support and so on, but since that task is taking up some more time, I’ll probably create at least an interim release for the other packages.

1 Like

Thanks for the reply, as mentioned above already carried out the changes - still doesn’t work though !

Again, thanks for the timme and trouble taken to reply, for the time being I’ve got enough to be going on with trying to understand the fundamentals of py and p3d … look forward to the update when it happens.
Regards
Richard