Panda3D is a game engine which includes graphics, Audio, I/O, Collision detection, And other abilities relevant to the creation of 3D games. Panda 3D's intended game-development language is Python. The engine itself is written in C++, 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. This project creates a simple game using Panda 3D game engine. The game is of role playing genre. That is it will follow a solid story line. This game contains some Real world characters whose movements and appearance are controlled and enhanced by using the libraries and modules of Panda3D. The game contains a human character as its hero and a panda as his protector. The human will start from a starting point and his aim is to reach a target position. While his movement lots of enemies will come in his path and panda must protect him from the enemies. This game is a simple one which is user friendly. It contains simple movement and strategies. It can be enjoyed by people of any age.
Let us have a look at key functions in Panda3D
- loader.loadModel - Loads the file specified as an argument to the method.
- scene graph - This is a tree which contains objects that need to get rendered. Root of the tree is an object called render. render and render2d are default scene graphs.
- setScale - Function to scale the model
- setPosition - Function to obtain the center of the model
- taskMgr.add - This function invokes panda task manager, so that it can call Spin Camera Task every frame.
- SpinCameraTask - Subroutine that is meant to control the camera.
- Actor - A class for animated models
- find() and findAllMatches() - Function will return will return a Node Path and a Node Path Collection respectively
- getParent() - Function returns the Node Path of the parent node.
- getChildren() - Function returns the children of the current node as a Node Path Collection
- enableBlend() - Function to activate the blending mode and indicate your intention to play multiple animations at once
- actor.listJoints() - Function to show the complete hierarchy of joints.
References
http://research.cs.wisc.edu/graphics/Courses/559-f2007/wiki/pub/tutorials/tutPanda/pandaManual.pdf