PacktLib: XNA 4 3D Game Development by Example: Beginner's Guide

XNA 4 3D Game Development by Example Beginner's Guide

Credits

About the Author

About the Reviewers

www.PacktPub.com

Preface

Introduction to XNA

System requirements

Installing the Windows Phone SDK

Time for action – installing Windows Phone SDK

Speller – Our first XNA game

Time for action – creating an XNA project

Managing content

Time for action – creating content assets

Member variables

Time for action – declaring new member variables

The Game1 constructor

Initialization

Time for action – customizing the Initialize() method

Loading content

Time for action – creating a square texture

Updating

Time for action – customizing the Update() method

The Draw() method

Time for action – drawing Speller

Helper methods

Time for action – words and letters

Time for action – completing the Speller project

Summary

Cube Chaser – A Flat 3D World

Designing the game

Creating the project

Time for action – creating the Cube Chaser project

Our view of the world

Time for action – beginning the Camera class

The Projection matrix

Looking at something

Time for action – implementing a look-at point

The View matrix

Time for action – the View matrix

From the ground up

Time for action – creating the Maze classes

Drawing the floor

Time for action – drawing the floor

Moving around

Time for action – expanding the Camera

Time for action – letting the player move

Summary

Cube Chaser – It's A-Mazing!

Maze generation

Time for action – defining a MazeCell

Time for action – generating the Maze class

Constructing the walls

Time for action – building walls

Time for action – drawing the walls

Solid walls

Time for action – bouncing off the walls

Summary

Cube Chaser – Finding Your Way

The cube

Time for action – placing the cube

Time for action – rotating the cube

Matrices – big scary math things?

Positioning the cube

Time for action – randomly positioning the cube

Catching the cube

Time for action – catching the cube

Summary

Tank Battles – A War-torn Land

Creating the project

Time for action – creating the Tank Battles project

An arc-ball camera

Time for action – the ArcBallCamera class – part 1

Time for action – finishing the ArcBallCamera class

Building the playfield

Time for action – generating the terrain

Time for action – adding the ReadHeightMap() method

Time for action – adding the BuildVertexBuffer() method

Time for action – the buildIndexBuffer() method

Let's see the terrain already!

Time for action – drawing the terrain

Adding texture – a gentle introduction to HLSL

Time for action – HLSL declarations

Time for action – Vertex Shader Input and Output definition

Time for action – the vertex shader

Time for action – the pixel shader

Time for action – utilizing Terrain.fx

Moving the camera

Time for action – moving the camera with the mouse

Summary

Tank Battles – The Big Guns

Adding the tank model

Time for action – adding the tank model

Building tanks

Time for action – building the Tank class

Time for action – terrain heights

Time for action – tank animation

Time for action – positioning tanks

Summary

Tank Battles – Shooting Things

Interface components

Time for action – creating the UIWidget class

Time for action – creating UITextblocks

Time for action – creating buttons

Time for action – adding the UIHelper class

Time for action – creating the UI

Time for action – responding to events

Time for action – ShotManager-part 1

Time for action – the Particle class-part 1

Time for action – finishing the Particle class

Time for action – the ParticleManager class

Time for action – building Particles.fx

Time for action – implementing particles

Summary

Tank Battles – Ending the War

Managing game states

Time for action – implementing a title screen

Time for action – detecting hits

Managing turns

Time for action – managing turns

Visual improvements

Time for action – computing normals

Time for action – HLSL for lighting

Time for action – using ambient light

Time for action – multitexturing

Summary

Mars Runner

Design of Mars Runner

Getting started with the GSM sample

Time for action – creating the Mars Runner solution

Time for action – customizing the BackgroundScreen class

Time for action – updating the menu

Time for action – creating the MarsRunnerPlayScreen class

A new camera

Time for action – the stationary camera

Creating the background

Time for action – creating a skybox

Building the Martian surface

Time for action – beginning the MarsTrack class

Time for action – generating the track

Time for action – drawing the track

Summary

Mars Runner – Reaching the Finish Line

Abstracting support for 3D models

Time for action – the GameEntity class

Building the rover

Time for action –building the rover

Time for action – accepting user input

Animating the planet

Time for action – moving the world

Animating the rover

Time for action – animating the rover

Crashing into craters

Time for action – detecting craters

Adding an enemy

Time for action – the basic flying saucer

Time for action – flying the saucer

Shots and collisions

Time for action – Shot classes

Time for action – the ShotManager class

Time for action – enemy shots

Time for action – player shots versus aliens

Time for action – enemy shots versus the rover

Scoring

Time for action – scoring

Time for action – the GameOver screen

Sound effects

Time for action – building the SFXManager class

Time for action – playing sound effects

Summary