Switch to the store?

Panda3D 1.6 Game Engine Beginner's Guide

More Information
  • Create and use tasks
  • Respond to and handle events
  • Implement texturing with built-in shaders
  • Exercise collision detection
  • Implement a graphical user interface
  • Utilize the Panda3D animation system
  • Master the power and purpose of intervals
  • Add audio and use the OpenAL library
  • Understand garbage collection
  • Package the game into an installer
  • Use Spacescape and explosion texture generator to create certain art assets

Panda3D is a game engine, a framework for 3D rendering and game development for Python and C++ programs. It includes graphics, audio, I/O, collision detection, and other abilities relevant to the creation of 3D games. Also, Panda3D is Open Source and free for any purpose, including commercial ventures. This book will enable you to create finished, marketable computer games using Panda3D and other entirely open-source tools and then sell those games without paying a cent for licensing.

Panda3D 1.6 Game Engine Beginner's Guide follows a logical progression from a zero start through the game development process all the way to a finished, packaged installer. Packed with examples and detailed tutorials in every section, it teaches the reader through first-hand experience. These tutorials are followed by explanations that describe what happened in the tutorial and why.

You will start by setting up a workspace, and then move on to the basics of starting up Panda3D. From there, you will begin adding objects like a level and a character to the world inside Panda3D. Then the book will teach you to put the game's player in control by adding change over time and response to user input. Then you will learn how to make it possible for objects in the world to interact with each other by using collision detection and beautify your game with Panda3D's built-in filters, shaders, and texturing. Finally, you will add an interface, audio, and package it all up for the customer.

  • The first and only guide to building a finished game using Panda3D
  • Learn about tasks that can be used to handle changes over time
  • Respond to events like keyboard key presses, mouse clicks, and more
  • Take advantage of Panda3D's built-in shaders and filters to decorate objects with gloss, glow, and bump effects
  • Follow a step-by-step, tutorial-focused process that matches the development process of the game with plenty of screenshots and thoroughly explained code for easy pick up
Page Count 356
Course Length 10 hours 40 minutes
Date Of Publication 9 Feb 2011
Getting started with Panda3D installation packages
Time for action – downloading and installing Panda3D
Switching to an advanced text editor
Time for action – downloading and installing Notepad++
Installing the game content
Time for action – demoing Suicide Jockeys
Installing optional tools
Setting up a new file in Notepad++
Time for action – setting up a new file in Notepad++
Importing Panda3D components
Time for action – importing DirectStart
Creating a World Object
Time for action – creating a World Object
Loading the terrain
Time for action – loading the terrain
Loading files into Panda3D
NodePaths and nodes
Time for action – introducing NodePaths and nodes
Time for action – manipulating NodePaths
The Scene Graph
Time for action – understanding parent child inheritance
Time for action – explaining relative coordinate systems
Loading a file multiple times
Render attributes
Time for action – demonstrating render attributes
The task manager
Time for action – printing the task list from the task manager
Time for action – creating a task and adding it to the task manager
Time for action – looking at task statistics
Time for action – using doMethodLater
Using delta time
Time for action – using delta time
Over viewing task return options
Time for action – exploring task return options
Prioritizing tasks
Removing tasks from the task manager
Time for action – removing tasks by name
Dissecting task objects
Working with events
Time for action – registering and responding to events
Using keyboard events
Time for action – creating and using a key map
Implementing advanced cycle controls
Time for action – implementing acceleration
Time for action – implementing throttle control
Time for action – implementing turning
Utilizing mouse input and creating camera control
Time for action – tying the camera to the cycle
Time for action – turning the camera with the mouse position
Ending event response
Importing custom classes
Time for action – making and importing a custom class
Adding NodePath functionality to a custom class
Time for action – defining the Cycle class
Time for action – simulating drift
Accessing classes from within another class
Time for action – adding an input manager
Collision basics: Our first collision system
Time for action – creating a simple collision detection system
Creating inter-cycle collisions
Time for action – inter-cycle collisions
Using BitMasks to organize collisions
Time for action – implementing BitMasks
Time for action – setting a range of bits with BitMask.range
Using Python tags to get colliding objects
Time for action – setting and getting PythonTags
Setting up ground collision
Time for action – creating a ground collision system
Overview of additional collision solids and handlers
Adding lighting
Time for action – adding lights to the game
Applying textures to models
Time for action – creating a bam writer
Time for action – using TextureStages
Creating filters
Time for action – adding a bloom filter
Using a sky sphere
Time for action – adding a sky sphere
Creating a menu system
Time for action – creating a menu system
Putting menus to use
Time for action – using menus
In-game HUD
Time for action – creating a basic HUD
Actors and Animations
Time for action – loading Actors and Animations
Controlling animations
Animation blending
Time for action – blending two animations
Creating and using Actor subparts
Time for action – playing animations on subparts
Exposing joints
Time for action – animating our cycles
Using mouse picking
Time for action – setting up mouse aim
Understanding Intervals, Sequences, and Parallels
Creating machine guns
Time for action – using Intervals in Sequences and Parallels
Time for action – adding collision detection to the MachineGun
Implementing the main cannon
Time for action – creating the main cannon
Adding weapon information to the HUD
Time for action – adding a new HUD section
Handling damage response
Time for action – finalizing weapons with damage response
Editing Config.prc
Time for action – selecting an audio library
Adding music
Time for action – creating background music
Adding sound effects
Time for action – generating 3D audio with Audio3DManager
About sound intervals
Collecting garbage
Time for action – collecting garbage from the Explosion classes
Time for action – collecting garbage from the Gun classes
Time for action – collecting garbage from the Cycle class
Time for action – collecting garbage from the Track class
Creating a preloader
Time for action – creating a preloader to load models
File handling
Time for action – reading data from a file
Customizing the mouse cursor
Time for action – customizing the mouse cursor
Creating an Installer
Time for action – packing a Panda3D game


David Brian Mathews

David Brian Mathews is a graduate in Electronic Visualization program from the University of Illinois at Chicago. He began programming in the fifth grade with QBASIC and has been designing games of various kinds, from table-top board games to computer games, since childhood. Prior to entering higher education, he served for two years in the United States Navy as a nuclear engineer before being honorably discharged for medical reasons, where he learned discipline, advanced mathematics, and nuclear theory, as well as teamwork and leadership skills. During his years in school, Mathews earned valuable experience with professional game development methods working both by himself and with teams. He is skilled at programming, 3D modeling and animation, drawing, and 2D compositing.