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


3D Game Development with Microsoft Silverlight 3: Beginner's Guide
eBook: $29.99
Formats: PDF, PacktLib, ePub and Mobi formats
$25.49
save 15%!
Print + free eBook + free PacktLib access to the book: $79.98    Print cover: $49.99
$44.99
save 44%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Overview
Table of Contents
Author
Reviews
Support
Sample Chapters
  • Develop online interactive 3D games and scenes in Microsoft Silverlight 3 and XBAP WPF
  • Integrate Balder 3D engine 1.0, Farseer Physics Engine 2.1, and advanced object-oriented techniques to simplify the game development process
  • Enhance development with animated 3D characters, sounds, music, physics, stages, gauges, and backgrounds
  • Packed with inspiring, realistic examples offering impressive graphics, strong performance, and a rich interactive experience

Book Details

Language : English
Paperback : 452 pages [ 235mm x 191mm ]
Release Date : September 2009
ISBN : 1847198929
ISBN 13 : 9781847198921
Author(s) : Gastón C. Hillar
Topics and Technologies : All Books, Game Development, Beginner's Guides, Games, Microsoft Silverlight, Web Development, Web Graphics & Video

Back to BOOK PAGE

Table of Contents

Preface
Chapter 1: Lights, Camera, and Action!
Chapter 2: Working with 2D Characters
Chapter 3: Combining Sprites with Backgrounds
Chapter 4: Working with 3D Characters
Chapter 5: Controlling the Cameras: Giving Life to Lights and Actions
Chapter 6: Controlling Input Devices to Provide Great Feedback
Chapter 7: Using Effects and Textures to Amaze
Chapter 8: Animating 3D Characters
Chapter 9: Adding Realistic Motions Using a Physics Engine
Chapter 10: Applying Artificial Intelligence
Chapter 11: Applying Special Effects
Chapter 12: Controlling Statistics and Scoring
Chapter 13: Adding Environments and Scenarios
Chapter 14: Adding Sound, Music, and Video
Appendix: Pop Quiz Answers
Index
  • Chapter 1: 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
      • 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
      • XAML works fine with Silverlight 3
      • Time for action – creating the scalable digital content in XAML
      • Previewing and scaling XAML vector graphics
      • Time for action – testing the scalable digital content using XamlPad
      • Editing vector illustrations using Expression Design
    • Preparing a gaming framework
      • Time for action – creating Silverlight applications
      • Time for action – building and running Silverlight applications
      • Programming event handlers in the main page
      • Time for action – creating XBAP WPF applications
      • Time for action – building and running the XBAP WPF applications
    • Summary
  • Chapter 2: Working with 2D Characters
    • Creating an accelerated graphics viewport
      • Time for action – enabling hardware acceleration
      • Time for action – transforming media using the GPU
      • Caching rendered content
      • Scaling and rotating a vector-based illustration
      • Time for action – shaking many illustrations at the same time
      • Running loops faster
      • Accelerating transforms and blends
      • Using 2D vectors
      • Time for action – detecting GPU-acceleration problems
      • Understanding GPU acceleration limitations
    • Creating encapsulated object-oriented characters
      • Time for action – creating User Control classes to hold images
      • Time for action – displaying images and sprites
      • Showing a sprite on the screen
      • Defining the behavior
      • Understanding dimensions
      • Managing resolutions
      • Screen resolutions
    • Summary
  • Chapter 3: Combining Sprites with Backgrounds
    • The first remake assignment
      • Time for action – creating sprites based on XAML vector-based graphics
      • Defining the relative center point
      • Time for action – creating a specialized sprite management class
      • 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
      • Time for action – creating the subclasses for the characters
      • Time for action – creating methods for the game loop
      • Creating objects on the fly
      • Managing dynamic objects
      • Time for action – writing the game loop
      • Animating multiple sprites
      • Managing a complex game loop
      • Time for action – detecting collisions between 2D characters
      • Using colors to paint sprites
    • Summary
  • Chapter 4: Working with 3D Characters
    • The second remake assignment
      • Time for Action – exporting a 3D model without considering textures
      • XAML 3D models
      • Time for action – from DCC tools to WPF
      • XBAP WPF applications with 3D content
      • Time for action – displaying a 3D model in a 2D screen with WPF
      • 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
      • Time for action – adding 3D elements and interacting with them using Expression Blend
      • Interacting with 3D elements 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
      • Displaying a 3D model in a 2D screen with Silverlight
      • Using 3D vectors
    • Summary
  • Chapter 5: Controlling the Cameras: Giving Life to Lights and Actions
    • Understanding 3D cameras
      • Time for action – when seeing is believing
      • Controlling the position, the direction, and the up vector
      • Time for action – performing transformations
      • Defining and applying transformations
      • Time for action – zooming in and out
      • Controlling the perspective field of view
      • Controlling the clipping planes
      • Time for action – understanding perspective and orthographic cameras
    • Silverlight and the cameras
      • Time for action – controlling cameras on the fly
      • Understanding cameras related to matrixes
    • Summary
  • Chapter 6: Controlling Input Devices to Provide Great Feedback
    • Giving life to the game!
      • Time for action – creating a keyboard manager class
      • Using the keyboard
      • Time for action – programming the input control in the game loop
      • Time for action – mapping a gamepad to the keyboard
      • Understanding the gamepad as an input device
      • Time for action – using the gamepad
      • Time for action – creating a mouse manager class
      • Using the mouse
      • 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
      • Considering deployment's additional requirements
      • Time for action – understanding sticks and buttons
      • Understanding the steering wheel as an input device
      • Time for action – testing the input devices with a DirectInput wrapper
      • Understanding the analog axis for a steering wheel
      • Understanding the analog axis for a gamepad
      • Time for action – adapting a joystick manager class
      • Time for action – using the steering wheel in the game loop
      • Using the joystick manager
      • Working with many input devices
      • Using other input devices
    • Summary
  • Chapter 7: 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
      • Displaying a 3D model using textures in a 2D screen with Silverlight
      • Time for action – enveloping 3D models
      • Understanding textures
      • Repeating textures as tiles
      • Time for action – replacing textures
    • Displaying lights, shadows, materials, and textures
      • Time for action – working with lights and understanding shadows
      • Understanding different kinds of lights
    • Summary
  • Chapter 8: 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
      • Using an Actor to represent a 3D character
      • Time for action – adding an Actor to the game
      • Moving 3D characters as Actors
      • Time for action – rotating 3D characters
      • Using the World matrix in order to perform transformations to meshes
      • Performing compound transformations
      • Time for action – scaling 3D characters
      • Using the World matrix in order to scale meshes
    • Using bones and skeletons
      • Time for action – animating models with skeletons and bones
      • Using skeletons and bones
      • Time for action – adding an Actor with skeletons and bones to the game
      • Understanding complex 3D animation techniques
    • Summary
  • Chapter 9: 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
      • 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
      • 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
      • Applying torques
      • Translating 2D physics to a 3D world
      • Working with Farseer Physics Engine in XBAP WPF applications
    • Summary
  • Chapter 10: Applying Artificial Intelligence
    • Detecting collisions between 3D characters
      • Time for action – adding a second UFO
      • Time for action – detecting collisions between 3D characters
      • Working with advanced responses to collisions
      • Controlling collision moments using events
      • Working with collision categories
      • Using engines to improve collision detection precision
    • Using artificial intelligence in games to control 3D characters
      • Time for action – using chasing algorithms
      • Working with states for the characters
      • Pursuing an enemy
      • Generating and controlling random situations
      • Time for action – using evasion algorithms
      • Evading an enemy
      • The advantages of using an AI engine
    • Summary
  • Chapter 11: 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
      • Advantages of using multiple physics engines
      • Time for action – simulating fluids with movement
      • Simulating waves
      • Time for action – creating a subclass for a complex asteroid belt
      • Using an Actor to represent a wave in the background
      • Time for action – adding an asteroid belt background to the game
      • Working with encapsulated physics controllers
    • Summary
  • Chapter 12: Controlling Statistics and Scoring
    • Showing gauges and scorecards
      • Time for action – using special fonts
      • Embedding fonts in the project
      • Time for action – creating a score gauge showing text
      • Using Expression Blend to create 2D gauges
      • Time for action – showing a score gauge
      • Calculating, saving, and showing statistics
      • Time for action – creating a bonus gauge showing text
      • Time for action – creating a fuel gauge
      • Time for action – creating a remaining lives gauge
      • Using a panel to show many aligned user controls
      • Time for action – showing and updating multiple gauges
      • Working with multiple gauges
    • Summary
  • Chapter 13: 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
      • 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
      • Exploring transition effects
      • Working with multiple transition effects
      • Time for action – using skill levels
      • Time for action – changing and improving the environments according to the skill level
      • Retrieving values for parameters using LINQ to XML
      • Time for action – saving configurations
    • Summary
  • Chapter 14: 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
      • Video formats supported in Silverlight 3
      • Using free applications to convert video formats
      • Time for action – reproducing videos
      • Locating videos in a related web site
      • Stretching videos
      • Taking advantage of GPU acceleration to scale videos
      • Time for action – applying projections
      • Time for action – animating projections
      • Working with a StoryBoard in XAML to animate a projection
      • Time for action – solving navigation problems
      • Time for action – reproducing music
      • Time for action – preparing audio files to use them in Silverlight
      • Audio formats supported in Silverlight 3
      • Using free applications to convert audio formats
      • Time for action – creating a class to handle audio concurrency
      • Using a round robin algorithm to work with concurrent sounds
      • Time for action – generating sounds associated to game events
    • Summary
