Microsoft xna что это
Перейти к содержимому

Microsoft xna что это

  • автор:

Microsoft XNA Framework Redistributable 4.0 — что это?

Microsoft XNA Framework Redistributable 4.0 — компонент, необходимый для корректной работы некоторых игр (улучшает физику в некоторых игровых моментов).

Удалять компонент нежелательно.

Простыми словами: игра может создаваться, используя в том числе функции XNA. Если так — значит такая игра сможет корректно работать при наличии компонента XNA. Без него — скорее всего даже не запустится, или в лучшем случае графика будет более худшего качества.

Разбираемся

  1. Данный компонент XNA был создан компанией Майкрософт для разработчиков — облегчает процесс создания игр и качественной графикой, а также их управление. Компонент помогает избежать повторяющегося кода при написании игр.
  2. В чем фишка XNA? Как я понимаю, суть в том, что улучшается физика в игре. Майкрософт продемонстрировала возможности XNA — в ролике показала, как облако дыма подымается и меняет свою форму/направление движение из-за внешних факторов, то есть примерно так, как бы это происходило в реальной жизни. Второй пример — разрушение обьекта, части которого разлетались в разные стороны, направление и форма также зависело от типа/скорости разрушения. То есть XNA немного физику/поведение обьектов изменяет, делает более естественным.
  3. Изначально XNA был сделан чтобы облегчить создание игр для платформы Xbox и Windows.

Это окно Программы и компоненты, откуда можно удалить XNA. Если вы точно уверены что это нужно. PS: открыть данное окно можно следующим способом: зажмите клавиши Win + R > вставьте команду appwiz.cpl > нажмите ОК. При установке игры данный компонент может поставиться автоматически. Кроме игр думаю его могут использовать и другой софт. Поэтому если он у вас присутствует — не спешите удалять, а если надумали, тогда лучше сделать заранее точку восстановления.

Надеюсь данная информация оказалась полезной. Удачи и добра, до новых встреч друзья!

Знакомство с XNA и написание первой музыкальной игры

Привет всем начинающим геймдевелоперам и просто хорошим людям. Сегодня, я хочу познакомить вас с замечательным фреймворком XNA (набор инструментов с управляемой средой времени выполнения dotNet). Программировать мы будем на C#.
Для того, чтобы познакомить вас с XNA ближе, я предлагаю написать простую «музыкальную» 2D игрушку. Остальное под катом.

Краткое описание на википедии

Microsoft XNA (англ. XNA’s Not Acronymed) — набор инструментов с управляемой средой времени выполнения (.NET), созданный Microsoft, облегчающий разработку и управление компьютерными играми. XNA стремится освободить разработку игр от написания «повторяющегося шаблонного кода»

Что для этого нам будет нужно?
Что предполагается разобрать и сделать на этом уроке?
  • Подключить сборки XNA Framework
  • Создать пустое приложение с закрашиванием фона
  • Научиться подгружать контент
  • Научиться работать со звуком
  • Научиться работать с графикой
Какую игру мы будем реализовывать?

Механика игры проста до безумия. Смысл будет построен на музыке, в случае с этой игрой, будет использована композиция Исаака Шепарда — Leaves in the Wind. Нужно будет ловить мышкой «ноты», скорость и кол-во которых будут зависимы от текущей позиции в музыки, грубо говоря игровой «визуализатор». Для разнообразия существуют 5 тип нот: обычные, красные (враги), пурпурные (мощь), мигающие (превращает все в желтые), желтые (увеличивает скорость набора очков и размеры).

Собираем вещи пустой проект

Проект music_catch — «логика» нашего приложения.
Game1.cs — главный класс приложения, унаследован он от Microsoft.Xna.Framework.Game
Program.cs — «точка входа» в приложение, он нам не интересен.
Проект music_catchContent — «контент» нашего приложения, туда мы будем складывать ресурсы.

Более подробно взглянем на Game1.cs
В нем можно выделить основные функции, такие как:
Game1() — конструктор класса.
Initialize() — инициализация приложения.
LoadContent() — загрузка контента.
UnloadContent() — выгрузка контента.
Update(GameTime gameTime) — обновление логики приложения (например физики, etc)
Draw(GameTime gameTime) — отрисовка игры. ВНИМАНИЕ, любые операции с рисованием нужно проводить тут и только тут.

