What does Panda3D need?

I wonder if Stackless integration would make “multi-threading” easier?

I think that the documentation should be improved first.

I am an experienced Python programmer and started Panda programming (just for fun) a few months ago.

Let me tell you about my impressions:

The web site design should be improved.
For example, I was totally surprised by the 1.4.0 release.

  • I’d like to see the News section to be updated more frequently (please add drop a line there once in a while for work in progress, not just when a new version released).
  • Perhaps a Wiki for the documentation would make sense.
  • In many cases, I found out how to use a some feature only by browsing through the various forums. For example, how to use a joystick or how to set up split-screen.
  • Other important features of the system are missing documentation. In particular, how to write a network game. I don’t even get an idea of the concept. I guess it’s to add a layer above the render model tree that sends all changes to all clients, but I really don’t know. A simple example how different players can move and interact in a 3D world would help a lot. I’m thinking here about simple VR example where players can talk to each other and can push each other (based on the roaming ralph example).
  • OSD text rendering for big texts like a full-screen “Game Over” is ugly.
  • The 1.4.0 change log mentions a new text rendering mode. But it’s not documented in the manual. I guess it could be a solution to the last problem, but I didn’t test it, because I don’t get an idea how to use the new feature…
  • The documentation should be linked together (in a wiki sense): It would help a lot if, for anything mentioned in the manual or the reference manual, pointers to examples using that feature would be included.
  • The screen shots are nice, they show what is possible. But they don’t really help; they should link to a page describing what is special about it from a developers point of view, ideally with code fragments or full downloads.

Hmm.
I just found out that in fact the online manual is a wiki.
This is not obvious when browsing the site.
Maybe it should be mentioned on manual start page that everyone can help to improve the documentation.

I gave it a try and update the manual page for joystick support; adding a call to pygame.events.get().
But the page wasn’t rendered as expected, then.
I am used to the [moinmoin.wikiwikiweb.de: MoinMoin] wiki syntax, and I was unable to render a series of 3 python comment lines ‘as is’ - the wiki software always turned them into a numbered list.
Then I clicked on the “Help on Editing” link; only to find that a help page does not exist.

I really think the documentation and the web site should be improved first…

  1. Better organized/more complete documentation. Example - Instead of having just an A-Z list of the classes, functions, and methods, split those lists up into specific categories.

  2. Include a simple multiplayer example in the feature tutorials

We intentionally hide the fact that the manual is a wiki, because we feel a person should use panda for a week or two before they start editing the manual. Just a quality-control thing. I figure that after a week or two, most people will notice the “wiki” in the manual links.

I should mention - this wish list is cool, but the fact is, nothing’s going to get done unless somebody volunteers.

The Disney team is always working hard on a game that uses panda. In the process of working on that game, they’re constantly improving panda. But the realities of commercial software development being what they are, they can’t spend a lot of time on any panda features that don’t contribute directly to the game they’re working on.

As for the Carnegie-Mellon team, that’s me. And I’m a professor with a full-time teaching load. I put in time on Panda as well, but most of it gets used up dealing with OS and driver compatibility issues. Not much time left for adding features. However, I do think I have time to finish my new improved movie-player/free audio manager for panda.

This fall, I’ll have some students who will be able to put in a little time on panda too. They’ll probably be able to improve the manual a little, and work on the stylistic aspects of the website.

Beyond that, it needs to come from the community. Fortunately, the community has recently become much more active. I see an awful lot of useful panda features being developed out there - the shadow codes, the text console, the OpenAL audio managers, etc. Now that there are so many, we need to set up some way for me to integrate these into panda.

My suggestion is that if you would like to see one of these integrated into the panda codebase, then here’s what you have to do: get it polished up to the point where you feel it’s ready for inclusion, then send me an email. (etc-panda3d@lists.andrew.cmu.edu). If it’s clean and ready-to-go, I’ll be able to integrate it very quickly.

I just added Syntax Highlighting support to the Manual.

If anyone still spots an old

 tag, please replace it with  or  (or other languages, use  to get a list).

I’ve also split the C++ and Python manuals - hit the C++ link at the top of a page to get the C++ version of a manual page. Only the first pages (especially Hello World tutorial) but more will come later.

The new syntax is explained here:
panda3d.org/manual/index.php/Talk:Main_Page