ExEn is a high-performance implementation of a subset of the XNA API that runs on Silverlight, iOS and Android.
For documentation, see the Documentation directory in the provided source files.
ON THE FUTURE OF EXEN:
I no longer have time to properly maintain and support ExEn (see
this blog post for details). On the one hand: ExEn is still an excellent choice for iOS and Android development, due to its stability and performance. On the other hand: I'm not adding new features or fixing bugs (which occasionally crop up when Apple changes
If you wish to use ExEn, download the latest SVN version and, if you run into problems,
have a look in the
Don't forget to visit my blog at AndrewRussell.net.
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
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.