What is XNA?

XNA is a game development platform from Microsoft.  The letters “XNA” don’t stand for anything… They’re not an acronym.

Using XNA technology, you can write a game for Windows, XBox 360, & Zune.  A single project can produce BOTH an executable for Windows AND and XBox 360 game.

XNA supports both 2D and 3D objects in games (both at the same time, if you like).  It has support for networking built in.  “Games for Windows” is complementary technology that XNA also supports.  By simply adding a single line of code, your XNA game becomes a “Games for Windows” game.  “Games for Windows” games have a very slick user interface built in for logging onto your Games for Windows account (which is also the same as your XBox Live account).  You can add friends and send messages and compete against friends online… including your friends on XBox 360!!  That’s right, your game for Windows and your game for XBox 360 can have users competing against each other, in real time, on both platforms!

XNA is not a single product.  Developers download the SDK for Visual Studio.  They can then deploy their Windows games via Click-Once technology, which is quite awesome.

Game players for Windows can simply click a URL to run a game, but this game is NOT a JavaScript for Flash based game… It’s a real, hardcore Windows game that runs on Windows (not the browser).

To deploy a game to the XBox 360, developers pay an annual $99 fee and can participate in forum discussions with their peers, submit games for testing and approval, then get their games published on the XBox Live marketplace.  They set their own prices on their games using Microsoft Points (meaning they sell their game to users and users pay with their own Microsoft points, which are then converted to real dollars and sent to the developer).  The price options amount to about $2.50, $4.00, $10 and $15, if I recall correctly.  The developer keeps 70% of the income and Microsoft keeps 30%.  But, when you sell it as a Windows game, you set your own price, sell it however you like (on CD, as a download, or as a Click-Once deployed app) and you keep 100% of the proceeds.  The only time Microsoft takes a slice is if you sell it on the XBox Live marketplace.  (Update):  Microsoft has started a new app store for Games for Windows, so you now have the option of selling your Windows game through there too, but of course, Microsoft will take a slice.  You still have the option of marketing and promoting and selling all on your own, outside of the Market place and you’re not required to sell your Windows version through Microsoft’s app store… It’s just an additional option for you (you can sell it both by yourself AND in the app store, if you like).

I attended an XNA session at CodeStock 2008 and the same one (for a refresher) at CodeStock 2009.  You can read my review from the CodeStock 2008 XNA session here.

Shortly after the 2008 session, I began developing a game with my kids.  We worked on it in earnest for a few months, but have let it side idle, with only a little bit of work since.  When we complete it, we’ll be publishing it on XBox Live Marketplace AND on our own website for Windows players.  I’ll update this article when it’s released.

Related Reading:

Beware of cheap XBox 360 consoles!
CodeStock 2008 XNA

What is Click-Once technology?

“Click-Once” is a deployment technology created by Microsoft.  It makes deploying Windows software drastically easier for both the writers of the software and for the consumers of the software that will run it on their machines.

Here’s how it works from the distributor’s end (I’ll explain how it works from the consumer’s end in a moment):

The distributor of the software deploys their project directly from Visual Studio to a web server (any web server… not just IIS).  Several files are created in the process, including a launch page with a run button (that doesn’t have to be used), a file ending in “.application”, a subfolder with the executable and associated DLLs.  All the files are digitally signed by the distributor for security and the whole thing is versioned and GUID’d.  The distributor has the option of letting the software be run straight from the URL or to let it be installed locally on the user’s machine.  They also have the option of letting it check for newer updates every time the user runs it and additionally can force a refusal to run unless it’s the latest version on the server.

From the user’s end:

They will either use the “run” button on the publish.htm file that gets generated during the deployment which then redirects to the “setup.exe” file on the server.  In that case, the setup.exe file is downloaded like any other file and the browser gives the user the option to save or run.

Or they’ll click a URL that reference the “.application” file on the server, or they’ll double-click an icon on their desktop which references a “.application” file on the server.

In the case of the .applicaton file, what happens next is the Click-Once technology activates from the browser and reads the .application file (which is a manifest XML file explaining where the content is as well as a hash to make sure it hasn’t been modified since it was deployed).  It then downloads another manifest XML file from the application’s content folder on the server and then downloads and attempts to run the EXE, but not without asking the user’s permission first, as well as displaying the signed certificate information to the user.  The user has the option of accepting or rejecting it.

From the user’s point of view:

The user clicks a link, is prompted if they want to run it, then it just runs.

Benefits of Click-Once for a software distributor:

  • Rapid deployment.
  • Control over whether users can:
    • install it locally to launch locally (with or without checking for newer versions)
    • only launch it from the URL.
    • have to run only the latest version.

Benefits of Click-Once for a user:

  • Easy launching (simply by clicking a URL).
  • Very strong security:
    • Always given the option to accept or deny a certificate.
    • Always given the option to allow it to run at each launch.
    • Zero footprint… There’s no “installation” as most software.  No system settings can be changed during the simulated “install”.
    • Can be sure they’re always running the latest version.
    • It’s .NET software, so they have the ability to control what resources the EXE can have access to on the machine (through a control panel applet).

An application can also be deployed as a Click-Once application for CD or DVD distribution.  In that case, the end user uses the CD or DVD in the same way as a web site.

For an article directed at why you would use this (if that wasn’t answered here), click here

For more information, directly from Microsoft, go here.