Multiple Screen Management

Hey folks,

I am looking at creating an attract mode for a game in Panda3D. Let me start out by saying when I say “screen”, I mean a high level abstraction of what is currently being displayed… not monitors nor desktop windows.

What is the common practice of implementing rotating screens in Panda3D? These screens can contain both 2D and 3D art, so you’d have some demo 3d art such as rotating characters, 2D art would be the high scores screen, etc. Think old 80’s, 90’s arcade games.

I have heard suggestions to use DisplayRegions, although I’m not splitting the current view… Every screen takes up the whole window. I have been looking at using multiple directobject instances (one per screen), but I’m curious as to how this would work.

Any suggestions, would creating an abstract “Screen” class that inherits from DirectObject be the way to go? I’m asking because I haven’t really seen any good demo code for this, and I’m coming from XNA development where things were done in a similar fashion, so forgive the ignorance of getting used to the Panda3D terminology!


Nobody knows a good way to do multiple screen management in a fairly abstract way?

How are you guys currently implementing swaps between your options/intro/loading screens and general gameplay and such?

Thanks! Just trying to get some ideas floating around here.


The tip with DisplayRegions was all you need. You can stack your display regions on top of each other and even have the underlying ones shine through on the alpha channel (just like layers in photoshop).

For 2d GUI I suggest Rocketgui, which separates “screens” in a manner similar to how HTML works. Also the Rocketgui GUIs float on top of your Panda window, in a way. You could basically think of it as of a separate DisplayRegion for 2d GUI only.