Пустой проект собран, идем дальше, добавляем ресурсы в приложение, все нужные ресурсы «кидаем» в папку music_catch\music_catchContent. В нашем случае — пять PNG файлов и одно музыкальное сопровождение. Добавляем это все в проект:

Там же создаем шрифт, в теле SpriteFont1.spritefont указываем имя и размер:

Создаем переменные для будущего контента:

И грузим его в LoadContent():

Кстати, подгружается контент следующим образом: вызывается Content.Load<>(«asset»);
В треугольных скобках указывается процессор контента, в нашем случае это Texture2D, Song, SpriteFont. Можно использовать свои процессоры, об этом я расскажу как-нибудь потом.

Контент подгружен, идем в конструктор Game1() и пишем:

Пишем «игровую логику»

Теперь нам нужно создать контроллер системы частиц и сами частицы (ноты), которые мы будем виртуозно ловить мышкой.
Создаем два класса: Catcher (сами частицы) и CatcherHolder (система частиц).

Листинг Catcher с комментариями:

Листинг CatcherHolder с комментариями:

Объясню, что за загадочный аккумулятор и зачем он нужен. Поговорим о «музыкальном» спектре.

Музыкальный сигнал – пища для аудиосистемы. Точнее – не так. Динамики музыку не слушают, ее восстанавливает наш мозг, получая сложный сигнал, содержащий множество частотных составляющих.
Дак вот, идея такая, слушать «частоты» каждый Update и записывать их в какой-нибудь, например, VisualizationData. Проще говоря, в массив из 128 элементов, которые изменяются от 0f до 1f.

Как этим можно воспользоваться?
Каждый Update: значения в массиве меняются в соответствии с музыкой, нам нужно проверить все 128 элементов, если значение элемента больше чем 0.6f, вызываем Beat-функцию и передаем ей Wave (индекс элемента массива, в котором произошло событие). Все бы хорошо, можно в Beat создавать частичку-ноту. Но представим, что у нас выполняется три Update’а подряд, в котором в одном и том же индексе — значение > 0.6f, как итог будет 100500 частичек за секунду. Чтобы таких вещей не происходило, можно использовать аккумулятор. Смысл его прост: при Beat’е у ячейки массива-аккумулятора соотвествующего индексу Wave отнимается константа BEAT_COST. Каждый Update ко всем элементам аккумулятора прибавляется ACCUMULATE_SPEED. Перед тем, как вызвать Beat проверяется выполняется ли условие — значение аккумулятора > ACCOMULATOR_REACTION, если да, то вызываем Beat. Это решает проблему.

Кстати, BEAT_REACTION — значение, после которых нужно проверять, стоит ли вызывать Beat.

Дальше приведу полный листинг GameLogic (Game1). Много кода, но постараюсь расписать в комментариях.

Вот такая простенькая игрушка получается. На конечной машине пользователя должен быть установлен XNA 4.0 и .NET;

Скриншот:

Microsoft XNA

Microsoft XNA (англ.  XNA’s Not Acronymed [2] ) — набор инструментов с управляемой средой времени выполнения (.NET), созданный Microsoft, облегчающий разработку и управление компьютерными играми. XNA стремится освободить разработку игр от написания «повторяющегося шаблонного кода» [3] и объединить различные аспекты разработки игр в одной системе. Набор инструментов XNA был анонсирован 24 марта 2004 на Game Developers Conference в Сан-Хосе, Калифорния. Первый Community Technology Preview XNA Build был выпущен 14 марта 2006.

Содержание

Цели и описание проекта

Пакет Microsoft XNA, по словам представителей Microsoft, позволит разработчикам игр избежать многих технических трудностей, возникающих при написании кода, а также обеспечит существенное снижение стоимости конечной продукции. Кроме того, благодаря XNA программисты смогут создавать принципиально новые игры с высококачественной графикой. В ходе демонстрации, Microsoft показала два анимационных ролика, созданных с применением технологии XNA. В одном из них облако вздымающегося сигаретного дыма в режиме реального времени меняло свою форму и направление движения под действием внешних факторов. Другой ролик демонстрировал разлетающиеся в разные стороны детали разбившегося о стену автомобиля.

