Welcome to this “Beginner’s Tutorial for Panda3D”!
This tutorial will hopefully teach you the basics of creating a game using the Panda3D engine, from the fundamentals to building a distributable version.
(The GitHub repository for this tutorial can be found here. If you encounter any issues, or want to suggest any improvements, you can file them in the issue-tracker or pull-request-tracker found there!)
Table of Contents
- Start Here
- Information on what the tutorial does and doesn’t teach; a summary of what’s taught; information on the reference-code for the tutorial-game, and where to find it; and information on where to get the assets used.
- Lesson 1: Hello World
- First steps in running a Panda3D window
- Lesson 2: Making a Scene
- How Panda structures its scene; the basics of loading and manipulating models; and the loading and playing of animated models.
- Lesson 3: A Bit of Shading
- Using lights; and the automatic shader-generator
- Lesson 4: Taking Control
- The basics of taking input
- Lesson 5: Our Next Task
- Using tasks to update the game
- Lesson 6: Bumping into Things
- Simple collision-detection
- Lesson 7: Our Game’s Objects
- Making classes for the player and an enemy
- Lesson 8: It’s a Trap!
- Collision-events; and a sliding-trap enemy
- Lesson 9: Mask-erade
- Collision ray-casting; the “queue” collision-handler; and restricting what may collide with what
- Lesson 10: Lasing Around
- Taking mouse-input; and using the “Plane” object to find a 3D point for a 2D mouse-position
- Lesson 11: An Enemy Attacks!
- Giving the “Walking Enemy” a “melee” attack
- Lesson 12: Visibly Healthy
- Showing basic images and text on-screen; shading a character via a colour-scale; and adding feedback to hits
- Lesson 13: Endless Enemies
- Game-logic for placing traps, spawning enemies, updating the various objects, and handling dead enemies
- Lesson 14: Sound Decisions
- Sound and music
- Lesson 15: Your Menu, Sir
- Constructing menus with DirectGUI
- Lesson 16: Packed with a Neat Little Bow
- Building a distributable version of a game
To begin with, I recommend that you start here