Back to BOOK PAGE

Gastón C. Hillar

Gastón C. Hillar has been working with computers since he was eight. He began programming with the legendary Texas TI-99/4A and Commodore 64 home computers in the early 80s. He has a Bachelor degree in Computer Science from which he graduated with honors, and an MBA from which he graduated with an outstanding thesis. Now, he is an independent IT consultant and a freelance author always looking for new adventures around the world. To date he’s written more than 40 books in Spanish, and for Packt Publishing has written “C# 2008 and 2005 Threaded Programming: Beginner's Guide”. He usually writes articles for Spanish magazines Mundo Linux, Solo Programadores and Resistor. He contributes to Dr. Dobb's Go Parallel programming portal http://www.ddj.com/go-parallel/ and he is a guest blogger at Intel Software Network http://software.intel.com Gastón C. Hillar is the author of "Microsoft Silverlight 4 and SharePoint 2010 Integration".

Code Downloads

Download the code and support files for this book.


Submit Errata

Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.

Sample chapters

You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

Frequently bought together

3D Game Development with Microsoft Silverlight 3: Beginner's Guide +    SugarCRM Developer's Manual: Customize and extend SugarCRM =
50% Off
the second eBook
Price for both: €32.40

Buy both these recommended eBooks together and get 50% off the cheapest eBook.

