User:Rmyers/Panda3D

From OLPC
Jump to: navigation, search

Panda3D is a FOSS 3D game framework with hooks for Python. This seems like a framework that could be useful for developing 3D content for the XO.

The framework was originally developed by Disney and is used in some of their products, such as the 'Pirates of the Caribbean' online game.

The rights are in the process of being transferred to the Carnegie Mellon University's Entertainment Technology Center.

Panda3D is available with installers for several linux environments including Fedora 7 as is used on the XO.

Panda3D on the XO

I tried downloading and installing Panda#D on an XO using build 708. This attempt was unsucessful, as Panda3D requires OpenGL. I was not able to get a working OpenGL stack installed.

OpenGL is now installed in current Joyrides. I will attempt to install Panda3D in that environment.

Panda3D on a machine of similar performance

I have downloaded it and installed it on another linux box of similar performance to an XO. This is a older Acer AOpen AX6BC with 400MHz PII, 448Mb RAM, and running Fedora 8.

The download was successful, and following instructions on the Panda3D web site, I tried running some of their sample programs. This failed at first. Panda3D expects acceleration for the video card and I had never installed accelerated drivers for my video card (Nvidia FX 5200).

I changed the configuration file and successfully ran most of the demos. See the 'Performance' section below. Some failed for what from the error messages appeared to be video issues. These demos appeared to be looking for advanced features that my card or driver does not support. Some failed for sound issues, given that I did not have desired sound drivers installed.

Performance

Many of the demos ran very slow - on the order of 2fps. This may be an issue on the XO, depending on the performance of the XO video. Slow frame rates may be acceptable to provide a 'step through' animation. Fluid animation may not always be needed.

I am in the process of trying to get accelerated drivers installed on the trial box, to get another speed benchmark.

More on this: NVidia doesn't have a precompiled driver for my software. I've been trying to do a compile. It has been an exercise in peeling onions - each layer solved revels the next error. Meanwhile, it's shooting at a moving target, as NVidia has released a new driver while, I've been trying to get this one working.

All this may be moot as the XO doesn't have any 3D acceleration, so whatever we get installing is what we are stuck with.

Sound

One major issue with Panda3D as it currently stands is sound. It supports two sound libraries, both proprietary. The first and easily dismissed for our needs is Rad Gametools 'Miles Sound System'. This is a commercial product designed to support building commercial products. The other is Firelight Technology's FMOD. FMOD is available with a no cost non-commercial license.

However, the Panda3D manual states "Also note that even without Panda3D's built-in sound support, Python can still be used play sounds through other libraries, such as Pygame, or PyOpenAL."

Educational content possibilities

One of the reasons that I'm exploring Panda3D is that ILXO is discussing a language teaching game activity. The Panda3D website shows screen shots of a game teaching Japanese vocabulary as one of their example projects.