Microsoft XNA (a
recursive acronym for XNA's not acronymed) is a
freeware
Freeware is software, often proprietary, that is distributed at no monetary cost to the end user. There is no agreed-upon set of rights, license, or EULA that defines ''freeware'' unambiguously; every publisher defines its own rules for the free ...
set of tools with a
managed runtime environment
In computer programming, a runtime system or runtime environment is a sub-system that exists in the computer where a program is created, as well as in the computers where the program is intended to be run. The name comes from the compile time ...
that
Microsoft Gaming
Microsoft Gaming is an American multinational video game and digital entertainment division of Microsoft based in Redmond, Washington, established in 2022. Its five development and publishing labels consist of: Xbox Game Studios, Bethesda Soft ...
developed to facilitate
video game
A video game or computer game is an electronic game that involves interaction with a user interface or input device (such as a joystick, game controller, controller, computer keyboard, keyboard, or motion sensing device) to generate visual fe ...
development
Development or developing may refer to:
Arts
*Development (music), the process by which thematic material is reshaped
* Photographic development
*Filmmaking, development phase, including finance and budgeting
* Development hell, when a proje ...
. XNA is based on
.NET Framework, with versions that run on
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
and
Xbox 360
The Xbox 360 is a home video game console developed by Microsoft. As the successor to the Xbox (console), original Xbox, it is the second console in the Xbox#Consoles, Xbox series. It was officially unveiled on MTV on May 12, 2005, with detail ...
.
XNA Game Studio can help develop XNA games. The XNA toolset was announced on March 24, 2004, at the
Game Developers Conference
The Game Developers Conference (GDC) is an annual conference for video game developers. The event includes an expo, networking events, and awards shows like the Game Developers Choice Award for Game of the Year, Game Developers Choice Awards and ...
in
San Jose, California
San Jose, officially the City of San José ( ; ), is a cultural, commercial, and political center within Silicon Valley and the San Francisco Bay Area. With a city population of 997,368 and a metropolitan area population of 1.95 million, it is ...
. A first
Community Technology Preview of XNA Build was released on March 14, 2006.
In many respects'', XNA'' can be thought of as a .NET analog to Microsoft's better known game development system,
DirectX
Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direct" ...
, but it is aimed at developers primarily interested in writing lightweight games. XNA is the basic platform for
Xbox Live Indie Games.
As of January 2013, XNA is no longer being developed, and it is not compatible with
Windows Runtime (the API for developing
Metro-style apps), which was introduced with
Windows 8
Windows 8 is a major release of the Windows NT operating system developed by Microsoft. It was Software release life cycle#Release to manufacturing (RTM), released to manufacturing on August 1, 2012, made available for download via Microsoft ...
.
Overview
XNA Framework
Microsoft XNA Framework is based on the native implementation of
.NET Compact Framework 2.0 for Xbox 360 development and
.NET Framework 2.0 on Windows. It includes an extensive set of class libraries, specific to game development, to promote maximum
code reuse
Code reuse is the practice of using existing source code to develop software instead of writing new code. ''Software reuse'' is a broader term that implies using any existing software asset to develop software instead of developing it again. An as ...
across target platforms. The framework runs on a version of the
Common Language Runtime
The Common Language Runtime (CLR), the virtual machine component of Microsoft .NET Framework, manages the execution of .NET programs. Just-in-time compilation converts the managed code (compiled intermediate language code) into machine instr ...
that is optimized for gaming to provide a
managed execution environment. The runtime is available for
Windows XP
Windows XP is a major release of Microsoft's Windows NT operating system. It was released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct successor to Windows 2000 for high-end and business users a ...
,
Windows Vista
Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, released five years earlier, which was then the longest time span between successive releases of Microsoft W ...
,
Windows 7
Windows 7 is a major release of the Windows NT operating system developed by Microsoft. It was Software release life cycle#Release to manufacturing (RTM), released to manufacturing on July 22, 2009, and became generally available on October 22, ...
,
Windows Phone
Windows Phone (WP) is a discontinued mobile operating system developed by Microsoft Mobile for smartphones as the replacement successor to Windows Mobile and Zune. Windows Phone featured a new user interface derived from the Metro design languag ...
and
Xbox 360
The Xbox 360 is a home video game console developed by Microsoft. As the successor to the Xbox (console), original Xbox, it is the second console in the Xbox#Consoles, Xbox series. It was officially unveiled on MTV on May 12, 2005, with detail ...
. Since XNA games are written for the runtime, they can run on any platform that supports the XNA Framework with minimal or no modification. Games that run on the framework can technically be written in any .NET-compliant language, but only
C# in
XNA Game Studio Express IDE and all versions of
Visual Studio 2008
Visual Studio is an integrated development environment (IDE) developed by Microsoft. It is used to develop computer programs including web site, websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development ...
and 2010 (as of XNA 4.0) are officially supported.
Support for
Visual Basic .NET was added in 2011.
The XNA Framework encapsulates low-level technological details involved in coding a game, making sure that the framework itself takes care of the difference between platforms when games are ported from one compatible platform to another, and thereby allowing game developers to focus more on the content and gaming experience. The XNA Framework integrates with a number of tools, such as the
Cross-platform Audio Creation Tool
Cross-platform Audio Creation Tool (XACT) is an audio programming library and engine released by Microsoft as part of the DirectX SDK. It is a high-level audio library for authoring/playing audio that is written to use ''Xaudio'' on the ''Xbox'', ...
(XACT), to aid in content creation.
The XNA Framework provides support for both 2D and 3D game creation and allows use of the Xbox 360 controllers and vibrations. XNA framework games that target the Xbox 360 platform could only be distributed by members of the Microsoft XNA Creator's Club/App Hub, which carried a $99/year subscription fee.
Desktop applications can be distributed free of charge under Microsoft's current licensing.
XNA Build
XNA Build is a set of game asset pipeline management tools, which help by defining, maintaining, debugging, and optimizing the ''game asset pipeline'' of individual game development efforts. A ''game asset pipeline'' describes the process by which game content, such as textures and 3D models, are modified to a form suitable for use by the gaming engine. XNA Build helps identify the pipeline dependencies, and also provides API access to enable further processing of the dependency data. The dependency data can be analyzed to help reduce the size of a game by finding content that is not actually used. For example, XNA Build analysis revealed that 40% of the textures that shipped with ''
MechCommander 2'' were unused and could have been omitted.
XNA Game Studio
XNA Game Studio is a
programming environment for development of games.
Five revisions have been released so far, but as of 2015, no new versions will be developed.
XNA Game Studio Express was the first version released on August 30, 2006, and was intended for students, hobbyists, and independent game developers.
It was available as a free download. Express provides basic "starter kits" for rapid development of specific genres of games, such as
platform game
A platformer (also called a platform game, and sometimes a jump 'n' run game) is a subgenre of action game in which the core objective is to move the player character between points in an environment. Platform games are characterized by levels wi ...
s,
real-time strategy
Real-time strategy (RTS) is a Video game genre, subgenre of strategy video games that does not progress incrementally in turn-based game, turns, but allow all players to play simultaneously, in "real time." By contrast, in Turn-based strategy, tur ...
, and
first-person shooter
A first-person shooter (FPS) is a video game genre, video game centered on gun fighting and other weapon-based combat seen from a First person (video games), first-person perspective, with the player experiencing the action directly through t ...
s. Developers could create
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
games for free with the XNA Framework, but to run their games on the Xbox 360 they will have to pay an annual fee of US$99 (or a four-month fee of US$49) for admission to the Microsoft XNA Creator's Club. With an update, XNA developers could compile Xbox 360 binaries and share them with other Microsoft XNA Creator's Club members.
XNA Game Studio 2.0 was released on December 13, 2007. XNA Game Studio 2.0 features the ability to be used with all versions of
Visual Studio 2005
Visual Studio is an integrated development environment (IDE) developed by Microsoft. It is used to develop computer programs including web site, websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development ...
(including the free
Visual C# 2005 Express Edition), a networking API using
Xbox Live
The Xbox network, formerly known and commonly referred to as Xbox Live, is an online multiplayer gaming and digital media delivery service created and operated by Microsoft Gaming for the Xbox brand. It was first made available to the origina ...
on both Windows and Xbox 360 and better device handling.
XNA Game Studio 3.0 (for Visual Studio 2008 or the free Visual C# 2008 Express Edition) allows production of games targeting the
Zune platform and adds
Xbox Live
The Xbox network, formerly known and commonly referred to as Xbox Live, is an online multiplayer gaming and digital media delivery service created and operated by Microsoft Gaming for the Xbox brand. It was first made available to the origina ...
community support. It was released on October 30, 2008, and supported C# 3.0, LINQ and most versions of Visual Studio 2008.
XNA Game Studio 4.0 was released on September 16, 2010. It added support for the
Windows Phone
Windows Phone (WP) is a discontinued mobile operating system developed by Microsoft Mobile for smartphones as the replacement successor to Windows Mobile and Zune. Windows Phone featured a new user interface derived from the Metro design languag ...
platform (including 3D hardware acceleration), framework hardware profiles, configurable effects, built-in state objects, graphics device scalars and orientation, cross-platform and
multi-touch
In computing, multi-touch is technology that enables a surface (a touchpad or touchscreen) to recognize the presence of more than one somatosensory system, point of contact with the surface at the same time. The origins of multitouch began at CE ...
input, microphone input and buffered audio playback, and
Visual Studio 2010 integration.
XNA "Game Studio 4.0 Refresh" was released on 6 October 2011, and added support for Windows Phone 7.5 (Mango), and
Visual Basic Visual Basic is a name for a family of programming languages from Microsoft. It may refer to:
* Visual Basic (.NET), the current version of Visual Basic launched in 2002 which runs on .NET
* Visual Basic (classic), the original Visual Basic suppo ...
.
XNA Framework Content Pipeline
The XNA Framework Content Pipeline is a set of tools that allows Visual Studio and XNA Studio to act "as the key design point around organizing and consuming 3D content".
XDK Extensions
Formerly known as XNA Game Studio Professional, XDK Extensions is an add-on to XNA Game Studio and requires the Microsoft Xbox 360 Development Kit. Both are only available for licensed Xbox developers. The extensions include additional managed APIs for achievements, leaderboards, and other features reserved for licensed game titles. Titles developed using XDK Extensions include winners of Microsoft's
Dream.Build.Play competition among others. The most heavily publicized of these was ''
The Dishwasher: Dead Samurai''.
License agreement
The Microsoft XNA Framework 2.0
EULA
An end-user license agreement or EULA () is a legal contract between a software supplier and a customer or end-user.
The practice of selling licenses to rather than copies of software predates the recognition of software copyright, which has ...
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. This means that XNA Game Studio can still be used to develop commercial games and other programs for the Windows platform, although Microsoft's networking support code for Xbox/Windows Live cannot be used. Self-developed network code can still be used inside the developer's XNA project.
Games created using XNA Game Studio may be distributed via the
Windows Phone
Windows Phone (WP) is a discontinued mobile operating system developed by Microsoft Mobile for smartphones as the replacement successor to Windows Mobile and Zune. Windows Phone featured a new user interface derived from the Metro design languag ...
marketplace, and formerly via
Xbox Live Indie Games.
The software may also be used to create commercial games which target Windows.
Dream Build Play
Dream Build Play was an annual and global $75,000 Microsoft contest promoting Microsoft XNA and eventually
Xbox Live Indie Games, although it predated it. The contest was first announced in 2006 and first opened in January 2007. Many winners are notable developers in the
Indie game community.
Xbox Live Indie Games
Xbox 360 games written in XNA Game Studio could be submitted to the App Hub, for which premium membership was required (about US$99/year). All games submitted to the App Hub were subjected to peer review by other creators. If the game passed review then it would be listed on
Xbox Live Marketplace
Xbox Games Store (formerly Xbox Live Marketplace) was a digital distribution platform previously used by Microsoft's Xbox 360 and formerly by the Xbox One. The service allowed users to download or purchase video games (including both Xbox Live Ar ...
. Creators could set a price of 80, 240 or 400
points
A point is a small dot or the sharp tip of something. Point or points may refer to:
Mathematics
* Point (geometry), an entity that has a location in space or on a plane, but has no extent; more generally, an element of some abstract topologica ...
for their game. The creator is paid 70% of the total revenue from their game sales as a baseline. Microsoft originally planned to take an additional percentage of revenue if they provided additional marketing for a game, but this policy was rescinded in March 2009, leaving the flat rate intact regardless of promotion.
Microsoft also distributed a free year premium App Hub subscription for educational establishments through their
DreamSpark program and
MSDNAA. These accounts allowed students to develop games for the Xbox 360, but developers still needed a premium Xbox Live account to submit their game to the marketplace.
Alternative implementations
A project called
Mono.XNA was formed to port XNA to the open source and cross-platform
Mono framework.
From the codebase of Mono.XNA and SilverSprite, a new project called
MonoGame was formed to port XNA to several mobile devices. As of version 3.0.1 (released March 3, 2013), support is stable for
iOS
Ios, Io or Nio (, ; ; locally Nios, Νιός) is a Greek island in the Cyclades group in the Aegean Sea. Ios is a hilly island with cliffs down to the sea on most sides. It is situated halfway between Naxos and Santorini. It is about long an ...
,
Android including
OUYA
The Ouya ( ), stylized as OUYA, is an Android (operating system), Android-based microconsole developed by Ouya Inc. Julie Uhrman founded the project in 2012, bringing in designer Yves Béhar to collaborate on its design and Muffi Ghadiali as VP ...
,
macOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
,
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
and
Metro for
Windows 8
Windows 8 is a major release of the Windows NT operating system developed by Microsoft. It was Software release life cycle#Release to manufacturing (RTM), released to manufacturing on August 1, 2012, made available for download via Microsoft ...
,
Windows RT and
Windows Phone 8
Windows Phone 8 is the second generation of the Windows Phone mobile operating system from Microsoft Corporation, Microsoft, released on October 29, 2012. It runs on the Windows NT kernel and is the successor to Windows Phone 7. It was the first ...
, as well as
PlayStation Mobile in 2D.
PlayStation Mobile 3D and
Raspberry Pi
Raspberry Pi ( ) is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in collaboration with Broadcom Inc., Broadcom. To commercialize the product and support its growing demand, the ...
development are currently in progress.
FNA is a full-featured open source reimplementation of XNA forked from MonoGame. The goal of FNA is to preserve the XNA game library by reimplementing XNA itself.
An open source project called Grommet contains a limited port for embedded devices using the
.NET Micro Framework.
A project called ANX is available which implements its own version of XNA using the SharpDX stack; support for
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
macOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
and the
PlayStation Vita
The PlayStation Vita (PS Vita) is a handheld game console developed and marketed by Sony Computer Entertainment. It was first released in Japan on December 17, 2011, then in other international territories on February 22, 2012, and was produced ...
is in progress as well.
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.
See also
*
Game engine
A game engine is a software framework primarily designed for the development of video games which generally includes relevant libraries and support programs such as a level editor. The "engine" terminology is akin to the term " software engine" u ...
*
Game development tool
A game is a structured type of play usually undertaken for entertainment or fun, and sometimes used as an educational tool. Many games are also considered to be work (such as professional players of spectator sports or video games) or art (su ...
*
MonoGame
*
Adobe AIR
Adobe AIR (also known as Adobe Integrated Runtime and codenamed Apollo) is a cross-platform runtime system currently developed by Harman International, in collaboration with Adobe Inc., for building desktop applications and mobile application ...
*
Win2D
References
Further reading
*
External links
XNA Developers Center
;Training resources
XNA Video TutorialsXNACommunity at
CodeplexXNA Tutorialsat ''RB Whitaker's Wiki''
XNA Tutorial/Workshop WebsiteXNA Meeting Point: Tutorials in English, French and Spanish
{{Authority control
.NET Framework terminology
XNA
XNA
Programming tools for Windows
Video game engines
Xbox 360 software