Как стать автором
Обновить

Что выбрать для разработки игр под Windows Phone 7? Silverlight или XNA

.NET *
Перевод
Автор оригинала: Silverlight Games 101
imageВ следствии поддержки, как XNA, так Silverlight на платформе Windows Phone 7, распространенным вопросом является – на чем лучше писать игры? Ответ прост – все зависит от… :)

Обе технологии обладают характерными преимуществами и было бы хорошо в конечном счете совместить возможности графики обеих технологий в одном и том же приложении и использовать лучший инструмент для работы. Я еще не углублялся в изменения у XNA на Windows Phone, так что выводы буду строить на основе опыта разработки игр на XNA в прошлом.

В общем, писать игры будет проще в XNA, так как XNA был взращен, как игровой фреймворк. Многие решения, которые принимались при проектировании XNA также делают платформу не самой лучшей для разработки других типов приложений, кроме игр.

Основным архитектурным отличием является визуальное дерево, а не прорисовывание всего в каждом кадре. В Silverlight, чтобы отобразить что-то, нужно добавить это, как дочерний элемент. В XNA, все прорисовывается в каждом кадре. Если вы что-то явно не нарисовали, то ничего и не покажется. Какой вариант лучше, зависит от вашей игры, но если происходит много действий, то вариант “срочного” рендеринга XNA лучше всего подходит.

Давайте взглянем на некоторые преимущества каждой технологии (я уверен их много с каждой стороны):

Преимущества XNA:


  • Отличная поддержка 3D
  • Превосходная производительность, во время перемещения многих элементов или их добавления и удаления
  • Встроенный игровой цикл.
  • Пользовательский ввод в XNA в общем лучше для игр, чем события ввода в Silverlight.
  • Конвейер данных в XNA позволяет проще обрабатывать массивы данных
  • Поддержка большего количества типов изображений
  • Можно разрабатывать игры под Xbox и Phone
  • Комбинация графических моделей (у Silverlight только альфа-наложение)
  • Меньше расхода памяти для игр основанных на изображениях
  • Больше встроенного GPU-ускорения
  • Превосходная поддержка шейдеров
  • Рисовать немного проще

Преимущества Silverlight:


  • Векторная графика (у XNA поддержка на уровне простых линий)
  • Векторная прорисовка текста (у XNA на основе изображений)
  • Можно создавать игры для веба и телефона
  • Анимация на основе раскадровки
  • Визуальные состояния и различные поведения
  • Фреймворк навигации
  • Элементы управления (кнопка, список, пользовательские элементы управления и т.п.)
  • Поддержка Expression Design
  • Модель на основе событий более привычна для разработчиков
  • Привязка к данным порой очень удобна
  • VisualTreeHelper помогает определить, до какого элемента дотронулись

Так что, если у вас игра основана на векторной графике или предполагает наличие таких вещей, как кнопки или другие GUI-элементов, то возможно лучше выбрать Silverlight для разработки. Если же вы делаете 3D игру или 2D с большим количеством движений, или эффекты частиц, то выбирайте XNA. Если у вас что-то между этими двумя технологиями, то выбирайте ту, с которой лучше знакомы, а так же смотря где вы хотите распространять приложение в веб или Xbox.

Это ведь отлично, что нам доступны оба варианта и вы можете выбрать, какой использовать.
Теги:
Хабы:
Всего голосов 62: ↑35 и ↓27 +8
Просмотры 1.6K
Комментарии Комментарии 16