What you will learn from this book

  • Display and control 3D models in a 3D world
  • Set up and control cameras to display parts of an animated 3D world
  • Use an object-oriented design to define and specialize 3D characters
  • Create amazing effects by controlling cameras, lights, and characters using gaming input devices
  • Animate simple and complex 3D characters
  • Display, move, and rotate 3D models in a 3D world using different effects, textures, transformations, and artificial intelligence (AI)
  • Create realistic behaviors using physics simulations
  • Envelope the models using textures, materials, and lights
  • Add environments, backgrounds, scenarios, stages, skill levels, statistics, and scoring
  • Reproduce sounds and background music
  • Load and control 3D models developed in popular 3D modeling tools like 3D Studio Max, Blender, Google Sketch and AutoCAD

In Detail

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.

Approach

This book takes a step-by-step approach to building a complete interactive 3D game using Silverlight and enhancing it through its related technologies. The book focuses on practical examples and has a friendly approach, with the opportunity to learn by experiment and play. It uses illustrations, screenshots, and interactive experiences to understand the most complex topics related to the 3D scenes.

Who this book is for

This book is designed primarily for C# developers with basic knowledge of the Visual Studio IDE who want to develop online 3D games using Silverlight or create interactive 3D scenes for a web site with animated models. No prior experience in 3D programming, 3D animation, or Silverlight is required.

The book is also aimed at 3D developers who want to improve their online content, offering innovative 3D models in action.

Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Resources
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software