ExEn

The power of C# and XNA comes to iOS, Android and Silverlight

Please read this important announcement about the future of ExEn

Make a game for XNA that runs on...   And then use ExEn to port it to...
Windows Xbox 360 Windows
Phone 7
  Silverlight
(Web)
iOS Android
XNA Game Studio is a free download from Microsoft
It’s totally awesome for making 2D and 3D games!
  * ExEn on iOS requires MonoTouch
* ExEn on Android requires Mono for Android

Get ExEn

ExEn is now hosted as open source software on CodePlex, click here!

See ExEn in action!

My game Light Blocks runs on Silverlight and iOS. You can play it online. Or download it from the App Store.

My game Captain Stretchy-Arms is currently a work-in-progress. You can see a video of it running on XNA, Silverlight and iOS, and play it in your browser in this blog post.

See how easy ExEn makes it to port a game from XNA to Silverlight an iOS in my 15-minutes Marblets Port video. The port now also runs on Android, and the source code is available with ExEn.

Finally, take a look at these games that other developers have made with ExEn.

How ExEn works

ExEn is an implementation of a subset of the XNA API that runs on Silverlight, iOS and Android. The goal of ExEn is to make it as easy as possible for you to port your game with the absolute minimum of platform-specific code. ExEn has been written with performance, robustness and API accuracy in mind.

On Silverlight, ExEn maps XNA's immediate-style API onto Silverlight's retained-style object tree in a high-performance way that does not require you to do any scene management. ExEn on Silverlight makes full use of Silverlight's hardware acceleration.

On iOS and Android, ExEn translates the XNA API into the platform's own API (and OpenGL for graphics) using Xamarin's MonoTouch and Mono for Android products to provide an implementation of C#/.NET and platform API bindings for each platform.

ExEn currently only supports XNA's 2D APIs for graphics (ie: SpriteBatch). However it is still possible to access the underlying platform using ExEn. For example, to port a 3D game to iOS and Android, you could port your renderer to OpenGL, and use ExEn for everything else.