Microsoft XNA

The XNA toolset was announced on March 24, 2004, at the Game Developers Conference in San Jose, California.

It includes an extensive set of class libraries, specific to game development, to promote maximum code reuse across target platforms.

The framework runs on a version of the Common Language Runtime that is optimized for gaming to provide a managed execution environment.

The XNA Framework provides support for both 2D and 3D game creation and allows use of the Xbox 360 controllers and vibrations.

[19] It added support for the Windows Phone platform (including 3D hardware acceleration), framework hardware profiles, configurable effects, built-in state objects, graphics device scalars and orientation, cross-platform and multi-touch input, microphone input and buffered audio playback, and Visual Studio 2010 integration.

[20] XNA "Game Studio 4.0 Refresh" was released on 6 October 2011, and added support for Windows Phone 7.5 (Mango), and Visual Basic.

The extensions include additional managed APIs for achievements, leaderboards, and other features reserved for licensed game titles.

The Microsoft XNA Framework 2.0 EULA specifically prohibits the distribution of commercial networked games that connect to Xbox Live and/or Games for Windows Live in the absence of a specific agreement signed by both the developer and Microsoft.

[27] Microsoft also distributed a free year premium App Hub subscription for educational establishments through their DreamSpark program and MSDNAA.

A project called Mono.XNA was formed to port XNA to the open source and cross-platform Mono framework.

[28] From the codebase of Mono.XNA and SilverSprite, a new project called MonoGame was formed to port XNA to several mobile devices.

An open source project called Grommet contains a limited port for embedded devices using the .NET Micro Framework.

[32] A project called ANX is available which implements its own version of XNA using the SharpDX stack; support for Linux, macOS and the PlayStation Vita is in progress as well.

[33][34] Using ANX, developers are able to write games using code that is very similar to XNA, while still being considered a Metro application in Windows 8.