售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
3D Game Development with Microsoft Silverlight 3 Beginner's Guide
Table of Contents
3D Game Development with Microsoft Silverlight 3 Beginner's Guide
Credits
About the Author
Acknowledgement
About the Reviewer
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code for the book
Errata
Piracy
Questions
1. Lights, Camera, and Action!
UFOs in the sky!: Invaders
Time for action—preparing the development environment
What just happened?
Time for action—recognizing digital art assets
What just happened?
Time for action—creating the raster digital content
What just happened?
Digital Content Creation tools
Basic elements of a 2D and/or 3D real-time game
Programming responsibilities
Time for action—installing tools to manipulate scalable digital content
What just happened?
XAML works fine with Silverlight 3
Time for action—creating the scalable digital content in XAML
What just happened?
Previewing and scaling XAML vector graphics
Time for action—testing the scalable digital content using XamlPad
What just happened?
Editing vector illustrations using Expression Design
Have a go hero—preparing scalable digital content for a new remake
Preparing a gaming framework
Time for action—creating Silverlight applications
What just happened?
Time for action—building and running Silverlight applications
What just happened?
Programming event handlers in the main page
Time for action—creating XBAP WPF applications
What just happened?
Time for action—building and running the XBAP WPF applications
What just happened?
Have a go hero—creating a prototype for the remake
Pop quiz—preparing the digital content
Summary
2. Working with 2D Characters
Creating an accelerated graphics viewport
Time for action—enabling hardware acceleration
What just happened?
Time for action—transforming media using the GPU
What just happened?
Caching rendered content
Scaling and rotating a vector-based illustration
Time for action—shaking many illustrations at the same time
What just happened?
Running loops faster
Accelerating transforms and blends
Using 2D vectors
Time for action—detecting GPU-acceleration problems
What just happened?
Understanding GPU acceleration limitations
Creating encapsulated object-oriented characters
Time for action—creating User Control classes to hold images
What just happened?
Time for action—displaying images and sprites
What just happened?
Showing a sprite on the screen
Defining the behavior
Understanding dimensions
Managing resolutions
Screen resolutions
Have a go hero—completing the animation
Pop quiz—working with sprites and the GPU
Summary
3. Combining Sprites with Backgrounds
The first remake assignment
Time for action—creating sprites based on XAML vector-based graphics
What just happened?
Defining the relative center point
Time for action—creating a specialized sprite management class
What just happened?
Taking full advantage of object-oriented capabilities
Preparing the classes for inheritance
Wrapping a UserControl to manage it
Time for action—creating a superclass for some characters
What just happened?
Time for action—creating the subclasses for the characters
What just happened?
Time for action—creating methods for the game loop
What just happened?
Creating objects on the fly
Managing dynamic objects
Time for action—writing the game loop
What just happened?
Animating multiple sprites
Managing a complex game loop
Time for action—detecting collisions between 2D characters
What just happened?
Using colors to paint sprites
Have a go hero—using backgrounds
Have a go hero—preparing Invaders 3000
Pop quiz—simplifying game loops
Summary
4. Working with 3D Characters
The second remake assignment
Time for action—exporting a 3D model without considering textures
What just happened?
XAML 3D models
Time for action—from DCC tools to WPF
What just happened?
XBAP WPF applications with 3D content
Time for action—displaying a 3D model in a 2D screen with WPF
What just happened?
Understanding the 3D world
X, Y, and Z in practice
GPU 3D acceleration
Understanding meshes
Time for action—using other XAML exporter for DCC tools
What just happened?
Time for action—adding 3D elements and interacting with them using Expression Blend
What just happened?
Interacting with 3D elements using Expression Blend
Silverlight and the 3D world
Time for action—exporting a 3D model to ASE
What just happened?
Time for action—installing Balder 3D engine
What just happened?
Time for action—from DCC tools to Silverlight
What just happened?
Displaying a 3D model in a 2D screen with Silverlight
Using 3D vectors
Have a go hero—working with multiple 3D characters
Pop quiz—3D models and real-time rendering
Summary
5. Controlling the Cameras: Giving Life to Lights and Actions
Understanding 3D cameras
Time for action—when seeing is believing
What just happened?
Controlling the position, the direction, and the up vector
Time for action—performing transformations
What just happened?
Defining and applying transformations
Time for action—zooming in and out
What just happened?
Controlling the perspective field of view
Controlling the clipping planes
Time for action—understanding perspective and orthographic cameras
What just happened?
Have a go hero—rotating cameras around a 3D model
Silverlight and the cameras
Time for action—controlling cameras on the fly
What just happened?
Understanding cameras related to matrixes
Have a go hero—working with many cameras
Pop quiz—working with cameras in a 3D world
Summary
6. Controlling Input Devices to Provide Great Feedback
Giving life to the game!
Time for action—creating a keyboard manager class
What just happened?
Using the keyboard
Time for action—programming the input control in the game loop
What just happened?
Time for action—mapping a gamepad to the keyboard
What just happened?
Understanding the gamepad as an input device
Time for action—using the gamepad
What just happened?
Time for action—creating a mouse manager class
What just happened?
Using the mouse
Time for action—using the mouse manager in the game loop
What just happened?
Time for action—using the gamepad as a mouse
What just happened?
Time for action—rotating cameras using input devices
What just happened?
Have a go hero—taking full advantage of the gamepad
Bridging with DirectInput capabilities
Time for action—installing the necessary SDKs
What just happened?
Considering deployment's additional requirements
Time for action—understanding sticks and buttons
What just happened?
Understanding the steering wheel as an input device
Time for action—testing the input devices with a DirectInput wrapper
What just happened?
Understanding the analog axis for a steering wheel
Understanding the analog axis for a gamepad
Time for action—adapting a joystick manager class
What just happened?
Time for action—using the steering wheel in the game loop
What just happened?
Using the joystick manager
Working with many input devices
Using other input devices
Have a go hero—using the Wiimote
Have a go hero—working with time, analog and digital values
Pop quiz—working with gaming input devices
Summary
7. Using Effects and Textures to Amaze
Dressing characters using textures
Time for action—adding textures in DCC tools
What just happened?
Time for action—exporting 3D models from DCC tools to Silverlight
What just happened?
Displaying a 3D model using textures in a 2D screen with Silverlight
Time for action—enveloping 3D models
What just happened?
Understanding textures
Repeating textures as tiles
Time for action—replacing textures
What just happened?
Have a go hero—playing with textures
Displaying lights, shadows, materials, and textures
Time for action—working with lights and understanding shadows
What just happened?
Understanding different kinds of lights
Have a go hero—creating effects using lights
Pop quiz—working with textures, materials, and lights
Summary
8. Animating 3D Characters
Invaders 3D
Time for action—adding a UFO
What just happened?
Time for action—creating a new game superclass to generalize time management capabilities
What just happened?
Time for action—specializing a game superclass
What just happened?
Time for action—creating a subclass for a 3D character
What just happened?
Using an Actor to represent a 3D character
Time for action—adding an Actor to the game
What just happened?
Moving 3D characters as Actors
Time for action—rotating 3D characters
What just happened?
Using the World matrix in order to perform transformations to meshes
Performing compound transformations
Time for action—scaling 3D characters
What just happened?
Using the World matrix in order to scale meshes
Have a go hero—creating a specialized XAML 3D character wrapper class
Using bones and skeletons
Time for action—animating models with skeletons and bones
What just happened?
Using skeletons and bones
Time for action—adding an Actor with skeletons and bones to the game
What just happened?
Understanding complex 3D animation techniques
Have a go hero—aliens walking
Pop quiz—animating 3D characters in a scene
Summary
9. Adding Realistic Motions Using a Physics Engine
Using physical principles in games to beat invaders
Time for action—installing Farseer Physics Engine
What just happened?
Time for action—adding parallel physics bodies and geometries to 3D characters
What just happened?
Creating bodies
Creating geometries
Updating a 3D model according to the associated body's properties
Time for action—working with forces, impulses, acceleration and speed
What just happened?
Specifying the gravitational force
Applying forces
Applying impulses
Working with a 2D physics simulator in the game loop
Time for action—working with torques and rotations
What just happened?
Applying torques
Translating 2D physics to a 3D world
Working with Farseer Physics Engine in XBAP WPF applications
Have a go hero—circles are not rectangles
Have a go hero—applying particle systems
Pop quiz—working with bodies, geometries, and physics
Summary
10. Applying Artificial Intelligence
Detecting collisions between 3D characters
Time for action—adding a second UFO
What just happened?
Time for action—detecting collisions between 3D characters
What just happened?
Working with advanced responses to collisions
Controlling collision moments using events
Working with collision categories
Using engines to improve collision detection precision
Have a go hero—3D Moon Lander
Using artificial intelligence in games to control 3D characters
Time for action—using chasing algorithms
What just happened?
Working with states for the characters
Pursuing an enemy
Generating and controlling random situations
Time for action—using evasion algorithms
What just happened?
Evading an enemy
The advantages of using an AI engine
Have a go hero—adding complex AI algorithms
Pop quiz—working with collision detection and artificial intelligence
Summary
11. Applying Special Effects
Working with 3D characters in the background
Time for action—adding a transition to start the game
What just happened?
Time for action—creating a low polygon count meteor model
What just happened?
Time for action—from 3D Studio Max to Silverlight
What just happened?
Time for action—creating a subclass for a 3D meteor
What just happened?
Time for action—creating and controlling a meteor rain
What just happened?
Advantages of using multiple physics engines
Time for action—simulating fluids with movement
What just happened?
Simulating waves
Time for action—creating a subclass for a complex asteroid belt
What just happened?
Using an Actor to represent a wave in the background
Time for action—adding an asteroid belt background to the game
What just happened?
Working with encapsulated physics controllers
Have a go hero—adding dissolutions, fire, smoke, and explosions
Pop quiz—working with special effects
Summary
12. Controlling Statistics and Scoring
Showing gauges and scorecards
Time for action—using special fonts
What just happened?
Embedding fonts in the project
Time for action—creating a score gauge showing text
What just happened?
Using Expression Blend to create 2D gauges
Time for action—showing a score gauge
What just happened?
Calculating, saving, and showing statistics
Time for action—creating a bonus gauge showing text
What just happened?
Time for action—creating a fuel gauge
What just happened?
Time for action—creating a remaining lives gauge
What just happened?
Using a panel to show many aligned user controls
Time for action—showing and updating multiple gauges
What just happened?
Working with multiple gauges
Have a go hero—adding gauges for multiplayer games
Pop quiz—working with special fonts and gauges
Summary
13. Adding Environments and Scenarios
Working with levels and stages
Time for action—installing Windows Presentation Foundation Pixel Shader Effects Library
What just happened?
Time for action—adding screens to organize the game
What just happened?
Time for action—applying transition effects
What just happened?
Rendering a WriteableBitmap and using it as an ImageBrush
Creating a StoryBoard
Working with a StoryBoard to animate an effect
Time for action—changing the transition effect
What just happened?
Exploring transition effects
Working with multiple transition effects
Time for action—using skill levels
What just happened?
Time for action—changing and improving the environments according to the skill level
What just happened?
Retrieving values for parameters using LINQ to XML
Time for action—saving configurations
What just happened?
Have a go hero—displaying amazing menus with configuration options
Have a go hero—showing stages
Pop quiz—avoiding the GAME OVER screen
Summary
14. Adding Sound, Music, and Video
Hear the UFOs coming
Time for action—installing tools to manipulate videos
What just happened?
Time for action—preparing a video to use it in Silverlight
What just happened?
Video formats supported in Silverlight 3
Using free applications to convert video formats
Time for action—reproducing videos
What just happened?
Locating videos in a related web site
Stretching videos
Taking advantage of GPU acceleration to scale videos
Time for action—applying projections
What just happened?
Time for action—animating projections
What just happened?
Working with a StoryBoard in XAML to animate a projection
Time for action—solving navigation problems
What just happened?
Time for action—reproducing music
What just happened?
Time for action—preparing audio files to use them in Silverlight
What just happened?
Audio formats supported in Silverlight 3
Using free applications to convert audio formats
Time for action—creating a class to handle audio concurrency
What just happened?
Using a round robin algorithm to work with concurrent sounds
Time for action—generating sounds associated to game events
What just happened?
Have a go hero—animating the game over scene
Have a go hero—configuring sounds and music
Pop quiz—working with audio and video in Silverlight 3
Summary
A. Pop quiz—Answers
Index
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