Szczegóły ebooka

3D Game Development with Microsoft Silverlight 3: Beginner's Guide. A practical guide to creating real-time responsive online 3D games in Silverlight 3 using C#, XBAP WPF, XAML, Balder, and Farseer Physics Engine

3D Game Development with Microsoft Silverlight 3: Beginner's Guide. A practical guide to creating real-time responsive online 3D games in Silverlight 3 using C#, XBAP WPF, XAML, Balder, and Farseer Physics Engine

Gaston C. Hillar

Ebook
Microsoft Silverlight is a programmable web browser plug-in that enables the animation, vector graphics, and audio-video playback features that characterize Rich Internet Applications. Silverlight is a great (and growing) RIA platform and games are the next level to exploit in it. But it doesn't offer 3D capabilities out of the box and integrating a 3D engine can involve lot of complex mathematics and matrix algebra. This book will help C# developers to get their fingers on the pulse of 3D in Silverlight.
This book uses Balder, an open source 3D engine offering 3D capabilities for Silverlight 3. It leaves out boring matrix algebra and complex 3D mathematics. By the end of the book you will have explored the entire engine, and will be able to design and program your own 3D games with ease!
The book begins by introducing you to the fundamental concepts of 2D games and then drives you into the 3D world, using easy-to-follow, step-by-step examples. The book employs amazing graphics and impressive performance, and increasingly adds more features to a 3D game giving you a rich interactive experience.
By following the practical examples in this book, you will learn the important concepts, from the creation of the initial models, up to the addition of physics and artificial intelligence.
The book helps you to provide realistic behaviors for 3D characters by enveloping models with different textures, using lights to create effects, animating multiple 3D characters using a physics engine (Farseer Physics Engine), and simulating real-life physics. Videos, music, and sounds associated with specific events offer the final touches to the 3D game development learning experience.
  • 3D Game Development with Microsoft Silverlight 3 Beginners 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 actionpreparing the development environment
        • What just happened?
      • Time for actionrecognizing digital art assets
        • What just happened?
      • Time for actioncreating 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 actioninstalling tools to manipulate scalable digital content
        • What just happened?
        • XAML works fine with Silverlight 3
      • Time for actioncreating the scalable digital content in XAML
        • What just happened?
        • Previewing and scaling XAML vector graphics
      • Time for actiontesting the scalable digital content using XamlPad
        • What just happened?
        • Editing vector illustrations using Expression Design
        • Have a go heropreparing scalable digital content for a new remake
      • Preparing a gaming framework
      • Time for actioncreating Silverlight applications
        • What just happened?
      • Time for actionbuilding and running Silverlight applications
        • What just happened?
        • Programming event handlers in the main page
      • Time for actioncreating XBAP WPF applications
        • What just happened?
      • Time for actionbuilding and running the XBAP WPF applications
        • What just happened?
        • Have a go herocreating a prototype for the remake
        • Pop quizpreparing the digital content
      • Summary
    • 2. Working with 2D Characters
      • Creating an accelerated graphics viewport
      • Time for actionenabling hardware acceleration
        • What just happened?
      • Time for actiontransforming media using the GPU
        • What just happened?
        • Caching rendered content
        • Scaling and rotating a vector-based illustration
      • Time for actionshaking many illustrations at the same time
        • What just happened?
        • Running loops faster
        • Accelerating transforms and blends
        • Using 2D vectors
      • Time for actiondetecting GPU-acceleration problems
        • What just happened?
        • Understanding GPU acceleration limitations
      • Creating encapsulated object-oriented characters
      • Time for actioncreating User Control classes to hold images
        • What just happened?
      • Time for actiondisplaying images and sprites
        • What just happened?
        • Showing a sprite on the screen
        • Defining the behavior
        • Understanding dimensions
        • Managing resolutions
        • Screen resolutions
        • Have a go herocompleting the animation
        • Pop quizworking with sprites and the GPU
      • Summary
    • 3. Combining Sprites with Backgrounds
      • The first remake assignment
      • Time for actioncreating sprites based on XAML vector-based graphics
        • What just happened?
        • Defining the relative center point
      • Time for actioncreating 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 actioncreating a superclass for some characters
        • What just happened?
      • Time for actioncreating the subclasses for the characters
        • What just happened?
      • Time for actioncreating methods for the game loop
        • What just happened?
        • Creating objects on the fly
        • Managing dynamic objects
      • Time for actionwriting the game loop
        • What just happened?
        • Animating multiple sprites
        • Managing a complex game loop
      • Time for actiondetecting collisions between 2D characters
        • What just happened?
        • Using colors to paint sprites
        • Have a go herousing backgrounds
        • Have a go heropreparing Invaders 3000
        • Pop quizsimplifying game loops
      • Summary
    • 4. Working with 3D Characters
      • The second remake assignment
      • Time for actionexporting a 3D model without considering textures
        • What just happened?
        • XAML 3D models
      • Time for actionfrom DCC tools to WPF
        • What just happened?
        • XBAP WPF applications with 3D content
      • Time for actiondisplaying 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 actionusing other XAML exporter for DCC tools
        • What just happened?
      • Time for actionadding 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 actionexporting a 3D model to ASE
        • What just happened?
      • Time for actioninstalling Balder 3D engine
        • What just happened?
      • Time for actionfrom DCC tools to Silverlight
        • What just happened?
        • Displaying a 3D model in a 2D screen with Silverlight
        • Using 3D vectors
        • Have a go heroworking with multiple 3D characters
        • Pop quiz3D models and real-time rendering
      • Summary
    • 5. Controlling the Cameras: Giving Life to Lights and Actions
      • Understanding 3D cameras
      • Time for actionwhen seeing is believing
        • What just happened?
        • Controlling the position, the direction, and the up vector
      • Time for actionperforming transformations
        • What just happened?
        • Defining and applying transformations
      • Time for actionzooming in and out
        • What just happened?
        • Controlling the perspective field of view
        • Controlling the clipping planes
      • Time for actionunderstanding perspective and orthographic cameras
        • What just happened?
        • Have a go herorotating cameras around a 3D model
      • Silverlight and the cameras
      • Time for actioncontrolling cameras on the fly
        • What just happened?
        • Understanding cameras related to matrixes
        • Have a go heroworking with many cameras
        • Pop quizworking with cameras in a 3D world
      • Summary
    • 6. Controlling Input Devices to Provide Great Feedback
      • Giving life to the game!
      • Time for actioncreating a keyboard manager class
        • What just happened?
        • Using the keyboard
      • Time for actionprogramming the input control in the game loop
        • What just happened?
      • Time for actionmapping a gamepad to the keyboard
        • What just happened?
        • Understanding the gamepad as an input device
      • Time for actionusing the gamepad
        • What just happened?
      • Time for actioncreating a mouse manager class
        • What just happened?
        • Using the mouse
      • Time for actionusing the mouse manager in the game loop
        • What just happened?
      • Time for actionusing the gamepad as a mouse
        • What just happened?
      • Time for actionrotating cameras using input devices
        • What just happened?
        • Have a go herotaking full advantage of the gamepad
      • Bridging with DirectInput capabilities
      • Time for actioninstalling the necessary SDKs
        • What just happened?
        • Considering deployment's additional requirements
      • Time for actionunderstanding sticks and buttons
        • What just happened?
        • Understanding the steering wheel as an input device
      • Time for actiontesting 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 actionadapting a joystick manager class
        • What just happened?
      • Time for actionusing 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 herousing the Wiimote
        • Have a go heroworking with time, analog and digital values
        • Pop quizworking with gaming input devices
      • Summary
    • 7. Using Effects and Textures to Amaze
      • Dressing characters using textures
      • Time for actionadding textures in DCC tools
        • What just happened?
      • Time for actionexporting 3D models from DCC tools to Silverlight
        • What just happened?
        • Displaying a 3D model using textures in a 2D screen with Silverlight
      • Time for actionenveloping 3D models
        • What just happened?
        • Understanding textures
        • Repeating textures as tiles
      • Time for actionreplacing textures
        • What just happened?
        • Have a go heroplaying with textures
      • Displaying lights, shadows, materials, and textures
      • Time for actionworking with lights and understanding shadows
        • What just happened?
        • Understanding different kinds of lights
        • Have a go herocreating effects using lights
        • Pop quizworking with textures, materials, and lights
      • Summary
    • 8. Animating 3D Characters
      • Invaders 3D
      • Time for actionadding a UFO
        • What just happened?
      • Time for actioncreating a new game superclass to generalize time management capabilities
        • What just happened?
      • Time for actionspecializing a game superclass
        • What just happened?
      • Time for actioncreating a subclass for a 3D character
        • What just happened?
        • Using an Actor to represent a 3D character
      • Time for actionadding an Actor to the game
        • What just happened?
        • Moving 3D characters as Actors
      • Time for actionrotating 3D characters
        • What just happened?
        • Using the World matrix in order to perform transformations to meshes
        • Performing compound transformations
      • Time for actionscaling 3D characters
        • What just happened?
        • Using the World matrix in order to scale meshes
        • Have a go herocreating a specialized XAML 3D character wrapper class
      • Using bones and skeletons
      • Time for actionanimating models with skeletons and bones
        • What just happened?
        • Using skeletons and bones
      • Time for actionadding an Actor with skeletons and bones to the game
        • What just happened?
        • Understanding complex 3D animation techniques
        • Have a go heroaliens walking
        • Pop quizanimating 3D characters in a scene
      • Summary
    • 9. Adding Realistic Motions Using a Physics Engine
      • Using physical principles in games to beat invaders
      • Time for actioninstalling Farseer Physics Engine
        • What just happened?
      • Time for actionadding 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 actionworking 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 actionworking 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 herocircles are not rectangles
        • Have a go heroapplying particle systems
        • Pop quizworking with bodies, geometries, and physics
      • Summary
    • 10. Applying Artificial Intelligence
      • Detecting collisions between 3D characters
      • Time for actionadding a second UFO
        • What just happened?
      • Time for actiondetecting 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 hero3D Moon Lander
      • Using artificial intelligence in games to control 3D characters
      • Time for actionusing chasing algorithms
        • What just happened?
        • Working with states for the characters
        • Pursuing an enemy
        • Generating and controlling random situations
      • Time for actionusing evasion algorithms
        • What just happened?
        • Evading an enemy
        • The advantages of using an AI engine
        • Have a go heroadding complex AI algorithms
        • Pop quizworking with collision detection and artificial intelligence
      • Summary
    • 11. Applying Special Effects
      • Working with 3D characters in the background
      • Time for actionadding a transition to start the game
        • What just happened?
      • Time for actioncreating a low polygon count meteor model
        • What just happened?
      • Time for actionfrom 3D Studio Max to Silverlight
        • What just happened?
      • Time for actioncreating a subclass for a 3D meteor
        • What just happened?
      • Time for actioncreating and controlling a meteor rain
        • What just happened?
        • Advantages of using multiple physics engines
      • Time for actionsimulating fluids with movement
        • What just happened?
        • Simulating waves
      • Time for actioncreating a subclass for a complex asteroid belt
        • What just happened?
        • Using an Actor to represent a wave in the background
      • Time for actionadding an asteroid belt background to the game
        • What just happened?
        • Working with encapsulated physics controllers
        • Have a go heroadding dissolutions, fire, smoke, and explosions
        • Pop quizworking with special effects
      • Summary
    • 12. Controlling Statistics and Scoring
      • Showing gauges and scorecards
      • Time for actionusing special fonts
        • What just happened?
        • Embedding fonts in the project
      • Time for actioncreating a score gauge showing text
        • What just happened?
        • Using Expression Blend to create 2D gauges
      • Time for actionshowing a score gauge
        • What just happened?
        • Calculating, saving, and showing statistics
      • Time for actioncreating a bonus gauge showing text
        • What just happened?
      • Time for actioncreating a fuel gauge
        • What just happened?
      • Time for actioncreating a remaining lives gauge
        • What just happened?
        • Using a panel to show many aligned user controls
      • Time for actionshowing and updating multiple gauges
        • What just happened?
        • Working with multiple gauges
        • Have a go heroadding gauges for multiplayer games
        • Pop quizworking with special fonts and gauges
      • Summary
    • 13. Adding Environments and Scenarios
      • Working with levels and stages
      • Time for actioninstalling Windows Presentation Foundation Pixel Shader Effects Library
        • What just happened?
      • Time for actionadding screens to organize the game
        • What just happened?
      • Time for actionapplying 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 actionchanging the transition effect
        • What just happened?
        • Exploring transition effects
        • Working with multiple transition effects
      • Time for actionusing skill levels
        • What just happened?
      • Time for actionchanging and improving the environments according to the skill level
        • What just happened?
        • Retrieving values for parameters using LINQ to XML
      • Time for actionsaving configurations
        • What just happened?
        • Have a go herodisplaying amazing menus with configuration options
        • Have a go heroshowing stages
        • Pop quizavoiding the GAME OVER screen
      • Summary
    • 14. Adding Sound, Music, and Video
      • Hear the UFOs coming
      • Time for actioninstalling tools to manipulate videos
        • What just happened?
      • Time for actionpreparing 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 actionreproducing videos
        • What just happened?
        • Locating videos in a related web site
        • Stretching videos
        • Taking advantage of GPU acceleration to scale videos
      • Time for actionapplying projections
        • What just happened?
      • Time for actionanimating projections
        • What just happened?
        • Working with a StoryBoard in XAML to animate a projection
      • Time for actionsolving navigation problems
        • What just happened?
      • Time for actionreproducing music
        • What just happened?
      • Time for actionpreparing 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 actioncreating a class to handle audio concurrency
        • What just happened?
        • Using a round robin algorithm to work with concurrent sounds
      • Time for actiongenerating sounds associated to game events
        • What just happened?
        • Have a go heroanimating the game over scene
        • Have a go heroconfiguring sounds and music
        • Pop quizworking with audio and video in Silverlight 3
      • Summary
    • A. Pop quizAnswers
    • Index
  • Tytuł: 3D Game Development with Microsoft Silverlight 3: Beginner's Guide. A practical guide to creating real-time responsive online 3D games in Silverlight 3 using C#, XBAP WPF, XAML, Balder, and Farseer Physics Engine
  • Autor: Gaston C. Hillar
  • Tytuł oryginału: 3D Game Development with Microsoft Silverlight 3: Beginner's Guide. A practical guide to creating real-time responsive online 3D games in Silverlight 3 using C#, XBAP WPF, XAML, Balder, and Farseer Physics Engine
  • ISBN: 9781847198938, 9781847198938
  • Data wydania: 2009-09-24
  • Format: Ebook
  • Identyfikator pozycji: e_2wkl
  • Wydawca: Packt Publishing