Я знаю, что это потенциальный обман этого вопроса , но последний ответ был 18 месяцев назад, и с тех пор многое произошло.
Кажется, есть некоторая неопределенность в отношении XNA в Windows 8. В частности, Windows 8 по умолчанию использует интерфейс Metro, который не поддерживается XNA. Кроме того, в магазине Windows 8 не будут продаваться приложения, не относящиеся к метро, поэтому в нем не будут храниться приложения XNA.
Должны ли мы придерживаться XNA или Microsoft хочет, чтобы мы перешли на другую платформу для разработки управляемых игр в Windows 8?
Изменить: Как указано в одном из комментариев, Windows 8 сможет запускать игры XNA в режиме обратной совместимости. Но это пахнет амортизацией.
Ответы:
РЕДАКТИРОВАТЬ: Это официально, Microsoft убила XNA . Я опечален этим, но это не было неожиданным, это то, что я предсказывал, произойдет, но надеюсь, что я ошибся. Все, что ниже этого пункта - мой оригинальный пост с начала 2012 года.
Что еще нужно учитывать, так это то, что Microsoft, вероятно, выпустит новую консоль в середине-конце 2013 года. Будут ли они продолжать пытаться заставить что-то вроде XNA работать на своей консоли? Если они хотят, чтобы люди делали игры на новом Xbox, им что-то понадобится, и было бы расточительно отбрасывать XNA и начинать заново с чего-то другого. Кроме того, Windows 8 будет работать на планшетах с процессорами ARM, и мы все знаем, насколько велик рынок для приложений для телефонов и планшетов, для Microsoft это большая возможность иметь API для создания приложений на этих устройствах, но это будет XNA или только .NET?
Я вижу пару потенциальных путей:
XNA не была особенно успешной с нынешним Xbox, в основном из-за того, что на рынке представлено мало игр XNA, а также из-за плохой настройки магазина для игр XNA в Xbox Live. Поэтому Microsoft может решить полностью отключиться, оставив нам XNA 4.0, совместимую с DX10, и станет достойной платформой для людей, на которых можно будет создавать простые игры для ПК в течение следующих нескольких лет, прежде чем она исчезнет.
Microsoft может увидеть огромные возможности с домашними приложениями, такие вещи, как Apple App Store, приносят огромные деньги, и если Microsoft может упростить создание игр и их перенос на планшеты Xbox Live и Windows 8, то у них есть шанс сделать их большими. на рынке консольных приложений. Если Microsoft пойдет по этому пути, я увижу новую XNA, поддерживающую DX11.1 с его следующей версией, и продолжающую поддержку XNA еще как минимум 5 лет.
Некоторые вещи для рассмотрения:
В настоящее время с XNA вы должны заплатить 100 долларов, если вы хотите разработать свою игру для Xbox 360, это 100 долларов, чтобы просто попробовать и посмотреть, сможете ли вы заработать какие-либо деньги, и даже тогда MS получает часть прибыли от вашей игры. Если Microsoft возьмет гонорар в 100 долларов и просто возьмет на себя большую часть прибыли, они могут в конечном итоге увидеть намного больше игр и заработать больше денег на сделке.
Игры XNA имеют проблемы с производительностью на Xbox 360. Microsoft не хотела, чтобы игры XNA представляли угрозу безопасности, когда они запускались на Xbox-ах других людей, поэтому они в основном запускали игры XNA в песочнице с ограниченным доступом к процессору, графическому процессору и памяти. В дополнение к ограниченному доступу игры, запрограммированные в полном пакете Xbox SDK, не написаны на C # и не требуют таких вещей, как сборка мусора, но XNA работает на собственном C # от Microsoft, поэтому Microsoft пришлось написать оболочку, чтобы XNA могла работать на Xbox, и эта обертка немного замедляет работу. Такие вещи, как производительность с плавающей запятой, могут быть в 10 раз медленнее, чем игры для Xbox, написанные через полный SDK. Эти проблемы с производительностью означают, что игры для Xbox, разработанные через XNA, не могут в полной мере использовать весь потенциал Xbox, что только ухудшает качество игр, которые Microsoft может получить от сообщества. Microsoft будет хорошо подумать об этом, если они продолжат работу с XNA, чтобы их следующая консоль позволила разработчикам XNA использовать систему в полной мере.
Насколько я знаю, XNA не будет поддерживать стиль Metro в Windows 8, поэтому разработчики не смогут писать игры, чтобы воспользоваться этим. XNA также не будет работать на процессорах ARM, поэтому вы не можете использовать XNA для написания приложений для планшетов с Windows 8, которые скоро появятся. Является ли это признаком того, что XNA может не поддерживаться в будущем?
Microsoft использует XNA для игр прямо сейчас, но если немного поработать, ее можно использовать и для создания некоторых интересных приложений. Если Microsoft распространит XNA в сообществах, отличных от разработчиков игр, то он может привыкнуть чаще, и у Microsoft будет больше оснований продолжать поддерживать его.
Форумы XNA немного иссякли, людям требуется больше времени, чтобы получить ответы, и я редко вижу какого-либо члена команды XNA на форумах, кроме Шона Харгривза, поэтому они могут просто быть в роли поддержки в это время.
Я создал и поддерживаю игровой движок с открытым исходным кодом для XNA, за последние 2 года количество скачиваний движка упало примерно до половины того, с чего они начинали, даже несмотря на то, что движок намного лучше, чем раньше. Это сигнализирует мне, что намного меньше людей используют XNA, чем раньше. Вот график количества посещений моего сайта. Вы можете увидеть, что интерес к XNA достиг своего пика примерно с конца 2007 года до середины 2008 года.
Вот длинная дискуссия, в которой участвуют некоторые члены команды XNA. Конечно, они не хотят много комментировать, потому что Microsoft мало говорит о вещах до того, как их объявят:
http://xboxforums.create.msdn.com/forums/t/91616.aspx
Также интересны такие цитаты:
http://download.microsoft.com/download/1/E/4/1E455D53-C382-4A39-BA73-55413F183333/Windows_Developer_Preview-Windows8_guide.pdf
В настоящее время я поддерживаю игровой движок с открытым исходным кодом для XNA, поэтому я бы предпочел, чтобы в будущем его поддерживали, однако, даже если XNA 4.0 является последней XNA, она все еще является достойной платформой для быстрого и простого создания игр для Windows, а также отличный API для тех, кто хочет научиться делать видеоигры.
Мое честное мнение, что XNA 4.0 будет последним, но я искренне надеюсь, что ошибаюсь.
источник
MonoGame (реализация XNA для OpenSource, OpenGL) v2.5 была выпущена сегодня с поддержкой пользовательских шейдеров для iOS, Android, MacOS и Linux. Наша команда начала работу по добавлению поддержки PlayStation Suite SDK, а также Window8 Metro (на мой взгляд, на основе SharpDX).
У нас уже есть 3D-ветвь с оригинальным названием develop3d, на которой все наши усилия будут сосредоточены в ближайшие месяцы, теперь, когда выйдет v2.5. Посмотрите на нашем канале YouTube, где мы находимся в настоящее время с 3D - http://www.youtube.com/user/MonoGameTeam?feature=watch .
Помогают разработчики из нескольких игровых студий, поэтому мы считаем, что ветвь development3d должна быть более оптимизированной, чем наша ветка v2.5, и она почти полностью переписана. Демонстрация Reach заняла 15 минут для переноса с Windows на MacOS X, когда я начинал с нуля на прошлых выходных. Ветвь Develop3D еще не идеальна, как и вся MonoGame, но мы думаем, что находимся на пути к решению тех проблем, которые у нас есть, и если больше людей выручит, еще лучше.
В Apple App Store уже есть 28 игр для iOS (27 2D и 1 3D), 5 на рынке Android и 1 в магазинах MacOS и Linux. Если кто-то здесь играл в Bastion в своем браузере Google Chrome, который использует модифицированную версию MonoGame, и мы надеемся в будущем поддерживать игры NaCL, благодаря SuperGiant прислал нам информацию о том, как они заставили MonoGame работать с NaCL.
У нас есть 4-5 активных разработчиков, работающих над MonoGame, и если вы хотите пообщаться с нами, перейдите на monogame.codeplex.com или на irc.gnome.org на канале #MonoGame. Получите последний код от Github
Поэтому я полагаю, что моя точка зрения заключается в том, пожалуйста, рассмотрите MonoGame, если вы планируете писать кроссплатформенные игры с использованием XNA.
Доминик.
источник
Из того, что я понимаю о ситуации, это может пойти одним из двух способов. API либо устарел, либо наращивает скорость для создания версии XNA на основе DirectX 11.
Вот статья о каждой перспективе:
источник
XNA будет работать только на рабочем столе Win8, и почти нет шансов, что Microsoft работает над XNA-совместимым API, работающим под Win8 Metro UI / DirectX11.1.
Если вы действительно хотите продолжить разработку API-интерфейса, подобного XNA, в Windows 8 Metro, при этом все еще имея возможность использовать конвейер контента (одна из причин, по которой XNA является дружественным разработчиком низкобюджетных игр), вы должны следовать проекту ANX Framework . Этот проект имеет хорошие шансы быть готовым до Windows 8 RTM (по крайней мере, с поддержкой SpriteBatch). Хотя, вероятно, потребуется немного изменить шейдеры (например, семантику), ANX предоставляет способ импорта существующего проекта XNA, что может очень помочь. Они также работают с другими бэкэндами (например, OpenGL для графики), поэтому они также могут быть нацелены на другие платформы .NET (например, Mono на Android / iPhone).
MonoGame может быть другим вариантом, но в настоящее время он предназначен только для 2D, с одним бэкэндом OpenGL / ES, поэтому он не сможет работать в Windows 8 Metro (OpenGL не является «сертифицированным» API в Win8 Metro и, скорее всего, не входит в планы Microsoft).
Есть несколько вариантов:
Вы можете напрямую использовать SharpDX , API-интерфейс DirectX низкого уровня (его использует ANX). Например, минимальный фреймворк для 2D-игры, как правило, возможен с помощью низкоуровневого API, подобного этому (и может быть сделано с Direct2D). Я знаю как минимум две небольшие компании, которые используют его для разработки игр Win8 Metro.
Вы можете начать использовать DeltaEngine, который, будем надеяться , будет совместим с Win8 Metro в ближайшие месяцы (вероятно, потребуется лицензия)
Вы можете попробовать разработать с Unity3D , хотя они еще не объявили о какой-либо поддержке Windows 8 Metro (требуется лицензия). Но они недавно работали над рендерером Direct3D11, так что им не должно быть так сложно обеспечить поддержку Win8 (но, поскольку многие Win32 API не авторизованы из Win8 Metro, вероятно, это не единственное, что им нужно для портирования).
источник
С выпуском WinRT становится все более и более очевидным, что Microsoft сделала большой поворот. Управляемый обман идет вниз, Родной обман сильнее, чем когда-либо. Очевидно, кто-то влиятельный в компании (некоторые утверждают, что это основная команда Windows) вообще не удовлетворен производительностью .NET. Основная тенденция, которую я вижу в последних статьях - это что-то вроде
Они говорят:
Это чувство, которое я испытываю в прошлый раз. Учитывая, что вы можете ожидать замедления всех управляемых связанных проектов, единственная разница - это величина замедления.
У меня есть уважение к Microsoft, которая почти никогда не отказывается от поддержки продуктов, они просто больше не разрабатываются. Так что, по крайней мере, мы можем использовать XNA 4.0 довольно долго, даже если это последняя поддерживаемая версия.
источник
Это не выглядит хорошо для нас, независимых разработчиков XNA, которые хотят перенести наши игры XNA в Metro. Microsoft не проявляет интереса и ожидает, что мы вернемся к программированию на C ++ / DirectX или примем сторонние платформы C #, большинство из которых не поддерживает какой-либо конвейер содержимого XNA.
Все довольно грустно, я действительно не могу понять MS иногда.
источник