Введение

Microsoft XNA (рекурсивный акроним, расшифровывающийся как "XNA's not acronymed") – это бесплатный набор инструментов с управляемой средой выполнения, разработанный Microsoft Gaming для упрощения разработки видеоигр. XNA базируется на .NET Framework и имеет версии для Windows и Xbox 360. XNA Game Studio помогает в разработке игр для XNA. Набор инструментов XNA был анонсирован 24 марта 2004 года на конференции разработчиков игр (Game Developers Conference) в Сан-Хосе, Калифорния. Первый предварительный релиз для сообщества (Community Technology Preview) XNA Build был выпущен 14 марта 2006 года. Во многом XNA можно рассматривать как аналог .NET более известной игровой платформы Microsoft DirectX, однако она ориентирована в первую очередь на разработчиков, заинтересованных в создании небольших игр. XNA является базовой платформой для Xbox Live Indie Games. С января 2013 года разработка XNA прекращена, и она несовместима с Windows Runtime (API для разработки приложений в стиле Metro), представленным вместе с Windows 8.

Рамочная система XNA

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). Поддержка Visual Basic .NET была добавлена в 2011 году. XNA Framework инкапсулирует низкоуровневые технологические детали, связанные с программированием игр, обеспечивая, чтобы сам фреймворк учитывал различия между платформами при переносе игр с одной совместимой платформы на другую, позволяя разработчикам сосредоточиться на контенте и игровом процессе. XNA Framework интегрируется с рядом инструментов, таких как Cross-platform Audio Creation Tool (XACT), для облегчения создания контента. XNA Framework поддерживает создание как 2D, так и 3D игр и позволяет использовать контроллеры и вибрацию Xbox 360. Игры XNA, предназначенные для платформы Xbox 360, могли распространяться только участниками Microsoft XNA Creator's Club/App Hub, членство в котором стоило 99 долларов в год.

Игровая студия XNA

XNA Game Studio – среда программирования для разработки игр. На данный момент выпущено пять версий, но с 2015 года разработка новых версий прекращена. XNA Game Studio Express стала первой версией, выпущенной 30 августа 2006 года, и предназначалась для студентов, любителей и независимых разработчиков игр. Она была доступна для бесплатного скачивания. 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 года. XNA Game Studio 2.0 поддерживала работу со всеми версиями Visual Studio 2005 (включая бесплатную Visual C# 2005 Express Edition), предлагала сетевой API с использованием Xbox Live как на Windows, так и на Xbox 360, а также улучшенную обработку устройств. 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 года. Она добавила поддержку платформы Windows Phone (включая 3D-аппаратное ускорение), профили аппаратного обеспечения, настраиваемые эффекты, встроенные объекты состояния, параметры и ориентацию графических устройств, кроссплатформенный и мультитач-ввод, ввод с микрофона и буферизованное воспроизведение звука, а также интеграцию с Visual Studio 2010. XNA "Game Studio 4.0 Refresh" была выпущена 6 октября 2011 года и добавила поддержку Windows Phone 7.5 (Mango) и Visual Basic.

Контентная трубопровода XNA Framework

Контент-пиплайн XNA Framework — это набор инструментов, позволяющий Visual Studio и XNA Studio выступать в качестве ключевой точки разработки для организации и использования 3D-контента. Оба доступны только лицензированным разработчикам 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. Это означает, что XNA Game Studio по-прежнему можно использовать для разработки коммерческих игр и других программ для платформы Windows, однако код сетевой поддержки Microsoft для Xbox/Windows Live использовать нельзя. Разработчики могут продолжать использовать собственный сетевой код в своих проектах XNA. Игры, созданные с помощью XNA Game Studio, можно распространять через Windows Phone Marketplace и ранее – через Xbox Live Indie Games. Программное обеспечение также можно использовать для создания коммерческих игр, предназначенных для Windows.

Мечтай, строй, играй

Dream Build Play был ежегодным международным конкурсом от Microsoft с призовым фондом 75 000 долларов США, продвигающим Microsoft XNA и, впоследствии, Xbox Live Indie Games, хотя он появился раньше, чем они. Конкурс был впервые объявлен в 2006 году, а первый этап приема заявок начался в январе 2007 года. Многие победители стали известными разработчиками в сообществе независимых игр.

Игры Xbox Live

Игры для Xbox 360, созданные в XNA Game Studio, можно было отправлять в App Hub, для чего требовалась премиум-подписка (около 99 долларов США в год). Все игры, представленные в App Hub, проходили взаимную оценку другими разработчиками. Если игра успешно проходила оценку, она размещалась на Xbox Live Marketplace. Разработчики могли устанавливать цену на свою игру в 80, 240 или 400 баллов. Разработчику выплачивалось 70% от общего дохода с продаж игры в качестве базовой ставки. Microsoft изначально планировала брать дополнительный процент от дохода, если предоставляла дополнительный маркетинг для игры, но эта политика была отменена в марте 2009 года, сохранив фиксированную ставку независимо от продвижения. Microsoft также распространяла бесплатную годовую премиум-подписку на App Hub для учебных заведений через программы DreamSpark и MSDNAA. Эти учётные записи позволяли студентам разрабатывать игры для Xbox 360, но для публикации игры на Marketplace разработчикам всё равно требовалась премиум-подписка Xbox Live.

Альтернативные варианты реализации

Проект под названием Mono.XNA был создан для переноса XNA в Mono – кроссплатформенную среду разработки с открытым исходным кодом. На основе кодовой базы Mono.XNA и SilverSprite был создан новый проект MonoGame, предназначенный для переноса XNA на различные мобильные устройства. По состоянию на версию 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. FNA – это полнофункциональная реализация XNA с открытым исходным кодом, созданная на основе MonoGame. Цель FNA – сохранить игровую библиотеку XNA путем повторной реализации самой XNA. Проект Grommet с открытым исходным кодом содержит ограниченный порт для встраиваемых устройств, использующих .NET Micro Framework. Также доступен проект ANX, который реализует собственную версию XNA с использованием стека SharpDX; поддержка Linux, macOS и PlayStation Vita находится в стадии разработки. Используя ANX, разработчики могут создавать игры, используя код, очень похожий на XNA, при этом приложение все еще считается Metro-приложением в Windows 8.