Framework Support Framework Support




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


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++
(2014)
Windows Java
(2014)
Android C++ Android Java iOS
Objective-C
(2014)
Windows Phone 7 Windows Phone 8 HTML5
JavaScript
Inheritance

 
 



Type inference








ref/out parameters

 
 



Generics








Anonymous types
 






Lambdas  anonymous delegates

 
 



User-defined operators

 
 



User-defined conversions
         


Method overloading





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


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
Windows        
Mac        
Linux        
iOS    *    
Android    *  **  
XBox        
Playstation        
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.