3D Game Development with Microsoft Silverlight 3
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
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
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
Combining Sprites with Backgrounds
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
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
Time for action—exporting a 3D model to ASE
Time for action—installing Balder 3D engine
Time for action—from DCC tools to Silverlight
Controlling the Cameras: Giving Life to Lights and Actions
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
Time for action—controlling cameras on the fly
Controlling Input Devices to Provide Great Feedback
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
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
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
Time for action—animating models with skeletons and bones
Time for action—adding an Actor with skeletons and bones to the game
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
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
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
Controlling Statistics and Scoring
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
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
Adding Sound, Music, and Video
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