PacktLib: Panda3D 1.6 Game Engine Beginner's Guide

Panda3D 1.6 Game Engine

Credits

About the Author

About the Reviewers

www.PacktPub.com

Preface

Installing Panda3D and Preparing a Workspace

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

Summary

Creating the Universe: Loading Terrain

Notepad++

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

Summary

Managing Tasks Over Time

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

Summary

Taking Control: Events and User Input

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

Summary

Handling Large Programs with Custom Classes

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

Summary

The World in Action: Handling Collisions

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

Summary

Making it Fancy: Lighting, Textures, Filters, and Shaders

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

Summary

GUI Goodness: All About the Graphic User Interface

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

Summary

Animating in Panda3D

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

Summary

Creating Weaponry: Using Mouse Picking and Intervals

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

Summary

What's that Noise? Using Sound

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

Summary

Finishing Touches: Getting the Game Ready for the Customer

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

Summary

Creating a Sky Sphere with Spacescape

Creating a Sky Sphere with Spacescape

Creating a Sky Sphere with Spacescape

Creating a Sky Sphere with Spacescape

Creating a Sky Sphere with Spacescape

Creating a Sky Sphere with Spacescape

Creating a Sky Sphere with Spacescape

Creating a Sky Sphere with Spacescape

Creating a Sky Sphere with Spacescape

Creating a Sky Sphere with Spacescape

Creating a Sky Sphere with Spacescape

Using Egg-Texture-Cards and ExploTexGen

Using Egg-Texture-Cards and ExploTexGen

Using Egg-Texture-Cards and ExploTexGen

Using Egg-Texture-Cards and ExploTexGen

Using Egg-Texture-Cards and ExploTexGen

Using Egg-Texture-Cards and ExploTexGen

Using Egg-Texture-Cards and ExploTexGen

Using Egg-Texture-Cards and ExploTexGen

Pop quiz Answers

Pop quiz Answers

Pop quiz Answers

Pop quiz Answers

Pop quiz Answers

Pop quiz Answers

Pop quiz Answers

Pop quiz Answers

Pop quiz Answers

Pop quiz Answers

Pop quiz Answers

Pop quiz Answers

Index