PacktLib: Panda3D 1.6 Game Engine Beginner's Guide

Panda3D 1.6 Game Engine Beginner's Guide

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

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

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