The last time I did any games development was in the 80s when I had a Commodore 64. Things have moved on a little since then, and the recent release of XNA gave me the ideal opportunity to have a little play and revisit the whole area of games development and see what XNA was like

Why XNA?

Games development is Big Business – I am reliably informed that the game “GoldenEye” made more money than the film and cost a lot less to produce. But at the same time game profitability is under threat, leading to loads of sequels, expansion packs, franchises, brand etc rather than brand new ideas (“IP”).

The reason? Game development is expensive. Not just in terms of lines of code, but a huge number of additional resources needed – graphics designers, musicians, etc. Costs run to tens of millions of $ and teams of 30+. It costs a lot to create and distribute a game.

Recently, the growth of Xbox Live Arcade coincides with a rise in "casual" / “retro” gaming. Lower cost games can be distributed via Xbox Live Arcade and bought via Microsoft Points. This is lowering the entry barrier for these types of games.

What is XNA?

"The XNA Framework allows game developers to create modern games using the C# programming language and a rich set of development libraries. The XNA Framework provides its own content pipeline to make it easy to get rich content (3D, 2D, sound, etc.) from content creation sources into a game. The XNA Framework also provides a very high level of API unification across the Windows and 360 implementations, thus virtually eliminating the cost and effort required to port games between these two platforms" (from the XNA web site).

XNA "stands for" XNA’s Not Acronymed :-). It requires Visual C# Express 2005 and XNA Game Studio Express, and XNA Creators Club membership is required for targeting Xbox 360

XNA Framework on Windows is a set of class libraries built against the .NET Framework 2.0. The XNA Framework makes use of a custom, native implementation of the .NET Compact Framework 2.0 CLR on the Xbox 360

XNA Game Studio Express games are limited to non-commercial scenarios for 360 titles and commercial games for Windows. XNA Game Studio Professional will allow developers to create commercial games for the Xbox 360 and will be released some time in the future

XNA Programming

New application structure helps provide a starting structure. Update loop is the best place to update your game logic: move objects around, take player input, decide the outcome of collisions between objects, and so on. Draw loop is the best place to render all of your objects and backgrounds on the screen, etc.

XNA places importance on Assets . graphics, sound, textures, etc. .tga (Truevision's (now Pinnacle Systems) TGA File Format, often referred to as TARGA File Format, is a raster graphics file format, .fbx (Autodesk FBX format). Content Pipeline bring in assets.

There is 2D Modelling and Sprites are back – one thing the Commodore 64 had :-)

Sound is via Microsoft Cross-Platform Audio Creation Tool (XACT) which handles Audio engines, Wave banks, sound banks, cues

There are input classes for Xbox 360 Controller, the keyboard, and the mouse, covering thumb sticks, triggers, and analogue and digital input.

Useful Resources

http://msdn.microsoft.com/xna/

http://blogs.msdn.com/xna/

http://learn-xna.com/

http://www.xnatutorial.com/