Разработка 2D-игры для Windows Phone 8

Я хотел бы разработать 2D-игру для Windows Phone 8. Днем я профессиональный разработчик приложений, и это похоже на забавное хобби.

Но я был разочарован, пытаясь начать. Кажется, что 2D-игры (подавляющее большинство игр) не имеют доступного API.

Похоже, что производители Windows Phone не включили поддержку Direct2D. Так что, если вы не планируете делать полностью 3D-приложение, вам не повезло.

Итак, если вы просто хотите сделать хорошее 2D-приложение, вот ваш выбор:

  1. Напишите свою игру, используя Xaml и C# (проблемы с производительностью?)
  2. Напишите свою игру, используя Direct3D, но рисуйте только на одной плоскости.
  3. Используйте набор DirectX Take Kit, который можно найти на codeplex. Это позволяет вам использовать API-интерфейс умирающей среды XNA для разработки.

Номер 3 кажется лучшим для моей игры. Но я ненавижу тратить свое время на изучение XNA API, когда Microsoft ясно заявила, что в будущем она не будет поддерживаться.

Номер 2 будет работать, но разработка 3D действительно сложна. Я бы предпочел не делать всего этого, чтобы получить 2D-эффект. (Предполагая, что Direct2D проще. Мне еще предстоит изучить это.)

Номер 1 кажется самым простым, но я беспокоюсь, что мое приложение не будет хорошо работать, если оно основано на рендеринге xaml, а не на DirectX.

Каков предлагаемый метод от Microsoft?

И кто решил, что 2D-игры будут обделены?


person Vaccano    schedule 25.11.2012    source источник
comment
Ознакомьтесь с руководством разработчика Nokia: developer.nokia.com/Community/Wiki/< /а>   -  person Prescott    schedule 25.11.2012
comment
@Prescott - в нем используется набор инструментов DirectX на основе XNA ... Думаю, я мог бы это сделать, но я действительно не хочу тратить свои усилия на изучение API XNA, когда MS заявила, что не поддерживает его на Win phone 8.   -  person Vaccano    schedule 25.11.2012
comment
Возможно: stackoverflow.com/questions/13168151/   -  person Prescott    schedule 25.11.2012
comment
Обратите внимание, что набор инструментов DirectX является библиотекой C++ и не имеет прямого отношения для фреймворков XNA. Скорее, это библиотека C++, которая черпает вдохновение в дизайне компонентов XNA C# и пытается реализовать в основном то же самое, и одним из авторов является ShawnHar, бывший руководитель графического отдела XNA GS. Он вообще не зависит от среды XNA. По сути, это позволяет вам использовать опыт работы с XNA Game Studio C#, если вы переходите на собственную разработку на C++. Для 2D-игры вы можете продвинуться очень далеко с SpriteBatch.   -  person Chuck Walbourn    schedule 29.10.2014


Ответы (5)


