PacktLib: 3D Game Development with Microsoft Silverlight 3: Beginner's Guide

3D Game Development with Microsoft Silverlight 3

Credits

About the Author

Acknowledgement

About the Reviewer

Preface

Lights, Camera, and Action!

UFOs in the sky!: Invaders

Time for action—preparing the development environment

Time for action—recognizing digital art assets

Time for action—creating the raster digital content

Time for action—installing tools to manipulate scalable digital content

Time for action—creating the scalable digital content in XAML

Time for action—testing the scalable digital content using XamlPad

Preparing a gaming framework

Time for action—creating Silverlight applications

Time for action—building and running Silverlight applications

Time for action—creating XBAP WPF applications

Time for action—building and running the XBAP WPF applications

Summary

Working with 2D Characters

Creating an accelerated graphics viewport

Time for action—enabling hardware acceleration

Time for action—transforming media using the GPU

Time for action—shaking many illustrations at the same time

Time for action—detecting GPU-acceleration problems

Creating encapsulated object-oriented characters

Time for action—creating User Control classes to hold images

Time for action—displaying images and sprites

Summary

Combining Sprites with Backgrounds

The first remake assignment

Time for action—creating sprites based on XAML vector-based graphics

Time for action—creating a specialized sprite management class

Time for action—creating a superclass for some characters

Time for action—creating the subclasses for the characters

Time for action—creating methods for the game loop

Time for action—writing the game loop

Time for action—detecting collisions between 2D characters

Summary

Working with 3D Characters

The second remake assignment

Time for action—exporting a 3D model without considering textures

Time for action—from DCC tools to WPF

Time for action—displaying a 3D model in a 2D screen with WPF

Time for action—using other XAML exporter for DCC tools

Time for action—adding 3D elements and interacting with them using Expression Blend

Silverlight and the 3D world

Time for action—exporting a 3D model to ASE

Time for action—installing Balder 3D engine

Time for action—from DCC tools to Silverlight

Summary

Controlling the Cameras: Giving Life to Lights and Actions

Understanding 3D cameras

Time for action—when seeing is believing

Time for action—performing transformations

Time for action—zooming in and out

Time for action—understanding perspective and orthographic cameras

Silverlight and the cameras

Time for action—controlling cameras on the fly

Summary

Controlling Input Devices to Provide Great Feedback

Giving life to the game!

Time for action—creating a keyboard manager class

Time for action—programming the input control in the game loop

Time for action—mapping a gamepad to the keyboard

Time for action—using the gamepad

Time for action—creating a mouse manager class

Time for action—using the mouse manager in the game loop

Time for action—using the gamepad as a mouse

Time for action—rotating cameras using input devices

Bridging with DirectInput capabilities

Time for action—installing the necessary SDKs

Time for action—understanding sticks and buttons

Time for action—testing the input devices with a DirectInput wrapper

Time for action—adapting a joystick manager class

Time for action—using the steering wheel in the game loop

Summary

Using Effects and Textures to Amaze

Dressing characters using textures

Time for action—adding textures in DCC tools

Time for action—exporting 3D models from DCC tools to Silverlight

Time for action—enveloping 3D models

Time for action—replacing textures

Displaying lights, shadows, materials, and textures

Time for action—working with lights and understanding shadows

Summary

Animating 3D Characters

Invaders 3D

Time for action—adding a UFO

Time for action—creating a new game superclass to generalize time management capabilities

Time for action—specializing a game superclass

Time for action—creating a subclass for a 3D character

Time for action—adding an Actor to the game

Time for action—rotating 3D characters

Time for action—scaling 3D characters

Using bones and skeletons

Time for action—animating models with skeletons and bones

Time for action—adding an Actor with skeletons and bones to the game

Summary

Adding Realistic Motions Using a Physics Engine

Using physical principles in games to beat invaders

Time for action—installing Farseer Physics Engine

Time for action—adding parallel physics bodies and geometries to 3D characters

Time for action—working with forces, impulses, acceleration and speed

Time for action—working with torques and rotations

Summary

Applying Artificial Intelligence

Detecting collisions between 3D characters

Time for action—adding a second UFO

Time for action—detecting collisions between 3D characters

Using artificial intelligence in games to control 3D characters

Time for action—using chasing algorithms

Time for action—using evasion algorithms

Summary

Applying Special Effects

Working with 3D characters in the background

Time for action—adding a transition to start the game

Time for action—creating a low polygon count meteor model

Time for action—from 3D Studio Max to Silverlight

Time for action—creating a subclass for a 3D meteor

Time for action—creating and controlling a meteor rain

Time for action—simulating fluids with movement

Time for action—creating a subclass for a complex asteroid belt

Time for action—adding an asteroid belt background to the game

Summary

Controlling Statistics and Scoring

Showing gauges and scorecards

Time for action—using special fonts

Time for action—creating a score gauge showing text

Time for action—showing a score gauge

Time for action—creating a bonus gauge showing text

Time for action—creating a fuel gauge

Time for action—creating a remaining lives gauge

Time for action—showing and updating multiple gauges

Summary

Adding Environments and Scenarios

Working with levels and stages

Time for action—installing Windows Presentation Foundation Pixel Shader Effects Library

Time for action—adding screens to organize the game

Time for action—applying transition effects

Time for action—changing the transition effect

Time for action—using skill levels

Time for action—changing and improving the environments according to the skill level

Time for action—saving configurations

Summary

Adding Sound, Music, and Video

Hear the UFOs coming

Time for action—installing tools to manipulate videos

Time for action—preparing a video to use it in Silverlight

Time for action—reproducing videos

Time for action—applying projections

Time for action—animating projections

Time for action—solving navigation problems

Time for action—reproducing music

Time for action—preparing audio files to use them in Silverlight

Time for action—creating a class to handle audio concurrency

Time for action—generating sounds associated to game events

Summary

Pop quiz—Answers