Elite Games - Свобода среди звезд!

Уроки для программистов - Кратко о XNA

С чего бы начать? Начну, наверное, с освещения такого вопроса: что это за зверь такой XNA framework, для чего он создан и с чем его едят.

Microsoft XNA framework — это управляемая библиотека для работы с трёхмерной графикой, звуком, устройствами ввода (клавиатура, мышь, джойстик) и тд.
Тут стоит подчеркнуть слово «управляемая». Дело в том, что XNA framework — это библиотека, которая основана на платформе .NET . В случае, если вы не знаете о чём идёт речь, вам нужно запастись знаниями по таким пунктам:

Microsoft .Net
C#

И так... Я надеюсь, читатель уже имеет базовые знания о Microsoft .Net в общем и о C# в частности. Если это не так, то читайте предыдущий абзац.

Что же всё-таки представляет собой XNA framework (далее просто XNA)?

XNA — это надстройка над неуправляемым (классическим) DirectX. Во всяком случае такую картину можно наблюдать для операционной системы Windows. Дело в том, что XNA является кроссплатформенной библиотекой.
Библиотека разрабатывалась корпорацией Microsoft с целью создания единого инструмента для разработки игр на двух не совместимых платформах, принадлежащих той же компании. А именно: Microsoft Windows и Microsoft XBOX360.
В связи с этим XNA framework не является банальным враппером.
Во-первых, XNA предоставляет такие возможности, которые в DirectX в принципе не нужны. Например, работа с файловой системой в DirectX-приложениях происходит с помощью использования стандартных библиотек ОС Windows. В XNA же для этих целей предусмотрены специальные классы, которые так же легко работают на XBOX360, как и на Windows.
Во-вторых, математические классы XNA не являются обвёртками над неуправляемым DirectX, а полностью реализованы с нуля. Что, в большинстве случаев, позволяет добиться производительности на уровне классического DirctX.
В-третьих, используя специализированные классы библиотеки программист может лишить себя «удовольствия» писать обработчики на такие задачи, как обработка потери устройства, загрузка/выгрузка контента (модели, текстуры и др.), организация игрового цикла и многие другие «прелести», которые очень сильно омрачали жизнь каждому начинающему игроделу (профи от них, наверное, тоже не в восторге).
В-четвёртых, для этой библиотеки имеется среда разработки XNA Game Studio. При этом Express Edition (бесплатная версия) содержит, кроме основного функционала, так называемые Starter Kit'ы — заготовки в виде простых игр, которые можно использовать, как для обучения, так и для принятия их за основу своих игр.

Подробнее о возможностях XNA Game Studio я расскажу в следующих статьях. А сейчас только скажу, что для написания статей я использую XNA Game Studio Express Edition v2.0 Так же необходимо указать, что XNA Game Studio требует для своей работы установленный Visual C# 2005 Express Edition с обновлениями до SP1

Дистрибутив Microsoft Visual C# 2005 Express Edition — образ диска. Размер 445Мб
Дистрибутив Microsoft Visual C# 2005 Express Edition — онлайн установка
Дистрибутив Microsoft XNA Game Studio v2.0 Размер 98.6МБ
Дистрибутив Microsoft XNA framework Redistributable Размер 2.1Мб

На что способен XNA framework?

На многое. Что бы не разводить болтологию и дать читателю первое представление о возможностях библиотеки, я решил в эту статью включить таблицу с описанием основных пространств имён XNA framework

Пространство имён

Описание

Microsoft.XNA.FrameWorkМатематические расчеты: матричная алгебра, аналитическая геометрия, проверка столкновений и т.д. В Managed DirectX эта функциональность (в урезанном виде) реализовывалась посредством библиотеки D3DX, являющейся частью DirectX. XNA Framework выполняет математические расчеты собственными средствами, что в некоторых случаях несколько повышает производительностью благодаря отсутствию накладных расходов взаимодействия с COM.
Microsoft.XNA.FrameWork.GraphicsРабота с графикой. В данном пространстве имён находятся все основные классы для работы с двухмерной и трёхмерной графикой. Например, класс графического устройства. Аналог в DirectX — Direct3D
Microsoft.XNA.FrameWork.AudioРабота со звуком. Аналог в DirectX — DirectSound
Microsoft.XNA.FrameWork.InputРабота с устройствами ввода: клавиатура, мышь, джойстик и тд. Аналог в DirectX — DirectInput
Microsoft.XNA.FrameWork.StorageРабота с файловой системой текущей платформы: загрузка и сохранение настроек приложения, сохранение и загрузка игры и другое. Аналога в DirectX не имеется. Это объясняется тем, что DirectX — не кроссплатформеная библиотека. Следовательно все операции с файловой системой ложаться на стандартные функции API
Microsoft.XNA.FrameWork.GameОрганизация цикла игрового приложения : загрузка контента, запуск рендеренга и тд. и тп. Аналога в DirectX я не знаю. В принципе, без этих возможностей можно обойтись, но в конце всё равно прийдётся писать что-то своё подобное


Но не думайте, что я описал хоть десятую часть всех пространств имён библиотеки или всех её возможностей. В дальнейшем мы будем подробней рассматривать те или иные возможности XNA.

И на последок я хотел бы ответить на такой вопрос...

Какие технические характеристики и требования XNA framework?

Ну, во-первых, XNA построена полностью на принципе программированного конвеера. То есть разработчики полностью отказались от фиксированного конвеера и тем самым ужесточили требования к аппаратному обеспечению компьютера. А именно, библиотека может функционировать только если видеокарта поддерживает, как минимум, Pixel Shader v1.1. Но это не сильно должно нас волновать, так как поддержка этой технологии есть у видеокарт начиная с Geforce 2 (кроме серий MX)
Во-вторых, XNA поддерживает фрагментные (пиксельные) шейдеры от версий 1.1 до 3.0 Это объясняется тем, что основа XNA — DirectX 9.0c, а так же тем фактом, что XBOX360 поддерживает шейдеры только до версии 3.0 В связи с этим, в ближайшее время, не предполагается добавление поддержки шейдеров 4-ой версии (DirectX 10)
Что же относительно остального, то возможности XNA практически такие же, как и у DirectX 9.0c

Так же следует указать, что официально XNA Game Studio поддерживает только такие операционные системы: Windows XP SP2 и Windows Vista

Ну и на последок, я думаю, тут не помешает несколько ссылок на тематические сайты.

Официальный сайт XNA Game Studio
Русское сообщество на XNADev.ru
Русское сообщество на ru.ziggyware.com
Lefi Mind
К началу раздела | Наверх страницы Сообщить об ошибке
Уроки для программистов - Кратко о XNA
Все документы раздела: Для тех, кто хочет писать игры | Движок на OpenGL | Создание игр в Game Maker | Bump mapping | Использование Direct Input | XNA framework |


Дизайн Elite Games V5 beta.18
EGM Elite Games Manager v5.17 02.05.2010