Panda3D 1.6 Game Engine Beginner's Guide

This is the A-Z of Panda3D for developers who have never used the engine before. Step-by-step, it takes you from first principles to ultimately creating a marketable game. You’ll learn through first-hand experience and clear explanations.

Panda3D 1.6 Game Engine Beginner's Guide

Beginner's Guide
David Brian Mathews

This is the A-Z of Panda3D for developers who have never used the engine before. Step-by-step, it takes you from first principles to ultimately creating a marketable game. You’ll learn through first-hand experience and clear explanations.
$10.00
$44.99
RRP $26.99
RRP $44.99
eBook
Print + eBook
$12.99 p/month

Get Access

Get Unlimited Access to every Packt eBook and Video course

Enjoy full and instant access to over 3000 books and videos – you’ll find everything you need to stay ahead of the curve and make sure you can always get the job done.

+ Collection
Free Sample

Book Details

ISBN 139781849512725
Paperback356 pages

About This Book

  • 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

Who This Book Is For

If you are an independent developer  interested in creating your own video games or other 3D applications using Panda3D for personal or commercial distribution at minimal expense, this book is definitely for you. A basic understanding of general programming, such as familiarity with the concept of a variable, is necessary. Some familiarity with object-oriented programming and the Python language is expected, but not essential.

This book does not cover the creation of three dimensional models or similar art assets, nor does it cover the creation of two dimensional art assets or audio assets.

Table of Contents

Chapter 1: 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
Chapter 2: 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
Chapter 3: 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
Chapter 4: 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
Chapter 5: 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
Chapter 6: 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
Chapter 7: 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
Chapter 8: 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
Chapter 9: 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
Chapter 10: 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
Chapter 11: 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
Chapter 12: 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

What You Will Learn

  • 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

In Detail

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.

Authors

Table of Contents

Chapter 1: 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
Chapter 2: 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
Chapter 3: 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
Chapter 4: 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
Chapter 5: 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
Chapter 6: 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
Chapter 7: 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
Chapter 8: 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
Chapter 9: 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
Chapter 10: 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
Chapter 11: 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
Chapter 12: 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

Book Details

ISBN 139781849512725
Paperback356 pages
Read More

Recommended for You

Panda3D 1.7 Game Developer's Cookbook
$ 10.00
Instant Data Intensive Apps with pandas How-to
$ 10.00
Google SketchUp for Game Design: Beginner's Guide
$ 10.00