Monday, August 2, 2010

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

A couple of weeks ago I got a review copy of the book 3D Game Development with Microsoft Silverlight 3: Beginner's Guide. The book has 452 pages, is written by Gastón C. Hillar and shows how to write games with Silverlight.
Although the title includes "Silverlight 3", the concepts are also valid for newer versions of Silverlight, like the current version 4.
This blog post is a short review of the book. I also have one physical copy of the book to give away. Yeah, a free book, like free beer.






The Content
The book 3D Game Development with Microsoft Silverlight 3: Beginner's Guide starts by explaining what tools are needed for Silverlight game development. Then the first simple Silverlight application is developed.
The second chapter explains what Sprites are, how they can be used for 2D games and frame based animations. Silverlight 2.5D hardware accelerations is also covered and how basic vector transformations work.
The next chapter introduces a Sprite wrapper class and how to simplify the game loop with it. Basic 2D collision detection with an axis-aligned bounding box is covered too. The author also shows in this chapter how to use keyboard input for the game control.
Chapter 4 finally brings 3D game development. It starts with a WPF XAML Browser Application (XBAP) application that draws a 3D model, which was generated with the 3D modelling tool Blender and then exported to a XAML file. After this, the 3D engine Balder is introduced and a simple application is created. To be honest, Balder has come a long way since the book was written and a lot of new features were introduced. Nevertheless, many concepts and the basics are still valid.
The next chapter explains some 3D concepts like Cameras and shows how to use them with Balder and XBAP. The 6th chapter is about input controlling and demonstrates how to use DirectInput with the XBAP application. Chapter 7 explains textures, lights and the usage of these in a game. The next chapter is all about animation.
The 9th chapter introduces the Silverlight physics engine Farseer and chapter 10 shows how to detect collisions and apply basic artificial intelligence. The next chapter adds an asteroid belt to the space game, which is used as an example throughout the book.
In Chapter 12, the author shows how to measure the game progress and how to use Expression Blend to create screens for highscore and other statistics. The next chapter continues with this and also explains the usage of pixel shaders from the WPF Pixel Shader Effects Library. Persisting settings to the IsolatedStorage is covered too. The last chapter demonstrates how to play and control audio and video with the Silverlight MediaElement.

Summary
If you want to get into game development with Silverlight, this is the right book for you. It starts with the basic tools, then shows how to write a simple 2D game, finally how to write a 3D Silverlight game with Balder and how to add a physics system. Another nice thing of this book is that the tools and techniques to create / convert content are also shown step-by-step.
3D Game Development with Microsoft Silverlight 3: Beginner's Guide lives up to its title: "Beginner's Guide". If you are a beginner in the field of Silverlight game development and don't know where to start, buy this book here.

Free Book!
I actually got two physical copies of the book and I like to give one away. If you want the book, just write a comment why you should get this gift. Make sure to include some form of contact information.

11 comments:

  1. Would love to have this book! I started XNA few months back, and in the mean time thinking to shift towards WP7, so for me it would be a jackpot to have this in my hands :)

    ReplyDelete
  2. I would love this book. I would use it to create video tutorials for others. I'm in the middle of setting up my screencast rig. I do Silverlight and WPF development daily. @cjibo (twitter) or cgibeaut@insomdev.com

    ReplyDelete
  3. Oh one other thing. I would not use the book content but the tricks learned.

    ReplyDelete
  4. I would like to get into silverlight and this would be a good introduction. I work in the game industry now as a client graphics programmer and this might be a good way of figuring out if it would be possible to write a web client for the game I am working on. Contact info can be found through my blog dkgamestudios.blogspot.com

    ReplyDelete
  5. I am a web developer and mainly use ASP.NET (from 1.1) and Oracle. I kept track of the Silverlight from released version 1.0 and have written some simple applications using graphs for dashboard. I downloaded some your open source code and run it and tried to make some modifications. I also listened and am impressed by your radio show #564 on dotnetrocks and this is the place I found you and follow you on twitter. I tried every possible opportunity to learn. It is always the case: easier said than done. When I tried others' code and it seems easy but it is much hard to develop some new one. I hope this book can help me to explore Silverlight 3D and gaming area. Siverlight 3D looks promising to me. Thanks a lot for your contribution to the community. my contact: @henry_gao (twitter)

    ReplyDelete
  6. hello sir,
    i am a software engineer from INDIA. and i am working on your ARTOOLKIT demo and also silverlight so with your very good examples and with the support of this book i can learn so many new things..........and about my contact information than we are connected with FB.

    ReplyDelete
  7. Hi, I'm currently a C# programmer for LOB apps, and I'm looking to learn Silverlight. More importantly, I'm beginning to teach my two oldest sons programming, and what better way to teach them then with this book?! Thanks! You can email me through my profile.

    ReplyDelete
  8. i am a silverlight programer. have been one for about a year now. im not interested in the book for myself. i would like to give it to my son who spends a great deal of time on the internet playing games. he is starting high school in a couple weeks. i am trying to convence him that he could be developing these games himself.
    @germiah(twitter)

    ReplyDelete
  9. I love games, I love to develop games, I love Silverlight =)

    ReplyDelete
  10. I'm really interested in getting into game development . Are there any definitive books on the subject that I should know about that focus on the topic as a whole vs this book which focuses on a specific type of game?

    ReplyDelete
  11. I would use the powers I gain for good instead of evil.

    http://twitter.com/ChrisSeanPorter

    ReplyDelete