Platform OpenTK GLFW SharpDX SlimDX XNA MonoGame OpenGL ES 1.1 OpenGL ES 2.0
Windows              Only Business Licenses  Only Business Licenses
Windows 8                
Windows Phone 7                
Windows Phone 8                
iOS (iPhone, iPad) (2014)                
XBox One (2014)                
PS Vita (2014)                

Supported on Core Datatypes Entities Input Logging Multimedia Content Networking Physics2D Rendering Scenes System.XML System.Linq
Windows .NET                          
Windows C++                          
Windows Java                          
Android C++                          
Android Java                          
iOS Objective C                          
Windows Phone 7                          
Windows Phone 8                          
HTML5 / JavaScript                          

Language Feature

Windows .NET Windows C++
Windows Java
Android C++ Android Java iOS
Windows Phone 7 Windows Phone 8 HTML5


Type inference

ref/out parameters



Anonymous types

Lambdas  anonymous delegates


User-defined operators


User-defined conversions

Method overloading

Constructor overloading
Object and collection initializers          
using statement
Exception handling
Named and default arguments    
C# variable capture semantics          
Always evaluate expressions left-to-right
Nullable types and lifted operators          
Nested types ( ) ( )
Query expressions          
goto/goto case/goto default      
Iterator blocks (yield)          
Multi-dimensional arrays
Expression trees          
lock statement  
operator true/false       
extern alias            
Clipped integer type (short/byte)  ( ) ( )  
User-defined value types (structs)      

Profiling overlays real-time data on system and code performance.

Aspects that can currently be profiled include FPS, CPU usage and available and used RAM - as well as reporting on various system information that won't change during the running of the app such as max CPU speed, max RAM and so on.

In addition, reports and graphs can profile code performance giving a breakdown of where the application is being stressed the most and where the bottlenecks might be - whether it's the rendering, the physics, or any other subsection.

It is also relatively easy to mark your own subsections of code to be profiled, simply by bookending with start and stop calls to the profiler and then requesting profiling results - either every frame or at desired intervals.

Support for Keyboard, Mouse, Gamepad and Touch input devices provided via interfaces, can be used in most frameworks given that the device the application is used on supports it. Commands defining which action shall result from an input event can be defined via settings and/or directly in the application's code. Some Commands are already defined if using the default settings and can be attached to using their names.

An overview what input devices to use for your target platforms.

Platform Mouse Keyboard Gamepad Touch
iOS    *    
Android    *  **  
Browser       ***  
PsVita     *    

* Virtual
** Only for devices with usb
*** if browser supports it

Platform In App Purchases Providers Supported Ad Providers
Windows PayPal, Google, Amazon None
Web PayPal, Google, Amazon Google
Android Google Play, PayPal, Amazon AdMob
iOS Apple In-App Purchase, PayPal iAd
Windows 8 Microsoft, PayPal Microsoft
Windows Phone Microsoft Microsoft

Interfaces for network functionalities as well as a messaging system for communication provided for use in any multiplayer scenarios.