Я также хотел бы отметить, что Unity (http://www.unity3d.com) имеет инструменты для создания 2D-игры и выпуск для Windows Phone 8 и iOS/Android. Извините за поздний ответ, но это все еще открытый вопрос... ;-)

Вы можете использовать C# в Visual Studio или Monodevelop для создания своих скриптов, а Unity уже поддерживает модели/текстуры, созданные с помощью различных инструментов (3DS Max, Maya, Photoshop, Gimp и т. д.).

Это профессиональный игровой движок, и с точки зрения производительности он может без проблем отображать миллионы полигонов (лично опробовано и протестировано для 3D), как и должно быть.

Их 2D-инструменты относительно новые, но уже есть множество руководств, а документация Unity в целом очень хороша.

( http://unity3d.com/unity/whats-new )

Удачи.

person alwynd    schedule 19.11.2013

На мой взгляд, разработка игр для Windows 8 и Windows Phone 8 сделала шаг назад. По моему мнению, это в основном связано с отказом от XNA, но на самом деле это не похоже на то, что они сосредоточили на упрощении.

Чтобы ответить на ваш вопрос, хотя изучение еще одного API, такого как XNA, все же стоит сделать. Благодаря MonoGame вы сможете использовать то, что вы узнали, и работать с несколькими платформами. Довольно много участников работают над MonoGame, и я вижу, что она живет уже довольно давно.

Итак, если вы хотите изучить XNA, вы можете просто создать 2D-игру XNA для платформы Windows Phone 7. Эти игры (как заявила Microsoft) будут работать на Windows Phone 8** (это не так, см. обновление). Я знаю, звучит нелогично, но если вам действительно не нужно использовать некоторые новые функции WP8, ориентируйтесь на 7.1 и используйте XNA. Эта отточенная структура отлично подходит для создания 2D-игр (посмотрите, например, Bastion!). После того, как вы закончите создание своей 2D-игры для WP7/WP8, вы можете ориентироваться на iPhone, Android и другие платформы с очень небольшим изменением кода, ссылаясь на MonoGame.

Может быть, не лучший вариант, но еще один, чтобы добавить в список. Надеюсь, это поможет.

Обновление Оказывается, MS действительно напортачила с разработкой WP7 для WP8. Используя описанный выше метод, вы по-прежнему сможете использовать преимущества кроссплатформенной разработки для iOS, Android и т. д., но Я бы не очень доверял WP8, так как проблемы с совместимостью начинают проявляться, а названия WP7 исключаются из магазина для устройств WP8.

person Darren Reid    schedule 25.11.2012
comment
Документация MonoGame абсолютно ужасна. - person jay_t55; 25.03.2013
comment
@Jase По большей части документация XNA должна соответствовать действительности, но да, в MonoGame все еще есть недостающие части и «подводные камни», которые недостаточно документированы. MonoGame не является идеальным решением, но, учитывая, что это проект OSS, который должен охватывать множество платформ и функций, он чертовски хорош. Вы всегда можете помочь с проблемой документации или хотя бы отметить ее в их репозитории на github :). - person Darren Reid; 26.03.2013
comment
Да, я бы с удовольствием помог с документацией, но боюсь, что не очень помог бы, так как я новичок в XNA и не знаю, что пишу :) - person jay_t55; 26.03.2013

XNA развернется на ПК, Windows phone и Xbox360, Visual Studio даже скопирует для вас отдельные версии вашего проекта. XNA — отличный инструмент для быстрой 2D-игры. Если вы хотите сделать это просто в качестве тестового прогона, что, похоже, так и есть, XNA — это то, что вам нужно. Как бы ни был прост XNA, с шейдерами можно делать действительно сложные вещи. Я не думаю, что вам скоро станет скучно.

Если вы решили, что вам действительно нравится разработка игр, изучайте DirectX. Начните с чистого листа и немного поэкспериментируйте с причудливыми играми, прежде чем погрузиться прямо в разработку 3D-игр. Программирование видеоигры гораздо больше похоже на создание операционной системы по сравнению с остальным миром программного обеспечения. Лучше всего начать с XNA независимо от вашей целевой платформы.

person aj.toulan    schedule 25.11.2012
comment
Но изучение XNA прямо сейчас похоже на изучение WinForms. Это действующая технология, но это пустая трата усилий на расширение вашего набора навыков в будущем. - person Vaccano; 25.11.2012
comment
Если вы думаете, что XNA — пустая трата времени, я бы использовал DirectX и просто сделал усеченный куб. К вашему сведению, хорошая разработка игры получается, когда программист в команде отлично справляется с быстрым прототипированием. Гейм-дизайнеры захотят проверить, интересны ли их идеи, задолго до того, как миллионы будут потрачены на, возможно, плохую идею. XNA как инструмент для быстрого прототипирования просто великолепен, намного лучше, чем flash. С помощью XNA можно относительно быстро продемонстрировать работающую игровую механику, намного быстрее, чем если бы вы использовали DirectX. Кроме того, XNA — один из лучших инструментов обучения для начинающих разработчиков игр. - person aj.toulan; 04.12.2012

Вы можете использовать MonoGame. Это фреймворк для разработки игр, фактически текущая реализация игровой студии XNA. Его можно развернуть на Windows Phone 8, а также на Android, Linux и других платформах.

person user43609    schedule 29.10.2014

Другим вариантом является Marmalade, который включает в себя мощный физический движок 2D и имеет дополнительное преимущество: кроссплатформенный, поэтому вы можете использовать его для Android, Apple, Kindle и, возможно, других, а также для Windows Phone. Недостатком является то, что он основан на C++ и требует достаточного объема работы и не имеет IDE, которая могла бы приблизиться к Visual Studio.

person Brian Towers    schedule 25.12.2014