Инструментарий XNA изначально разрабатывался с целью максимально облегчить процесс разработки игр для консоли Xbox и компьютеров, работающих под управлением операционной системы Windows. Вместе с тем, пакет XNA позволит распространить общие сервисы Xbox Live, такие как, например, аутентификация, на игры для персональных компьютеров. Инструментарий XNA позволяет Microsoft конкурировать с Sony на рынке видеоигр для следующего поколения игровых приставок.

Обзор

XNA Framework

XNA Framework основывается на нативной реализации .NET Compact Framework 2.0 для разработки для Xbox 360 и .NET Framework 2.0 на Windows. Он включает обширный набор библиотек классов, специфичных для разработки игр, поддерживающий максимальное повторное использование кода на всех целевых платформах. Фреймворк выполняется на модификации Common Language Runtime, оптимизированной для игр, чтобы предоставить управляемую среду выполнения. Среда времени выполнения доступна для Windows XP, Windows Vista, и Xbox 360. Так как игры XNA пишутся для среды времени выполнения, они могут быть запущены на любой платформе, поддерживающей XNA Framework с минимальными изменениями или вообще без таковых. Игры, которые запускаются на фреймворке, технически могут быть написаны на любом .NET-совместимом языке, но официально поддерживается только язык программирования C# и среды быстрой разработки XNA Game Studio Express и все версии Visual Studio 2005 [4] .

XNA Framework скрывает низкоуровневые технологические детали, связанные с разработкой игры. Таким образом, фреймворк заботится о разнице между платформами, позволяя разработчикам уделять больше внимания смысловому содержимому игры. XNA Framework интегрируется с несколькими инструментами, такими как XACT, для помощи в создании контента. XNA Framework предоставляет поддержку создания и двухмерных, и трёхмерных игр и позволяет использовать возможности контроллеров Xbox 360. Игры фреймворка XNA, предназначенные для платформы Xbox на данный момент могут быть проданы только членам клуба Microsoft XNA Creator’s Club [4] . Десктопные приложения могут распространяться бесплатно под текущим лицензированием Microsoft.

XNA Content Pipeline

XNA Content Pipeline — набор интегрированных в Visual Studio инструментов управления конвейером ресурсов игры, помогающий при определении, поддержке, отладке и оптимизации конвейера ресурсов игры. Конвейер ресурсов игры(англ.  Content Pipeline ) описывает процесс, при котором содержимое игры, такое как текстуры и трёхмерные модели, преобразуется в форму, подходящую для использования игровым движком. Content Pipeline помогает идентифицировать зависимости конвейера, а также предоставляет доступ к программному интерфейсу, позволяющему производить дальнейшую обработку данных о зависимостях. Данные о зависимостях могут быть проанализированы для уменьшения размера игры посредством выявления содержимого, которое не используется.

XNA Game Studio

