Panda3D
   HOME

TheInfoList



OR:

Panda3D is a
game engine A game engine is a software framework primarily designed for the development of video games and generally includes relevant libraries and support programs. The "engine" terminology is similar to the term "software engine" used in the software ...
that includes graphics, audio, I/O,
collision detection Collision detection is the computational problem of detecting the intersection of two or more objects. Collision detection is a classic issue of computational geometry and has applications in various computing fields, primarily in computer grap ...
, and other abilities relevant to the creation of 3D games. Panda3D is free, open-source software under the revised
BSD license BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lice ...
. Panda3D's intended game-development language is Python. The engine itself is written in
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
and utilizes an automatic wrapper-generator to expose the complete functionality of the engine in a Python interface. This approach gives a developer the advantages of Python development, such as rapid development and advanced memory management, but keeps the performance of a compiled language in the engine core. For instance, the engine is integrated with Python's garbage collector, and engine structures are automatically managed. The manual and the sample programs use Python by default, with C++ available as an alternate. Both languages are fully supported. Python is the most commonly used language by developers, but C++ is also common. The users of Panda3D include the developers of several large commercial games, a few open source projects, and a number of university courses that leverage Panda3D's short learning curve. The community is small but active, and questions o
the forum
are generally answered quickly.


History

The Disney VR studio is a branch of Disney that was created to build 3D attractions for Disney theme parks. They built an attraction called "Aladdin's Magic Carpet," and the engine they created for that eventually became Panda3D. The engine in its current form bears little resemblance to those early years. Over time, Panda3D was used for additional VR rides at Disney theme parks, and was eventually used in the creation of ''
Toontown Online ''Toontown Online'', commonly known as ''Toontown'', was a 2003 massively multiplayer online role-playing game based on a cartoon animal world, developed by Disney's Virtual Reality Studio and Schell Games, and published by The Walt Disney Com ...
'', an online game set in a cartoon world, and later for the second
MMORPG A massively multiplayer online role-playing game (MMORPG) is a video game that combines aspects of a role-playing video game and a massively multiplayer online game. As in role-playing games (RPGs), the player assumes the role of a Player charac ...
, ''
Pirates of the Caribbean Online ''Pirates of the Caribbean Online'' was a 3D massively multiplayer online role-playing video game based on the ''Pirates of the Caribbean'' franchise. It was developed and published by Disney Online, in conjunction with SilverTree Media, for ...
''. In 2002, the engine was released as open source. According to the authors, this was so that they "could more easily work with universities on Virtual Reality research projects." However, it took some time for Panda3D to take off as an open-source project. From the article:
The system, although quite usable by the team that developed it, was not quite "open source ready." There were several interested users, but building and installing the system was incredibly complex, and there was little in the way of documentation or sample code, so there was no significant open source community right away.
However, the open-sourcing of the engine allowed Carnegie Mellon's
Entertainment Technology Center The Entertainment Technology Center (ETC) is a department at Carnegie Mellon University in Pittsburgh, Pennsylvania, United States. It is located at the Pittsburgh Technology Center. The ETC offers a two-year Masters of Entertainment Technology ...
to join in the development of the engine. While Disney engineers continued to do the bulk of the development, the Carnegie-Mellon team built a role for itself polishing the engine for public consumption, writing documentation, and adding certain high-end features such as shaders. Panda3D's name was once an acronym: "Platform Agnostic Networked Display Architecture." However, since that phrase has largely lost its meaning, the word "Panda3D" is rarely thought of as an acronym any more.


Design

Panda3D is a
scene graph Scene (from Greek σκηνή ''skēnḗ'') may refer to: Arts, entertainment, and media Music * Scene (subculture), a youth subculture from the early 2000s characterized by a distinct music and style. Groups and performers * The Scene who rec ...
engine. This means that the virtual world is initially an empty Cartesian space into which the game programmer inserts 3D models. Panda3D does not distinguish between "large" 3D models, such as the model of an entire dungeon or island, and "small" 3D models, such as a model of a table or a sword. Both large and small models are created using a standard modeling program such as
Blender A blender (sometimes called a mixer or liquidiser in British English) is a kitchen and laboratory appliance used to mix, crush, purée or emulsify food and other substances. A stationary blender consists of a blender container with a rotating me ...
,
3ds Max Autodesk 3ds Max, formerly 3D Studio and 3D Studio Max, is a professional 3D computer graphics program for making 3D animations, models, games and images. It is developed and produced by Autodesk Media and Entertainment. It has modeling capab ...
, or
Maya Maya may refer to: Civilizations * Maya peoples, of southern Mexico and northern Central America ** Maya civilization, the historical civilization of the Maya peoples ** Maya language, the languages of the Maya peoples * Maya (Ethiopia), a popul ...
. The models are then loaded into Panda3D and inserted into the Cartesian space. The Panda3D scene graph exposes the functionality of OpenGL and DirectX in a fairly literal form. For instance, OpenGL and DirectX both have
fog Fog is a visible aerosol consisting of tiny water droplets or ice crystals suspended in the air at or near the Earth's surface. Reprint from Fog can be considered a type of low-lying cloud usually resembling stratus, and is heavily influ ...
capabilities. To enable fog in Panda3D, one simply stores the fog parameters on a node in the scene graph. The fog parameters exactly match the parameters of the equivalent calls in the underlying APIs. In this way, Panda3D can be seen as a thin wrapper around the lower-level APIs. Where it differs from them is that it stores the scene, whereas OpenGL and DirectX do not. Of course, it also provides higher-level operators, such as loading models, executing animations, detecting collisions, and the like. Panda3D was first engineered before the existence of vertex and pixel shaders. It acquired support for manually written shaders in 2005. However, users have been slow to leverage modern per-pixel lighting techniques in their games. The developers theorize that this is because shader programming can be quite difficult, and that many game developers want the engine to handle it automatically. To remedy this situation, the Panda3D developers have recently given Panda3D the ability to synthesize shaders automatically. This synthesis occurs if the 3D modeler marks a model for per-pixel lighting, or if the modeler applies a normal map, gloss map, self-illumination map, or other capability that exceeds the capabilities of the fixed-function pipeline. The intent of the synthesis is to render the model as the modeler intended, without any intervention from the programmer.


