Microsoft XNA ( рекурсивная аббревиатура от XNA, не сокращенная ) [5] — это бесплатный набор инструментов с управляемой средой выполнения , разработанный Microsoft Gaming для упрощения разработки видеоигр . XNA основан на .NET Framework , с версиями, работающими на Windows и Xbox 360. XNA Game Studio может помочь в разработке игр XNA. Набор инструментов XNA был анонсирован 24 марта 2004 года на конференции разработчиков игр в Сан-Хосе, Калифорния . Первая предварительная версия Community Technology Preview XNA Build была выпущена 14 марта 2006 года.
Во многих отношениях XNA можно рассматривать как аналог .NET более известной системы разработки игр от Microsoft, DirectX , но она нацелена на разработчиков, в первую очередь заинтересованных в написании легких игр. XNA является базовой платформой для Xbox Live Indie Games .
По состоянию на январь 2013 года XNA больше не разрабатывается [6] и несовместим с Windows Runtime (API для разработки приложений в стиле Metro ), который был представлен в Windows 8. [ 7]
Microsoft XNA Framework основан на собственной реализации .NET Compact Framework 2.0 для разработки Xbox 360 и .NET Framework 2.0 на Windows. Он включает в себя обширный набор библиотек классов, специфичных для разработки игр, для содействия максимальному повторному использованию кода на целевых платформах. Фреймворк работает на версии Common Language Runtime , оптимизированной для игр, чтобы обеспечить управляемую среду выполнения. Среда выполнения доступна для Windows XP , Windows Vista , Windows 7 , Windows Phone и Xbox 360. Поскольку игры XNA написаны для среды выполнения, они могут работать на любой платформе, которая поддерживает XNA Framework с минимальными изменениями или без них. Игры, работающие на фреймворке, технически могут быть написаны на любом языке, совместимом с .NET, но официально поддерживаются только C# в XNA Game Studio Express IDE и все версии Visual Studio 2008 и 2010 (начиная с XNA 4.0) [8] [ неудачная проверка ] . [9] Поддержка Visual Basic .NET была добавлена в 2011 году. [10]
XNA Framework инкапсулирует низкоуровневые технологические детали, задействованные в кодировании игры, гарантируя, что сам фреймворк учитывает разницу между платформами, когда игры переносятся с одной совместимой платформы на другую, и тем самым позволяя разработчикам игр больше сосредоточиться на контенте и игровом опыте. XNA Framework интегрируется с рядом инструментов, таких как Cross-platform Audio Creation Tool (XACT), для помощи в создании контента.
XNA Framework обеспечивает поддержку создания как 2D, так и 3D игр и позволяет использовать контроллеры и вибрации Xbox 360. Игры XNA Framework, предназначенные для платформы Xbox 360, могут распространяться только членами Microsoft XNA Creator's Club/App Hub, подписка на которые стоит 99 долларов в год. [9] Настольные приложения могут распространяться бесплатно в соответствии с текущей лицензией Microsoft.
XNA Build — это набор инструментов управления конвейером игровых активов, которые помогают определять, поддерживать, отлаживать и оптимизировать конвейер игровых активов отдельных усилий по разработке игр. Конвейер игровых активов описывает процесс, посредством которого игровой контент, такой как текстуры и 3D-модели, модифицируется в форму, подходящую для использования игровым движком. XNA Build помогает определить зависимости конвейера, а также предоставляет доступ к API для дальнейшей обработки данных зависимостей. Данные зависимостей можно проанализировать, чтобы помочь уменьшить размер игры, найдя контент, который фактически не используется. Например, анализ XNA Build показал, что 40% текстур, которые поставлялись с MechCommander 2, не использовались и могли быть опущены. [11]
XNA Game Studio — это среда программирования для разработки игр. [12] На данный момент выпущено пять версий, но по состоянию на 2015 год новые версии разрабатываться не будут. [13]
XNA Game Studio Express была первой версией, выпущенной 30 августа 2006 года и предназначенной для студентов, любителей и независимых разработчиков игр. [14] [15] Она была доступна для бесплатной загрузки. Express предоставляет базовые «стартовые наборы» для быстрой разработки определенных жанров игр, таких как платформенные игры , стратегии в реальном времени и шутеры от первого лица . Разработчики могли создавать игры для Windows бесплатно с помощью XNA Framework, но для запуска своих игр на Xbox 360 им придется платить ежегодный взнос в размере 99 долларов США (или четырехмесячный взнос в размере 49 долларов США) за вступление в Microsoft XNA Creator's Club. С обновлением разработчики XNA могли компилировать двоичные файлы Xbox 360 и делиться ими с другими членами Microsoft XNA Creator's Club.
XNA Game Studio 2.0 была выпущена 13 декабря 2007 года. [16] XNA Game Studio 2.0 поддерживает все версии Visual Studio 2005 (включая бесплатную Visual C# 2005 Express Edition ), [17] сетевой API с использованием Xbox Live как на Windows, так и на Xbox 360, а также улучшенную обработку устройств. [18]
XNA Game Studio 3.0 (для Visual Studio 2008 или бесплатного Visual C# 2008 Express Edition) позволяет создавать игры, ориентированные на платформу Zune , и добавляет поддержку сообщества Xbox Live . Он был выпущен 30 октября 2008 года и поддерживал C# 3.0, LINQ и большинство версий Visual Studio 2008.
XNA Game Studio 4.0 была выпущена 16 сентября 2010 года. [19] Она добавила поддержку платформы Windows Phone (включая аппаратное ускорение 3D), профили оборудования фреймворка, настраиваемые эффекты, встроенные объекты состояния, скаляры и ориентацию графических устройств, кроссплатформенный и мультисенсорный ввод, микрофонный ввод и буферизованное воспроизведение звука, а также интеграцию с Visual Studio 2010. [20]
XNA «Game Studio 4.0 Refresh» был выпущен 6 октября 2011 года и добавил поддержку Windows Phone 7.5 (Mango) и Visual Basic . [21]
XNA Framework Content Pipeline — это набор инструментов, который позволяет Visual Studio и XNA Studio выступать «в качестве ключевой точки проектирования при организации и использовании 3D-контента» [12] .
Ранее известный как XNA Game Studio Professional, XDK Extensions является дополнением к XNA Game Studio и требует Microsoft Xbox 360 Development Kit. [22] Оба доступны только для лицензированных разработчиков Xbox. Расширения включают в себя дополнительные управляемые API для достижений, таблиц лидеров и других функций, зарезервированных для лицензированных игр. В число игр, разработанных с использованием XDK Extensions, входят победители конкурса Microsoft Dream.Build.Play и другие. Наиболее широко разрекламированной из них была The Dishwasher: Dead Samurai .
Microsoft XNA Framework 2.0 EULA специально запрещает распространение коммерческих сетевых игр , которые подключаются к Xbox Live и/или Games for Windows Live, при отсутствии специального соглашения, подписанного как разработчиком, так и Microsoft. [23] Это означает, что XNA Game Studio по-прежнему может использоваться для разработки коммерческих игр и других программ для платформы Windows, хотя код поддержки сетей Microsoft для Xbox/Windows Live не может быть использован. Самостоятельно разработанный сетевой код по-прежнему может использоваться внутри проекта XNA разработчика. [ необходима цитата ]
Игры, созданные с помощью XNA Game Studio, могут распространяться через магазин Windows Phone , а ранее — через Xbox Live Indie Games . [24] Программное обеспечение также может использоваться для создания коммерческих игр, ориентированных на Windows. [ требуется ссылка ]
Dream Build Play был ежегодным и глобальным конкурсом Microsoft с призовым фондом $75 000, продвигающим Microsoft XNA и, в конечном итоге, Xbox Live Indie Games , хотя он и предшествовал ему. Конкурс был впервые анонсирован в 2006 году и впервые открыт в январе 2007 года. [25] Многие победители являются известными разработчиками в сообществе инди-игр .
Игры для Xbox 360, написанные в XNA Game Studio, можно было отправлять в App Hub, [26] для чего требовалось премиум-членство (около 99 долларов США в год). Все игры, отправленные в App Hub, подвергались рецензированию другими создателями. Если игра проходила рецензию, она появлялась на Xbox Live Marketplace . Создатели могли устанавливать цену в 80, 240 или 400 баллов за свою игру. Создателю выплачивается 70% от общего дохода от продаж игр в качестве базовой линии. Изначально Microsoft планировала брать дополнительный процент от дохода, если они предоставляли дополнительный маркетинг для игры, но эта политика была отменена в марте 2009 года, оставив фиксированную ставку неизменной независимо от продвижения. [27]
Microsoft также распространяла бесплатную годовую премиум-подписку App Hub для образовательных учреждений через свою программу DreamSpark и MSDNAA . Эти учетные записи позволяли студентам разрабатывать игры для Xbox 360, но разработчикам по-прежнему требовалась премиум-учетная запись Xbox Live, чтобы представить свою игру на рынке.
Проект Mono.XNA был сформирован для переноса XNA на кроссплатформенную среду Mono с открытым исходным кодом . [28]
Из кодовой базы Mono.XNA и SilverSprite был сформирован новый проект под названием MonoGame для портирования XNA на несколько мобильных устройств. [29] Начиная с версии 3.0.1 (выпущенной 3 марта 2013 года) стабильная поддержка поддерживается для iOS , Android, включая OUYA , macOS , Linux и Metro для Windows 8 , Windows RT и Windows Phone 8 , а также PlayStation Mobile в 2D. В настоящее время ведется разработка PlayStation Mobile 3D и Raspberry Pi . [30]
FNA [31] — это полнофункциональная открытая переделка XNA, ответвленная от MonoGame. Цель FNA — сохранить игровую библиотеку XNA, переделав сам XNA.
Проект с открытым исходным кодом Grommet содержит ограниченный порт для встраиваемых устройств, использующих .NET Micro Framework . [32]
Доступен проект под названием ANX, реализующий собственную версию XNA с использованием стека SharpDX; также ведется работа по поддержке Linux , macOS и PlayStation Vita . [33] [34] Используя ANX, разработчики могут писать игры, используя код, очень похожий на XNA, при этом по-прежнему считая их приложением Metro в Windows 8.