пятница, 5 января 2018 г.

XBox 360 и другие консоли

Юрий “yurembo“ Язев
инди игродел

Почему среди всех современных игровых консолей: XBox, PlayStation, Switch я отдаю предпочтение первой? Ответ заключается в простоте процедуры сертификации для разработки под консоль. Оставим потуги с оригинальной (самой первой) Xbox. С другой стороны, XBox 360 - первая в истории консоль, на которой можно было выполнять сторонний код. В свое время для меня это было очень круто: возможность запускать свои игры на приставке. Для этого Microsoft выпустила мультимедийную библиотеку XNA, которая подобно DirectX позволяла создавать быстро работающие интерактивные приложения. XNA - это развитие управляемого DirectX для управляемых в общей среде выполнения CLR языков, типа C# и VB.NET. А я в свое время еще успел поиспользовать управляемый (managed) DirectX с C#. Следует учесть, что консоль вышла в свет в конце бородатого 2005-го года. И тогда еще не было такого широкого выбора движков, то есть выбора совсем не было. На XNA можно было разрабатывать игры, как для настольной Windows, так и для консоли XBox 360, один и тот же исполняемый код одинаково работал в обоих случаях. Это было достижением. Тем временем, в качестве операционной системы на XBox 360 использовалась модифицированная ОС для оригинальной Xbox, которая в свою очередь основана на Windows 2000. В итоге получилась так, что Windows PC и Windows XBox 360 - разные операционные системы. Модифицировать операционную систему пришлось по той причине, что в консоли используется процессор PowerPC, он, как известно, реализован на процессорной архитектуре RISC, в отличие от процессоров от Intel и AMD для настольных компьютерах, работающих под Windows, реализованных на архитектуре CISC.


Использование XNA для разработки игр под XBox 360 не единственный вариант создания игр для консоли. Чуть позже GarageGames выпустила заточенный для разработки игр под платформу Xbox 360 движок Torque X - ответвление от основного продукта компании Torque 3D. Torque X использовал XNA. Много позже в Unity тоже появилась такая возможность. Присутствует поддержка и в Unreal Engine 4.

В настоящее время XNA мертв. Microsoft сама убила свой продукт. По идее, сейчас он уже, по-сути, не нужен: XBox 360 - консоль прошлого поколения. XNA так же использовался для создания мультимедийных приложений для Windows Phone 7.0/7.5, но и это давно устаревшая мобильная операционка.

Ныне существует OpenSource-либа MonoGame, созданная по образу и подобию XNA, взявшая все самое лучшее, что было в последней - 4-й версии XNA (например, менеджер ресурсов) и добавившая к ней новые возможности, главным из которых можно назвать кросс-платформенность. XNA работала на продуктах от Microsoft: настолках, консолях и смартфонах, MonoGame добавила поддержку: Linux, MacOS, iOS, Android, PS4, Switch и другого цифрового барахла. Контрибьютер, сделавший наибольший вклад в развитие библиотеки, и использующий ее во множестве своих мультиплатформенных проектах, компания Sickhead. Она же разработчик Torsion - IDE для проектов на Torque. Sickhead в лице Тома Спиллмана в прошлом активный участник сообщества разработчиков на движках семейства Torque. Все это немного увело нас в сторону от главной темы.


Следующая версия - XBox One еще более упростила процессы сертификации,  разработки и публикации игр. В консоли установлен вполне стандартный 8-ядерный x86-64 процессор от AMD, что позволило запустить на приставке такую же версию Windows 10, как на десктопе. Существует специальный вариант Xbox One для разработчиков Xbox One DevKit, который позволяет выполнять и отлаживать пользовательский код. Тогда, как по-умолчанию обычная коммерческая приставка не разрешает это. Однако Xbox One, ровно, как Xbox 360 позволяет перейти в режим разработчика без покупки дополнительных устройств и выплаты лицензионных отчислений.

 
Сертификация игры для Xbox One происходит таким же образом, как приложения для смартфона: первым делом надо зарегистрироваться, как разработчик, затем, после разработки игры, подготавливается пакет с игрой и отправляется на проверку. Через некоторое время приходит извещение о результатах проверки, и в зависимости от результатов, игра или выставляется в магазин, или отклоняется.

Разработка современных игр в абсолютном большинстве осуществляется с помощью движков, которых развелось великое множество. Не исключением стали игры для Xbox One, многие из движков позволяют создавать игры для этой консоли: Unity, Unreal Engine, Xenko. Еще можно очень сильно извернуться и написать свой движок на DirectX 12… о, времена, о, нравы…

Условия для разработки игр под PlayStation 4 и любые другие консоли от Sony:
  • Регистрация компании-разработчика;
  • Вы должны обладать статическим IP-адресом;
  • Физически вы должны находиться на территориях США, Канады, Мексики, Центральной и Южной Америки;

Так то все это совсем не проблема, но это сложнее, чем для Xbox One.

У Nintendo Switch все выглядит более или менее прозаично: регистрируемся, готовим рабочее пространство (ставим инструментарий), разрабатываем игру, подготавливаем ее для продажи (устанавливаем возрастной рейтинг, передаем Nintendo на рассмотрение), подготавливаем рекламные материалы (без них игру для любой платформы не продать). В случае, если все этапы пройдены успешно, выставляем игру на продажу, забираем деньги, уходим. Выглядит благоприятно, но на деле оказывается сложнее: Nintendo очень выборочно выдает лицензии для разработки под свои платформы. Это зависит от вашего портфолио и от игры, которую вы собираетесь разрабатывать.

Комментариев нет:

Отправить комментарий