A quick history:
- At the MIX11 conference in April, we announced that Silverlight 5 was adding a new 3D API. This is based on XNA, so included familiar types such as GraphicsDevice, VertexBuffer, and Texture2D, but it was not a full port of XNA. In particular it did not include many of the higher level helper features, so there was no BasicEffect, no SpriteBatch, no math library, and no Content Pipeline. It did support custom shaders, but using a low level DX9 style constant register API as opposed to the friendlier Effect system used by XNA. This beta release made it possible to use high performance 3D in a Silverlight web app, but it wasn't exactly easy to do so!
- In September, the Silverlight 5 RC added new features including the same five built-in effects as XNA 4.0, plus an XNA compatible math library. David Catuhe writes about these changes.
- Now, the Silverlight Toolkit provides vastly improved XNA compatibility, including ContentManager, Model, SpriteBatch, Mouse, Keyboard, custom effects, and new Visual Studio templates for getting started with Silverlight 3D. Again David has a great intro.This is still not all of XNA (for instance there is no Game class) but with this new toolkit, enough pieces are the same that porting existing Xbox or Windows Phone games to the web can be quite easy. It took us just a few hours to port several existing XNA samples, which are included in the toolkit (Toolkit/Sep11/Source/Sample source code.zip):
article about the Content Pipeline:
I don't normally name names, as I'm lucky to work with so many talented people and this blog is my chance to take credit for all their hard work :-) But in this case I want to give a shout out to Aaron Oneal and David Catuhe, who went above and beyond to pull all the pieces together and make this happen. Nice job guys!