Как MVVM был бы для игр?

Особенно для 2-х игр, и особенно silverlight/wpf игры.

Если Вы думаете об этом, можно разделить игровой объект на его представление (диаграмма на экране) и view-model/model (состояние, ай, и другие данные для объекта). В Silverlight кажется распространенным сделать каждый объект пользовательским элементом управления, помещая модель и представление в отдельный объект. Я предполагаю, что преимуществом этого является простота. Но, возможно, это менее чисто или имеет некоторые недостатки с точки зрения базового "игрового механизма".

Каковы Ваши мысли об этом вопросе? Каковы некоторые преимущества и недостатки использования шаблона MVVM для разработки игр? Как насчет производительности? Все мысли приветствуются.

12
задан Benny Jobigan 27 March 2010 в 14:51
поделиться

2 ответа

Одним словом - отлично!

Фактически, Джош Смит только что опубликовал книгу о MVVM, используя игру в качестве пояснительного приложения. Рекомендую вам сначала прочитать превосходную (и бесплатную) критику работы Джоша Уордом Беллом.

11
ответ дан 2 December 2019 в 06:44
поделиться

Вы можете столкнуться с проблемами производительности, поскольку MVVM обычно приводит к большому количеству функциональных возможностей привязки данных в WPF для обеспечения четкого разделения. Тем не менее, это все еще отличная идея, и ее стоит реализовать; вы всегда можете профилировать приложение позже и при необходимости оптимизировать определенные элементы. Скорее всего, это будет ИИ, а не интеграция пользовательского интерфейса.

Что касается определения, где разделить Модель | Просмотреть модель | Вью, мне нравится использовать следующий подход:

  1. Модель - это все, что не имеет ничего или очень мало общего с прямым взаимодействием с пользователем. Это может включать движок правил игры, ИИ и т. Д. Модели представления взаимодействуют с моделью четко определенными способами, при которых пользователь либо имеет контроль, либо получает обратную связь о том, что происходит в модели игры.

  2. Я стараюсь создавать модели представления для каждого основного компонента интерфейса. Например, если вы создавали RPG, у вас могут быть InventoryViewModel, CharacterStatsViewModel, WorldMapViewModel и т. Д. Я обычно не создаю их для отдельных элементов управления / виджетов (например, индикаторов состояния, глифов элементов или знаков «+» для повышения уровня). если у них нет достаточно сложного интерфейса.

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

12
ответ дан 2 December 2019 в 06:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: