At the MIX conference today, Microsoft released a beta of Silverlight 5. Some people have referred to Silverlight 5 as the gaming release, and I agree. With the tools at your disposal in Silverlight 5 you can create games that rival games on any other platform,
web based or not. In what has been a common occurrence, the Silverlight team has implemented enough to remove major roadblocks but is relying on the community to build on top of this and fill in the gaps.
Silverlight 5's 3D API is an implementation of the very lowest level of the XNA 3D API. Even the namespaces are the same. There is a new control called a DrawingSurface which hosts the XNA GraphicsDevice and it has a Draw method that gets called
on an interval like the XNA game loop. There are a few demos popping up already with some really cool things you can do with 3D. You may or may not know that XNA's 2D support is just rendering 2D objects in 3D. These objects are called textured quads,
or basically rectangles with a texture mapping.
I have implemented a quick demo of using the new Silverlight 5 DrawingSurface to render 2D sprites:
I'm confident that I'll be able to roll this into SilverSprite providing a complete and highly performant SpriteBatch. The one thing missing from the Silverlight 5 beta that I need is render targets, but these are supposed to be there before Silverlight
5 is released.
Along with graphics, Silverlight 5 also has the XNA SoundEffect class. Sound effects were probably the second most problematic thing behind graphics performance, so I was excited to see this.
If you're interested in 3D in Silverlight check out Balder here
Maybe at some point we can look at using Balder or something similar to add 3D support to SilverSprite too, but there are no immediate plans.
Finally, if you have a 2D game in XNA that you've had trouble getting working with SilverSprite and you're willing to share source code with me, let me know. I'd love to have a real world test case when migrating to Silverlight 5.