Каким будет MVVM для игр? - PullRequest
12 голосов
/ 27 марта 2010

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

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

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

Ответы [ 2 ]

11 голосов
/ 27 марта 2010

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

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

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

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

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

11 голосов
/ 27 марта 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...