References:
- XNA Creators Club http://creators.xna.com/
- XNA Developer Center http://msdn2.microsoft.com/en-us/xna/default.aspx
- XNA FAQ http://msdn2.microsoft.com/it-it/directx/Aa937793.aspx
- XNA Team Blog http://blogs.msdn.com/xna/
- Shawn Hargreaves blog http://blogs.msdn.com/shawnhar/
What XNA is not
It might sound a bit weird, starting stating what XNA is not. Last year we experienced a bit of confusion because after the first tutorials where everything was easy and nice, it was not really clear how far XNA went. Here we start describing XNA boundary with the hope you can get the big picture quickly. There will be a lot talking about XNA later, here we just introduce to you some of what you are going to do, as well as an overview of what XNA offers as "already there" stuff.XNA is not a full game "Engine"
So you're going to create a game, right? In here we assume that you have already a fully described game design document, plus an artists team working on the game assets. (That's a joke, actually. You are asked to manage that stuff too, but for the time being let us consider only the programming part). If you want to program a game you will (partially) build a so called game engine. First, let define roughly what a "game engine" is. Basically it's a piece of software which provides the technologies to run a specific game. Usually, it's much more: it simplifies the development with a set of tools (such as level builder applications, assets import tools, ...), it is composed by reusable technologies, it simplifies the transition to different platforms. Such engines are often called "middleware", in a business sense, because of the cost reduction granted by their flexibility and reusability which makes the manager happy and the game published. The core functionalities (necessary for one game to run) typically are:- Rendering Engine
- Physical Engine
- Sound Scripting
- Handling of Animation
- Artificial Intelligence
- Networking
- Memory Management
What is XNA then?
This session will just scratch the surface of XNA, and it's goal is introductory. First, some wikipedia definitions of three main concepts.XNA Framework
The XNA Framework is based on the .NET Framework 2.0. 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 and Xbox 360.XNA Framework Content Pipeline
The XNA Framework Content Pipeline is a set of tools focused on reducing the learning curve of 3D game development for small teams. Getting content from DCC* tools into a usable format for runtime consumption is a fundamental problem for 3D game developers. Consuming this content requires that the content be properly conditioned based on a diverse number of factors ranging from the breadth of DCC formats to optimizing content for different platforms (Windows, Xbox 360). The XNA Framework Content Pipeline aims to solve this problem by using Visual Studio as the key design point around organizing and consuming 3D content. * DCC = Digital Content Creation: Tools that allows you create models, textures, sounds, shader files, i.e. the so called game "assets".XNA Game Studio Express
XNA Game Studio Express is a new game development solution targeted primarily at students, hobbyists, and independent game developers. XNA Game Studio Express is based on Visual C# Express 2005 and lets developers create games for both Windows and Xbox 360. XNA Game Studio Express also contains a full set of documentation, how-tos, and starter kits that demonstrate how best to use the content pipeline and XNA Framework, and runs side-by-side with other versions of Visual Studio without interference.Overview
XNA offers basically three things- Application model (class Game)
- Content pipeline
- Various libraries (math, graphics, sound, input)