Non-graphical capabilities

Panda3D provides capabilities other than 3D rendering. Chief among these are: * Performance analysis tools * Scene graph exploration tools * Debugging tools * A complete art export/import pipeline * 3D Audio, using either FMOD,
OpenAL OpenAL (Open Audio Library) is a cross-platform audio application programming interface (API). It is designed for efficient rendering of multichannel three-dimensional positional audio. Its API style and conventions deliberately resemble those ...
or Miles Sound System * Collision detection * Physics system, and full integration for the
Open Dynamics Engine The Open Dynamics Engine (ODE) is a physics engine written in C/C++. Its two main components are a rigid body dynamics simulation engine and a collision detection engine. It is free software licensed both under the BSD license and the LGPL. O ...
and Bullet integration * Keyboard and Mouse support * Support for I/O devices * Finite state machines * Networking * Artificial intelligence


Software license


Summary

Panda3D is open source and is, as of May 28, 2008, free software under the revised
BSD license BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lice ...
. Releases prior to that date are not considered
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, n ...
due to certain errors in the design of the old Panda3D license. Despite this, those older releases of Panda3D can also be used for both free and commercial game development at no financial cost.


Evolution

In 2002, when the engine was open sourced, the goal of the developers was to create a
free software license A free-software license is a notice that grants the recipient of a piece of software extensive rights to modify and redistribute that software. These actions are usually prohibited by copyright law, but the rights-holder (usually the author) ...
. However, the license had a few flaws that made it non-free: it arguably required submitting changes to Panda.Project@Disney.com, and it explicitly prohibited the export of the software to various nations against which the United States had trade embargoes. On May 28, 2008, the trunk of Panda3D development switched to the
BSD license BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lice ...
. However, old releases still use the old license. Panda3D makes use of several third-party libraries whose licenses are not
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, n ...
, including FMOD,
Nvidia Cg Cg (short for C for Graphics) and High-Level Shader Language (HLSL) are two names given to a high-level shading language developed by Nvidia and Microsoft for programming shaders. Cg/HLSL is based on the C programming language and although the ...
,
DirectX Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direct" ...
, and MFC. Most of these modules can be easily excluded from the installation, however.


Projects employing Panda3D

* ''
Toontown Online ''Toontown Online'', commonly known as ''Toontown'', was a 2003 massively multiplayer online role-playing game based on a cartoon animal world, developed by Disney's Virtual Reality Studio and Schell Games, and published by The Walt Disney Com ...
'' (defunct) and their private servers * ''
Pirates of the Caribbean Online ''Pirates of the Caribbean Online'' was a 3D massively multiplayer online role-playing video game based on the ''Pirates of the Caribbean'' franchise. It was developed and published by Disney Online, in conjunction with SilverTree Media, for ...
'' (defunct) and their private servers * ''
Ghost Pirates of Vooju Island ''Ghost Pirates of Vooju Island'' is an adventure game developed by Autumn Moon Entertainment and released in 2009. The concept and design were created by William 'Bill' Tiller, who was also responsible for the visual look of ''The Curse of Monkey ...
'' * ''
A Vampyre Story ''A Vampyre Story'' is a 2008 point-and-click adventure game developed by Autumn Moon Entertainment for Windows, published by Crimson Cow. The game is set in Europe during the 1890s, and follows a young female opera singer turned vampire as she ...
''


See also

*
Blender Game Engine The Blender Game Engine was a free and open-source 3D production suite used for making real-time interactive content. It was previously embedded within Blender, but support for it was dropped in 2019, with the release of Blender 2.8. The game en ...
* Pygame *
VRPN VRPN (Virtual-Reality Peripheral Network) is a device-independent, network-based interface for accessing virtual reality peripherals in VR applications. It was originally designed and implemented by Russell M. Taylor II at the Department of Com ...


References


External links

* {{DEFAULTSORT:Panda3d Cross-platform free software Cross-platform software Disney technology Free 3D graphics software Free game engines Free software programmed in C++ Game engines for Linux Python (programming language)-scriptable game engines Software using the BSD license