Panda3D

Panda3D

infobox software
developed_by = Disney
latest_release_version = 1.5.3
latest preview version = 1.5.4
latest_release_date = September 18, 2008
operating_system = Microsoft Windows, Linux, Mac OS X
genre = Game Engine
license = Revised BSD( [http://panda3d.org/license.php Panda3D License] for versions before May 28, 2008)
website = http://panda3d.org/

Panda3D is a game engine: a library of subroutines for 3D rendering and game development. It includes graphics, audio, I/O, collision detection, and other abilities relevant to the creation of 3D games. [ cite web | url = http://panda3d.org/wiki/index.php/Main_Page | title = Panda3D Manual]

Panda3D is open source and, as of May 28, 2008, free software under the revised BSD license. Releases prior to May 28, 2008, unfortunately, are not truly Free Software due to certain errors in the design of the old Panda3D license. Even so, older releases of Panda3D can also be used for both free and commercial game development at no financial cost.

Panda3D's intended game-development language is Python. Although the engine itself is writtenin C++, it utilizes an automatic wrapper-generator to expose the complete functionality of theengine to the Python user. It also integrates with Python's garbage collector: engine structures areusually automatically managed. The manual and the sample programs use Python. Though, since the engine is written in C++, it is also callable from C++ code. It is not uncommon that developers choose to use Panda3D with C++ instead of python.

The users of Panda3D include several large commercial games, a few open source projects, and a number ofuniversity courses that leverage Panda3D's short learning curve. The community is small but active,questions on [http://panda3d.org/phpbb2 the forum] are generally answered within an hour.

Design

Panda3D is a scene graph engine. [ cite web | url = http://panda3d.org/wiki/index.php/The_Scene_Graph | title = Panda3D Manual Chapter: 'The Scene Graph'] This means that the virtual world is initially an empty cartesian spaceinto 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 ora sword. Both large and small models are created using a standard modeling programs such as Max or Maya,loaded into Panda3D, and then inserted into the cartesian space.

The Panda3D scene graph exposes the functionality of OpenGL and DirectX in a fairly literalform. For instance, OpenGL and DirectX both have fog capabilities. To enable fog in Panda3D, onesimply stores the fog parameters on a node in the scene graph. The fog parametersexactly 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 themis that it stores the scene, whereas OpenGL and DirectX do not. Of course, italso 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 slowto leverage modern per-pixel lighting techniques in their games. The developers theorizethat this is because shader programming can bequite 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 synthesizeshaders 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 thatexceeds the capabilities of the fixed-function pipeline. [ cite web | url = http://panda3d.org/wiki/index.php/The_Shader_Generator | title = Panda3D Manual Chapter: 'The Shader Generator'] The intent of the synthesis is to render the model as the modeler intended, without any interventionfrom the programmer.

Currently, the engine supports most modern per-pixel lighting techniques, with one glaring omission: dynamic shadows. Although it is possible to implement dynamic shadowsusing Panda3D by writing the necessary shaders oneself, it is not easy to do. The developersrecognize this as a serious limitation and plan to expand the shader generator's capabilitiesto incorporate this feature in the next year or so.

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, utilizing either FMOD, OpenAL or Miles Sound System.
* Collision detection.
* Physics system, and full integration for the Open Dynamics Engine.
* Keyboard and Mouse support.
* Support for unusual I/O devices.
* Finite state machines.

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 theengine they created for that was eventually to become 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, an online game set in a cartoon world. [ cite web | url = http://www.gamasutra.com/features/20040128/goslin_01.shtml | title = Gamasutra Postmortem: Disney's Toontown (discusses history of Panda3D)]

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." [ cite web | url = http://www.etsimo.uniovi.es/python/pycon/dc2004/papers/29/ | title = Proceedings, PyCon 2004: The Panda3D Engine - Python Scripting for Game and Simulation Development] 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 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." [ cite web | url = http://www.gamedev.net/reference/business/features/08AGDC1/page3.asp | title = GameDev.net coverage of Game Developer's Conference, Austin, 2008 ] However, since that phrase has largelylost its meaning, the word "Panda3D" is rarely thought of as an acronym any more.

oftware License

At Wednesday 28 May 2008, the trunk of Panda3D development switched to the BSD license. Binaries and source of version 1.5.3 are now available under this license. However, old releases still use the old license. [ cite web | url = http://panda3d.org/wiki/index.php/Introduction_to_Panda | title = Panda3D Manual Chapter: 'Introduction to Panda' ] The information below is about the old license.

In 2002, when the engine was open sourced, the goal of the developers was to create a Free Software license. However, certain mistakes were made, and the resulting license is not Free Software. The following is the rights-granting portion of the license:

Licensor hereby grants to any person obtaining a copy of the Software a nonexclusive license to use, copy, modify, merge, publish, distribute, and/or sublicense copies of the Software, and to permit persons to whom the Software is furnished to do so, on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. [ cite web | url = http://panda3d.org/license.php | title = Panda3D License, Official Site.]

This clause is typical of a Free Software license. Among other things, it allows the creation of free games and commercial games at no charge. Most of the license is fairly typical Free Software boilerplate. However, there are two clauses in the license that are not free. The first of these is:

An electronic copy of the source code for major modifications that You make to the Software should be forwarded to Licensor at Panda.Project@Disney.com...

This clause arguably requires you to give any modifications you make back to Disney. This is not allowed in a Free Software license: a true Free Software license allows you to keep modifications to yourself. The second clause that is not Free Software compatible is as follows:

The Software may not be downloaded or otherwise exported or reexported into (or to a national or resident of) Cuba, Libya, North Korea, Iran, Syria, or any other country to which the U.S. has embargoed goods...

The intent of this clause was merely to avoid liability by complying with US export law. However, this was a mistake. A Free Software license may not discriminate against Cubans, Libyans, and so forth. Even if the law discriminates, the license is not allowed to be a party to that discrimination or to fuel it.

In addition, Panda3D makes use of several third party libraries whose licenses are also not Free Software, including FMOD, FFTW, and ARToolKit. The developers have admitted these shortcomings and are in the process of changing the particularly onerous terms of the license to meet the requirements of Free Software.

Users

Here is a partial list of companies and commercial products that utilize Panda3D:
* [http://play.toontown.com/ Disney's Toontown]
* [http://disney.go.com/pirates/online/ Disney's Pirates of the Caribbean Online]
* [http://www.code3d.com/ SimOps Studios: Code3D]
* [http://www.msapoliceline.com/thermal_enforcer.html MSA's Thermal Enforcer]
* [http://gamefinder.disney.go.com/ Little Mermaid Pinball, Aladdin Pinball, and Pirates Pinball]

Here is an incomplete list of free software projects building on Panda3D:
* [http://aff2aw.com/index.html Angels Fall First: Second Antarean War]
* La Granja de Los Poderosos
* [http://heartseed.sourceforge.net/ HeartSeed]
* [http://herdelia.com/ Herdelia]
* [http://groups.google.com/group/vikings-dev Vikings]

References

External links

* [http://panda3d.org/ Panda3D home site]
* [http://www.devmaster.net/engines/engine_details.php?id=95 Devmaster.net listing of Panda3D] (very outdated)


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Panda3D — Тип Игровой движок Разработчик Disney, CMU …   Википедия

  • Panda3D — Entwickler Disney, Carnegie Mellon University ETC, Community Aktuelle Version 1.7.2 (7. März 2011) Betriebssystem Plattformunabhängig Kategorie Spiel Engine Lizenz …   Deutsch Wikipedia

  • Panda3D — Le logo officiel de Panda3D, un panda portant des lunettes 3D. Panda3D est le moteur graphique (Engine) de la plupart des jeux Disney Online. Il est notamment utilisé pour le jeu Disney s Toontown Online. C est un mélange de Python de C++. Il se… …   Wikipédia en Français

  • Panda3D (графический движок) — Panda3D Тип игровой движок Написана на C++ ОС кроссплатформенное программное обеспечение Версия 1.6.2 (14 мая 2009) …   Википедия

  • List of game engines — Many tools called game engines are available for game designers to code a game quickly and easily without building from the ground up. Contents 1 Free and open source 2 Proprietary 2.1 Commercial 2.2 Freeware …   Wikipedia

  • Liste der Spiel-Engines — Die Artikel Liste der Spiel Engines und Spiel Engine#Bekannte Engines überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte …   Deutsch Wikipedia

  • Game engine — A game engine is a system designed for the creation and development of video games. There are many game engines that are designed to work on video game consoles and personal computers. The core functionality typically provided by a game engine… …   Wikipedia

  • List of file formats — This is an incomplete list, which may never be able to satisfy particular standards for completeness. You can help by expanding it with reliably sourced entries. See also: List of file formats (alphabetical) This is a list of file formats… …   Wikipedia

  • Toontown Online — Toontown Toontown Online Official Logo Developer(s) Walt Disney Internet Group Publisher(s) …   Wikipedia

  • Andy Luckey — Infobox Person name = Andrew A. Andy Luckey image size = 152x215 caption = birth date = 1965 birth place = San Francisco, California death date = death place = occupation = Television Producer, Author, Illustrator, Animator, Designer, Artist,… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”