XNA Game Studio — интегрированная среда разработки (IDE) для разработки игр [5] . Было выпущено пять модификаций:

  • XNA Game Studio Professional была запланирована как версия XNA IDE, предназначенная для профессиональных разработчиков игр [5] . Основанная на Visual Studio 2005 Team System, XNA Studio предоставляет структуру для совместной работы создателей контента, программистов, менеджеров и тестеров. XNA Studio автоматизирует задачи управления проектом, такие как управление ресурсами, слежение за ошибками, автоматизация проекта и работа над спецификациями. Разработка XNA Game Studio Professional остановлена.
  • XNA Game Studio Express предназначена для студентов, любителей и независимых разработчиков игр [4] . Эта модификация доступна для бесплатного скачивания. XNA Game Studio Express предоставляет базовые «стартовые наборы» для быстрой разработки игр типичных жанров, таких как платформер, стратегия в реальном времени и шутер от первого лица. Разработчики могут создавать игры для Windows бесплатно, используя XNA Framework, но для запуска своих игр на Xbox 360 они должны платить членские взносы для доступа к Microsoft XNA Creator’s Club. Первый релиз не предоставлял возможности предоставления скомпилированных бинарных файлов другим игрокам Xbox 360, но в «XNA Game Studio Express 1.0 Refresh» появилась возможность скомпилировать бинарные файлы для Xbox 360 и поделиться ими с другими членами Microsoft XNA Creator’s Club. Первая бета версия XNA Game Studio Express стала доступной для скачивания 30 августа2006, вторая — 1 ноября2006. Финальную версию Microsoft выпустила 11 декабря2006[6] . 24 апреля2007 Microsoft выпустила обновление XNA Game Studio Express 1.0 Refresh[7] .
  • XNA Game Studio 2.0 была выпущена 13 декабря2007[8] . Эта версия предоставила возможность использования со всеми версиями Visual Studio 2005 (включая бесплатную Visual C# 2005 Express Edition), API для создания сетей, использующий Xbox Live, под Windows и на Xbox 360 и лучшее управление устройствами [9] . Она так же была доступна для бесплатного скачивания на сайте XNA Creator Club.
  • XNA Game Studio 3.0 (для Visual Studio 2008 или бесплатной Visual C# 2008 Express Edition) позволила создавать игры, предназначенные для платформы Microsoft Zune и добавила поддержку сообщества Xbox Live. Бета-версия инструментария была выпущена в сентябре 2008 [10] , а финальная версия — 30 октября2008. XNA Game Studio 3.0 поддерживает C# 3.0, LINQ и большинство версий Visual Studio 2008. В XNA Game Studio 3.0 появилось много новых возможностей, таких как тестовый режим, позволяющий создателям добавить необходимую тестовую возможность в свою игру, возможности мультиплейера Xbox LIVE, такие как внутриигровые приглашения, создание кроссплатформенных игр, которые работают под Windows, Xbox 360 и Zune.
  • XNA Game Studio 3.1 была выпущена 11 июня2009. В API добавилась поддержка воспроизведения видео, исправленный аудио API, система Xbox LIVE Party и поддержка игр для использования Xbox 360 Avatars [11] .
  • XNA Game Studio 4 была выпущена 16 сентября2010. Включает в себя поддержку аппаратного 3D ускорения в Windows Phone 7 и интеграцию с Visual Studio 2010.
  • XNA Game Studio 4 Refresh была выпущена 6 октября2011.

Лицензионное соглашение

EULA Microsoft XNA Framework 2.0 специально запрещает распространение коммерческих сетевых игр, которые соединяются с Xbox Live и/или Games for Windows Live без специального соглашения между Вами и Microsoft. XNA Game Studio может быть использована для разработки коммерческих игр и других программ для платформы Windows, но код Microsoft для поддержки сети Xbox/Windows Live не может быть использован. В своём проекте XNA можно использовать собственный код поддержки сети.

Игры, созданные с использованием XNA Game studio, на данный момент можно распространять через Xbox Live Community Games [12] [13] . Программное обеспечение также может быть использовано для создания коммерческих игр, предназначенных для Windows.

XNA Community Games

Игры для Xbox 360, написанные в XNA Game Studio могут быть представлены Creators Club community, для чего требуется членство, стоящее 49 долларов США за 4 месяца или 99 долларов США в год. Все игры представленные сообществу подвергаются равной оценке других разработчиков. Если игра успешно проходит рецензирование, она попадает на Xbox Live Marketplace. Создатели могут установить цену в 200, 400 или 800 points для своей игры. Разработчик получает 70 % полной выручки от объёма продаж своей игры в качестве основы. Microsoft изначально планировали брать дополнительный процент выручки, если они предоставляют дополнительный маркетинг для игры, но эта политика была отменена в марте 2009, оставив стандартную цену без изменений [14] .

Microsoft также распространяет «тестовые аккаунты» для образовательных учреждений в рамках их программы DreamSpark. Эти аккаунты позволяют студентам разрабатывать игры для Xbox 360, но, чтобы выставить игру на Marketplace, требуется привилегированный аккаунт.

Microsoft xna что это

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

И так. Я надеюсь, читатель уже имеет базовые знания о 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

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

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

Но не думайте, что я описал хоть десятую часть всех пространств имён библиотеки или всех её возможностей. В дальнейшем мы будем подробней рассматривать те или иные возможности 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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *