Microsoft XNA

Last updated

Microsoft XNA
Microsoft XNA logo.svg
Developer(s) Microsoft Gaming
Target platform(s) Xbox 360, Windows, Windows Phone
Editor software XNA Game Studio
Player software XNA Runtime
Format(s)XNB
Programming language(s) C# and Visual Basic .NET [1] (officially)
Application(s) Video games, console games, mobile games
StatusDiscontinued [2] [3] [4]
License Freeware
Website msdn.microsoft.com/xna/   OOjs UI icon edit-ltr-progressive.svg

Microsoft XNA (a recursive acronym for XNA's not acronymed) [5] is a freeware set of tools with a managed runtime environment that Microsoft Gaming developed to facilitate video game development. XNA is based on .NET Framework, with versions that run on Windows and Xbox 360. XNA Game Studio can help develop XNA games. The XNA toolset was announced on March 24, 2004, at the Game Developers Conference in San Jose, California. A first Community Technology Preview of XNA Build was released on March 14, 2006.

Contents

In many respects, XNA can be thought of as a .NET analog to Microsoft's better known game development system, DirectX, 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, [6] and it is not compatible with Windows Runtime (the API for developing Metro-style apps), which was introduced with Windows 8. [7]

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 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 runtime is available for Windows XP, Windows Vista, Windows 7, Windows Phone and Xbox 360. 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 and 2010 (as of XNA 4.0) [8] [ failed verification ] are officially supported. [9] Support for Visual Basic .NET was added in 2011. [10]

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 (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. [9] 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. [11]

XNA Game Studio

XNA Game Studio is a programming environment for development of games. [12] Five revisions have been released so far, but as of 2015, no new versions will be developed. [13]

XNA Game Studio Express was the first version released on August 30, 2006, and was intended for students, hobbyists, and independent game developers. [14] [15] It was available as a free download. Express provides basic "starter kits" for rapid development of specific genres of games, such as platform games, real-time strategy, and first-person shooters. Developers could create Windows 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. [16] XNA Game Studio 2.0 features the ability to be used with all versions of Visual Studio 2005 (including the free Visual C# 2005 Express Edition), [17] a networking API using Xbox Live on both Windows and Xbox 360 and better device handling. [18]

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 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. [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. [21]

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". [12]

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. [22] 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 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. [23] 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.[ citation needed ]

Games created using XNA Game Studio may be distributed via the Windows Phone marketplace, and formerly via Xbox Live Indie Games. [24] The software may also be used to create commercial games which target Windows.[ citation needed ]

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. [25] 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, [26] 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. Creators could set a price of 80, 240 or 400 points 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. [27]

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. [28]

From the codebase of Mono.XNA and SilverSprite, a new project called MonoGame was formed to port XNA to several mobile devices. [29] As of version 3.0.1 (released March 3, 2013), support is stable for iOS, Android including OUYA, macOS, Linux and Metro for Windows 8, Windows RT and Windows Phone 8, as well as PlayStation Mobile in 2D. PlayStation Mobile 3D and Raspberry Pi development are currently in progress. [30]

FNA [31] 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. [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.

See also

Related Research Articles

<span class="mw-page-title-main">DirectX</span> Collection of multimedia related APIs on Microsoft platforms

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", such as Direct3D, DirectDraw, DirectMusic, DirectPlay, DirectSound, and so forth. The name DirectX was coined as a shorthand term for all of these APIs and soon became the name of the collection. When Microsoft later set out to develop a gaming console, the X was used as the basis of the name Xbox to indicate that the console was based on DirectX technology. The X initial has been carried forward in the naming of APIs designed for the Xbox such as XInput and the Cross-platform Audio Creation Tool (XACT), while the DirectX pattern has been continued for Windows APIs such as Direct2D and DirectWrite.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

<span class="mw-page-title-main">Visual Basic (.NET)</span> Object-oriented computer programming language

Visual Basic (VB), originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language, implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the successor to its original Visual Basic language, the last version of which was Visual Basic 6.0. Although the ".NET" portion of the name was dropped in 2005, this article uses "Visual Basic [.NET]" to refer to all Visual Basic languages released since 2002, in order to distinguish between them and the classic Visual Basic. Along with C# and F#, it is one of the three main languages targeting the .NET ecosystem. Microsoft updated its VB language strategy on 6 February 2023, stating that VB is a stable language now and Microsoft will keep maintaining it.

<span class="mw-page-title-main">Microsoft Visual Studio Express</span> Integrated development environment

Microsoft Visual Studio Express was a set of integrated development environments (IDEs) that Microsoft developed and released free of charge. They are function-limited version of the non-free Visual Studio and require mandatory registration. Express editions started with Visual Studio 2005.

Windows Presentation Foundation (WPF) is a free and open-source user interface framework for Windows-based desktop applications. WPF applications are based in .NET, and are primarily developed using C# and XAML.

The Microsoft .NET Compact Framework is a version of the .NET Framework that is designed to run on resource constrained mobile/embedded devices such as personal digital assistants (PDAs), mobile phones, factory controllers, set-top boxes, etc. The .NET Compact Framework uses some of the same class libraries as the full .NET Framework and also a few libraries designed specifically for mobile devices such as .NET Compact Framework controls. However, the libraries are not exact copies of the .NET Framework; they are scaled down to use less space.

Microsoft Windows SDK, and its predecessors Platform SDK, and .NET Framework SDK, are software development kits (SDKs) from Microsoft that contain documentation, header files, libraries, samples and tools required to develop applications for Microsoft Windows and .NET Framework. Platform SDK specializes in developing applications for Windows 2000, XP and Windows Server 2003. .NET Framework SDK is dedicated to developing applications for .NET Framework 1.1 and .NET Framework 2.0. Windows SDK is the successor of the two and supports developing applications for Windows XP and later, as well as .NET Framework 3.0 and later.

<span class="mw-page-title-main">MonoDevelop</span> Integrated development environment, discontinued for macOS

MonoDevelop is a discontinued open-source integrated development environment for Linux, macOS, and Windows. Its primary focus is development of projects that use Mono and .NET Framework. MonoDevelop integrates features similar to those of NetBeans and Microsoft Visual Studio, such as automatic code completion, source control, a graphical user interface (GUI), and Web designer. MonoDevelop integrates a Gtk# GUI designer called Stetic. It supports Boo, C, C++, C#, CIL, D, F#, Java, Oxygene, Vala, JavaScript, TypeScript, and Visual Basic.NET. Although there is no word from the developers that it has been discontinued, nonetheless, it hasn't been updated in 4 years and is no longer installable on major operating systems, such as Ubuntu 22.04 and above.

Xbox Live Indie Games were video games created by individual developers or small teams of developers released on Microsoft's Xbox Live Marketplace for the Xbox 360. The games were developed using Microsoft XNA, and developed by one or more independent developers that are registered with App Hub. Unlike Xbox Live Arcade titles, these were generally only tested within the local creator community, had much lower costs of production, and generally were less expensive to purchase. The service was released to widespread use alongside the New Xbox Experience, and as of November 2014, over 3,300 games had been released on the service, many receiving media attention. All Indie Games currently require the user to be logged into their Xbox Live account to initiate the start-up of each game. Indie Games were not available in Australia due to local classification requirements which were unable to be fulfilled, though there were workarounds which allowed Australian users to download them regardless. The Xbox Live Indie Games program did not continue with the release of the Xbox One, and the marketplace for these games was shuttered on October 7, 2017.

<span class="mw-page-title-main">.NET Framework</span> Software platform developed by Microsoft

The .NET Framework is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until being superseded by the cross-platform .NET project. It includes a large class library called Framework Class Library (FCL) and provides language interoperability across several programming languages. Programs written for .NET Framework execute in a software environment named the Common Language Runtime (CLR). The CLR is an application virtual machine that provides services such as security, memory management, and exception handling. As such, computer code written using .NET Framework is called "managed code". FCL and CLR together constitute the .NET Framework.

Cocos2d is an open-source game development framework for creating 2D games and other graphical software for iOS, Android, Windows, macOS, Linux, HarmonyOS, OpenHarmony and web platforms. It is written in C++ and provides bindings for various programming languages, including C++, C#, Lua, and JavaScript. The framework offers a wide range of features, including physics, particle systems, skeletal animations, tile maps, and others.

<span class="mw-page-title-main">Windows Phone Store</span> Digital distribution platform for Windows Phone

Windows Phone Store is an app store platform, developed by Microsoft Corporation for Windows Phone letting users installing various apps on their device. It initially launched with Windows Phone 7 in October 2010. With the rollout of Windows Phone 7.5, Microsoft unveiled the online Marketplace that offers over the air installation of apps. In August 2012, Microsoft renamed Windows Phone Marketplace to Windows Phone Store. In 2015, Microsoft announced that Windows Phone Store would be killed out and replaced by Windows Store which would act as a unified store for all Windows-powered devices. This process was complemented by the Apps on Windows website, an interim solution before the unified Windows Store.

<span class="mw-page-title-main">Microsoft XNA Game Studio</span> Integrated development environment

Microsoft XNA Game Studio is a discontinued integrated development environment (IDE) for building video games on the Microsoft XNA platform. Such video games can run on Xbox 360, Microsoft Windows, Windows Phone and the Zune. XNA Game Studio is targeted at hobbyists and experienced programmers, and is primarily used to develop 2D and 3D video games for various Microsoft platforms. XNA games can be published for the Xbox 360 using an XNA Creator's Club membership, that has a yearly fee.

<span class="mw-page-title-main">.NET Framework version history</span>

Microsoft started development on the .NET Framework in the late 1990s originally under the name of Next Generation Windows Services (NGWS). By late 2001 the first beta versions of .NET Framework 1.0 were released. The first version of .NET Framework was released on 13 February 2002, bringing managed code to Windows NT 4.0, 98, 2000, ME and XP.

<span class="mw-page-title-main">Mono (software)</span> Computer software project

Mono is a free and open-source software framework that aims to run software made for the .NET Framework on Linux and other OSes. Originally by Ximian which was acquired by Novell, it was later developed by Xamarin which was acquired by Microsoft. In August 2024, Microsoft transferred ownership of Mono to WineHQ.

MonoGame is a free and open source C# framework used by game developers to make games for multiple platforms and other systems. It is also used to make Windows and Windows Phone games run on other systems. It supports iOS, iPadOS, Android, macOS, Linux, PlayStation 4, PlayStation 5, PlayStation Vita, Xbox One, Xbox Series X/S and Nintendo Switch. It implements the Microsoft XNA 4 application programming interface (API). It has been used for several games, including Bastion, Celeste,Fez and Stardew Valley.

<span class="mw-page-title-main">.NET</span> Software platform developed by Microsoft

The .NET platform is a free and open-source, managed computer software framework for Windows, Linux, and macOS operating systems. The project is mainly developed by Microsoft employees by way of the .NET Foundation and is released under an MIT License.

Universal Windows Platform (UWP) is a computing platform created by Microsoft and introduced in Windows 10. The purpose of this platform is to help develop universal apps that run on Windows 10, Windows 10 Mobile (discontinued), Windows 11, Xbox One, Xbox Series X/S, and HoloLens without the need to be rewritten for each. It supports Windows app development using C++, C#, VB.NET, and XAML. The API is implemented in C++, and supported in C++, VB.NET, C#, F# and JavaScript. Designed as an extension to the Windows Runtime (WinRT) platform introduced in Windows Server 2012 and Windows 8, UWP allows developers to create apps that will potentially run on multiple types of devices.

References

  1. "XNA Game Studio 4.0 Refresh". September 29, 2011.
  2. Rose, Mike (February 1, 2013). "It's official: XNA is dead". Gamasutra.
  3. "XNA Is Dead: 3 Alternatives That Let You Use Your C# Skills". Lifehacker. February 2, 2013.
  4. Williams, Chris. "XNA is Dead; Long Live the New XNA, MonoGame". Code Magazine. Retrieved May 8, 2016.
  5. "DirectX Developer Center: XNA Frequently Asked Questions". MSDN . Microsoft. August 20, 2006. Archived from the original on August 20, 2006. Retrieved May 17, 2021.
  6. Crossley, Rob (January 31, 2013). "Microsoft email confirms plan to cease XNA support". Computer and Video Games . Future Publishing.
  7. Klepek, Patrick (September 16, 2011). "The Future of XNA Game Studio and Windows 8". Giant Bomb .
  8. "App Hub - downloads". Archived from the original on February 4, 2015.
  9. 1 2 "XNA Frequently Asked Questions". MSDN . September 8, 2009. Archived from the original on September 8, 2009. Retrieved February 21, 2023.
  10. "Code Sample Details - Game State Management (Mango, C#/VB)". Xbox MSDN . Microsoft. May 24, 2011. Archived from the original on June 4, 2013. Retrieved June 15, 2013.
  11. "Will XNA tools be able to help reduce game sizes?". MSDN . January 24, 2006. Archived from the original on February 6, 2006.
  12. 1 2 "Developing games". MSDN . July 31, 2012. Archived from the original on August 30, 2012. Retrieved March 20, 2007.
  13. Hruska, Joel (February 1, 2013). "Microsoft kills XNA". ExtremeTech .
  14. "Microsoft Invites the World to Create Its Own Xbox 360 Console Games for the First Time". Microsoft . August 13, 2006. Archived from the original on August 20, 2006.
  15. "XNA Game Studio Express". MSDN . Archived from the original on September 7, 2008. Retrieved February 21, 2023.
  16. "XNA Creators Club Online - Quick Start Guide". MSDN . Archived from the original on September 7, 2008.
  17. "XNAtutorial.com". XNA Tutorial. Archived from the original on October 23, 2006.
  18. "XNA Team Blog : XNA Game Studio 2.0 Released". MSDN . Archived from the original on August 26, 2009. Retrieved December 13, 2007.
  19. "XNA Game Studio 4.0 Available for Download". XNA Game Studio Team Blog. Microsoft. September 16, 2010. Archived from the original on August 7, 2011. Retrieved September 16, 2010.
  20. "What's New in XNA Game Studio 4.0". MSDN. Microsoft. Archived from the original on September 19, 2008. Retrieved September 16, 2010.
  21. "XNA Game Studio 4.0 Refresh". Downloads. Microsoft. October 6, 2011.
  22. "Download GDC 2009: XNA Game Studio Program Overview from Official Microsoft Download Center". Microsoft.com. Archived from the original on July 24, 2010. Retrieved June 15, 2013.
  23. XNA Game Studio 2.0 Software License Terms [ dead link ]
  24. Winterhalter, Ryan (April 29, 2011). "31 Homebrew Games Worth Playing". 1UP.com . Archived from the original on May 3, 2011. Retrieved May 1, 2011.
  25. Dream Build Play, Alfred Thompson
  26. "App Hub". Create MSDN. Archived from the original on October 12, 2010.
  27. "Download History News". Archived from the original on March 31, 2009. Retrieved March 30, 2009.
  28. "Mono.XNA" . Retrieved April 8, 2009.
  29. "MonoGame: Write Once, Play Everywhere" . Retrieved March 24, 2013.
  30. "MonoGame Wiki". GitHub . Retrieved March 24, 2013.
  31. "About FNA". FNA. Retrieved February 21, 2023.
  32. "Grommet - A .NET Micro Framework Library". CodePlex . Archived from the original on November 4, 2009. Retrieved November 2, 2009.
  33. "AXN.Framework". CodePlex . Archived from the original on November 28, 2011.
  34. "SharpDX". SharpDX. Archived from the original on January 16, 2023. Retrieved February 21, 2023.

Further reading

Training resources