Book description
Join the game development revolution today! XNA 3.0 greatly simplifies the development of your own games, lowering the barrier for programmers to get into game development. In XNA, you can start coding your games from the very start, a true revelation compared to other game programming environments. XNA doesn't sacrifice power for this ease of use—it is built entirely on DirectX technology.
Completely updated for XNA 3.0, expert Riemer Grootjans brings together a selection of the hottest recipes in XNA programming for the Xbox 360, PC, and Zune. Advanced XNA programmers, experienced coders new to game development, and even complete beginners will find XNA 3.0 Game Programming Recipes an invaluable companion whether building games for fun or as commercial products.
Table of contents
-
XNA 3.0 Game Programming Recipes: A Problem-Solution Approach
- Title Page
- Copyright
- Dedication
- Contents at a Glance
- Contents
- About the Author
- About the Technical Reviewer
- Acknowledgments
- Introduction
-
Chapter 1: Getting Started with XNA 3.0
- 1-1. Install XNA Game Studio 3.0
- 1-2. Start Your First XNA 3.0 Project
- 1-3. Deploy Your XNA 3.0 Game on Xbox 360
- 1-4. Deploy Your XNA 3.0 Game on the Zune
- 1-5. Deploy Your XNA 3.0 Game on Another PC
- 1-6. Customize Game Loop Timing
- 1-7. Make Your Code Plug-and-Play Using GameComponents
- 1-8. Allow Your GameComponents to Communicate with Each Other by Implementing GameServices
- 1-9. Save and Load Data to or from a File (1/2)
- 1-9. Save and Load Data to or from a File (2/2)
-
Chapter 2: Setting Up Different Camera Modes in Your 3D World
- 2-1. Set Up the Camera: Position, Target, and View Frustum (1/2)
- 2-1. Set Up the Camera: Position, Target, and View Frustum (2/2)
- 2-2. Specify the Target of Your Camera (1/2)
- 2-2. Specify the Target of Your Camera (2/2)
- 2-3. Create a First-Person Shooter Camera: A Quake-Style Camera (1/2)
- 2-3. Create a First-Person Shooter Camera: A Quake-Style Camera (2/2)
- 2-4. Create a Freelancer-Style Camera: Full 3D Rotation Using Quaternions (1/2)
- 2-4. Create a Freelancer-Style Camera: Full 3D Rotation Using Quaternions (2/2)
- 2-5. Check Whether an Object Is in Sight of the Camera (1/2)
- 2-5. Check Whether an Object Is in Sight of the Camera (2/2)
- 2-6. Detect Camera Collision Against Models, Walls, or Terrains
- 2-7. Create a Camera Fly-by Action (1/2)
- 2-7. Create a Camera Fly-by Action (2/2)
- 2-8. Remove the Solid Background Color: Skybox (1/3)
- 2-8. Remove the Solid Background Color: Skybox (2/3)
- 2-8. Remove the Solid Background Color: Skybox (3/3)
- 2-9. Draw Only the Parts of the Scene That Are in Sight of the Camera: Octree (1/5)
- 2-9. Draw Only the Parts of the Scene That Are in Sight of the Camera: Octree (2/5)
- 2-9. Draw Only the Parts of the Scene That Are in Sight of the Camera: Octree (3/5)
- 2-9. Draw Only the Parts of the Scene That Are in Sight of the Camera: Octree (4/5)
- 2-9. Draw Only the Parts of the Scene That Are in Sight of the Camera: Octree (5/5)
- 2-10. Use a Quadtree to Hide Parts of a Grid That Are Not in Sight (1/2)
- 2-10. Use a Quadtree to Hide Parts of a Grid That Are Not in Sight (2/2)
- 2-11. Create a Real-Time Camera-Dependant Optimally Adapting Mesh (ROAM) Terrain (1/5)
- 2-11. Create a Real-Time Camera-Dependant Optimally Adapting Mesh (ROAM) Terrain (2/5)
- 2-11. Create a Real-Time Camera-Dependant Optimally Adapting Mesh (ROAM) Terrain (3/5)
- 2-11. Create a Real-Time Camera-Dependant Optimally Adapting Mesh (ROAM) Terrain (4/5)
- 2-11. Create a Real-Time Camera-Dependant Optimally Adapting Mesh (ROAM) Terrain (5/5)
- 2-12. Set Up a Post-Processing Framework (1/3)
- 2-12. Set Up a Post-Processing Framework (2/3)
- 2-12. Set Up a Post-Processing Framework (3/3)
- 2-13. Create a Blur/Glow Post-Processing Effect (1/3)
- 2-13. Create a Blur/Glow Post-Processing Effect (2/3)
- 2-13. Create a Blur/Glow Post-Processing Effect (3/3)
- 2-14. Write a Custom Content Importer (1/2)
- 2-14. Write a Custom Content Importer (2/2)
-
Chapter 3: Working with 2D Images/Textures in XNA 3.0
- 3-1. Display 2D Images: Load and Render Images Using the SpriteBatch Class (1/2)
- 3-1. Display 2D Images: Load and Render Images Using the SpriteBatch Class (2/2)
- 3-2. Rotate, Scale, and Mirror an Image
- 3-3. Render Transparent Images Using Layers
- 3-4. Consider Performance When Using the SpriteBatch Class
- 3-5. Display Text
- 3-6. Create a 2D Menu Interface (1/3)
- 3-6. Create a 2D Menu Interface (2/3)
- 3-6. Create a 2D Menu Interface (3/3)
- 3-7. Create a Texture, Define the Color of Each Pixel, Save a Texture to a File
- 3-8. Render the Scene into a Texture
- 3-9. Extend the Image Content Processor (1/3)
- 3-9. Extend the Image Content Processor (2/3)
- 3-9. Extend the Image Content Processor (3/3)
- 3-10. Extend the Image Content Processor: Grayscale Conversion and Processor Parameters
- 3-11. Make Your Scene More Impressive with Billboarding: Render 2D Images in a 3D World So They Always Face the Camera (1/5)
- 3-11. Make Your Scene More Impressive with Billboarding: Render 2D Images in a 3D World So They Always Face the Camera (2/5)
- 3-11. Make Your Scene More Impressive with Billboarding: Render 2D Images in a 3D World So They Always Face the Camera (3/5)
- 3-11. Make Your Scene More Impressive with Billboarding: Render 2D Images in a 3D World So They Always Face the Camera (4/5)
- 3-11. Make Your Scene More Impressive with Billboarding: Render 2D Images in a 3D World So They Always Face the Camera (5/5)
- 3-12. Create a 3D Explosion Effect/Simple Particle System (1/3)
- 3-12. Create a 3D Explosion Effect/Simple Particle System (2/3)
- 3-12. Create a 3D Explosion Effect/Simple Particle System (3/3)
- 3-13. Create a Mirror: Projective Texturing (1/3)
- 3-13. Create a Mirror: Projective Texturing (2/3)
- 3-13. Create a Mirror: Projective Texturing (3/3)
-
Chapter 4: Working with Models
- 4-1. Load and Render a Model Using the BasicEffect Class
- 4-2. Set Different World Matrices for Different Objects, Combining World Matrices (1/2)
- 4-2. Set Different World Matrices for Different Objects, Combining World Matrices (2/2)
- 4-3. Find the Rotation Angle Corresponding to a Direction
- 4-4. Use Acceleration to Control Velocity
- 4-5. Construct the Global BoundingSphere Around a Model
- 4-6. Scale the Model to a Predefined Size
- 4-7. Render a Model Using Custom Effects and Custom Textures (Easy Approach)
- 4-8. Visualize the Bone Structure of a Model (1/2)
- 4-8. Visualize the Bone Structure of a Model (2/2)
- 4-9. Make the Bones Move Individually: Model Animation
- 4-10. Use BoundingSpheres for Basic Model Collision Detection (1/2)
- 4-10. Use BoundingSpheres for Basic Model Collision Detection (2/2)
- 4-11. Use Ray-Traced Collision Detection for Small/Fast Objects
- 4-12. Extend the Model Content Processor to Load Custom Effects (Clean Approach) (1/2)
- 4-12. Extend the Model Content Processor to Load Custom Effects (Clean Approach) (2/2)
- 4-13. Gain Direct Access to Vertex Position Data by Extending the Model Processor
- 4-14. Gain Direct Access to Vertex Position Data of Each ModelMesh by Extending the Model Processor
- 4-15. Gain Direct Access to Vertex Position Data by Defining a Custom TypeWriter and TypeReader (1/3)
- 4-15. Gain Direct Access to Vertex Position Data by Defining a Custom TypeWriter and TypeReader (2/3)
- 4-15. Gain Direct Access to Vertex Position Data by Defining a Custom TypeWriter and TypeReader (3/3)
- 4-16. Store Multiple Objects in the Tag Property by Defining a Custom TypeWriter and TypeReader (1/2)
- 4-16. Store Multiple Objects in the Tag Property by Defining a Custom TypeWriter and TypeReader (2/2)
- 4-17. Correctly Tilt a Model According to the Terrain Underneath (1/3)
- 4-17. Correctly Tilt a Model According to the Terrain Underneath (2/3)
- 4-17. Correctly Tilt a Model According to the Terrain Underneath (3/3)
- 4-18. Detect Ray-Model Collisions Using Per-Triangle Checks (1/2)
- 4-18. Detect Ray-Model Collisions Using Per-Triangle Checks (2/2)
- 4-19. Detect Whether the Pointer Is Over a Model
-
Chapter 5: Getting the Most Out of Vertices
- 5-1. Render Triangles, Lines, and Points in a 3D World (1/3)
- 5-1. Render Triangles, Lines, and Points in a 3D World (2/3)
- 5-1. Render Triangles, Lines, and Points in a 3D World (3/3)
- 5-2. Apply a Texture to Your Triangles (1/2)
- 5-2. Apply a Texture to Your Triangles (2/2)
- 5-3. Remove Redundant Vertices Using Indices
- 5-4. Store Your Vertices and Indices in the Memory of Your Graphics Card Using a VertexBuffer and an IndexBuffer (1/2)
- 5-4. Store Your Vertices and Indices in the Memory of Your Graphics Card Using a VertexBuffer and an IndexBuffer (2/2)
- 5-5. Store Your Frequently Updated Vertices in a DynamicVertexBuffer
- 5-6. Enable Backface Culling: What It Is and What It Can Do for You
- 5-7. Automatically Calculate the Normals for All Vertices in a VertexBuffer (1/2)
- 5-7. Automatically Calculate the Normals for All Vertices in a VertexBuffer (2/2)
- 5-8. Create a Terrain Based on a VertexBuffer and an IndexBuffer (1/2)
- 5-8. Create a Terrain Based on a VertexBuffer and an IndexBuffer (2/2)
- 5-9. Calculate the Exact Height of a Terrain Between Vertices Using Bilinear Interpolation (1/2)
- 5-9. Calculate the Exact Height of a Terrain Between Vertices Using Bilinear Interpolation (2/2)
- 5-10. Calculate the Collision Point Between the Pointer and the Terrain: Surface Picking (1/2)
- 5-10. Calculate the Collision Point Between the Pointer and the Terrain: Surface Picking (2/2)
- 5-11. Load Data from an XML File (1/2)
- 5-11. Load Data from an XML File (2/2)
- 5-12. Create Your Own Vertex Format (1/2)
- 5-12. Create Your Own Vertex Format (2/2)
- 5-13. Work with Bump Mapping: Fixed Normal
- 5-14. Add Per-Pixel Detail by Bump Mapping in Tangent Space (1/3)
- 5-14. Add Per-Pixel Detail by Bump Mapping in Tangent Space (2/3)
- 5-14. Add Per-Pixel Detail by Bump Mapping in Tangent Space (3/3)
- 5-15. Add an Ocean to Your 3D World (1/3)
- 5-15. Add an Ocean to Your 3D World (2/3)
- 5-15. Add an Ocean to Your 3D World (3/3)
- 5-16. Apply Catmull-Rom Interpolation in 3D to Generate Additional Vertices
- 5-17. Create the Vertices for a Racing Track (1/2)
- 5-17. Create the Vertices for a Racing Track (2/2)
-
Chapter 6: Adding Light to Your Scene in XNA 3.0
- 6-1. Define Normals and Use the BasicEffect (1/2)
- 6-1. Define Normals and Use the BasicEffect (2/2)
- 6-2. Share Normals Between Vertices
- 6-3. Add Higher Detail to Your Lighting: Per-Pixel Lighting
- 6-4. Add Specular Highlights to Reflective Surfaces
- 6-5. Add HLSL Vertex Shading (1/2)
- 6-5. Add HLSL Vertex Shading (2/2)
- 6-6. Define a Point Light Using HLSL
- 6-7. Add HLSL Per-Pixel Lighting
- 6-8. Define a Spotlight Using HLSL
- 6-9. Add HLSL Specular Highlights
- 6-10. Add Multiple Lights to Your Scene Using Deferred Shading (1/4)
- 6-10. Add Multiple Lights to Your Scene Using Deferred Shading (2/4)
- 6-10. Add Multiple Lights to Your Scene Using Deferred Shading (3/4)
- 6-10. Add Multiple Lights to Your Scene Using Deferred Shading (4/4)
- 6-11. Add Shadowing Capability to Your Deferred Shading Engine (1/2)
- 6-11. Add Shadowing Capability to Your Deferred Shading Engine (2/2)
- Chapter 7: Adding Sounds to Your XNA 3.0 Project
-
Chapter 8: Networking in XNA 3.0
- 8-1. Sign In for Networking Services
- 8-2. Create a Network Session (1/2)
- 8-2. Create a Network Session (2/2)
- 8-3. Join a Network Session (1/2)
- 8-3. Join a Network Session (2/2)
- 8-4. Send/Receive Data Over the Network (1/2)
- 8-4. Send/Receive Data Over the Network (2/2)
- 8-5. Search for Networking Sessions Asynchronously
- 8-6. Add Rich Presence Information
- 8-7. Move from the Lobby to the Actual Game
- Index (1/4)
- Index (2/4)
- Index (3/4)
- Index (4/4)
Product information
- Title: XNA 3.0 Game Programming Recipes: A Problem-Solution Approach
- Author(s):
- Release date: May 2009
- Publisher(s): Apress
- ISBN: 9781430218555
You might also like
book
XNA 4.0 Game Development by Example Beginner's Guide
" Create your own exciting games with Microsoft XNA 4.0 Dive headfirst into game creation with …
book
Mastering LibGDX Game Development
Leverage the power of LibGDX to create a fully functional, customizable RPG game for your own …
book
Learning LibGDX Game Development - Second Edition
Wield the power of the LibGDX framework to create a cross-platform game In Detail LibGDX is …
book
Agile Visualization with Pharo: Crafting Interactive Visual Support Using Roassal
Use the Pharo interactive development environment to significantly reduce the cost of creating interactive visualizations. This …