Подтвердить что ты не робот

Является шаблоном проектирования MVC, используемым в коммерческих компьютерных играх

Является ли шаблон дизайна MVC, используемый в коммерческих компьютерных играх?

В частности, что касается игр с высокими характеристиками, мне любопытно, были ли коммерческие пользователи MVC в игровой индустрии?

4b9b3361

Ответ 1

Он редко используется в играх. Мне потребовалось некоторое время, чтобы понять, почему, но здесь мои мысли:

MVC существует, чтобы провести различие между двумя представлениями. Модель представляет собой абстрактное представление ваших данных. Это то, как машина просматривает состояние вашего приложения. View (и контроллеры) представляют собой более конкретное видимое создание этой системы таким образом, чтобы это значимо для людей.

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

В игре эти два мира гораздо ближе друг к другу. Игровой мир (модель) обычно представляет собой набор объектов, расположенных в каком-либо виртуальном пространстве. Представление игры также представляет собой набор объектов, расположенных в некотором виртуальном пространстве. Ограничения объемов, анимации, положения и т.д., Все вещи, которые вы считаете частью "представления", также непосредственно используются "моделью": анимация может влиять на физику и AI и т.д.

Конечным результатом является то, что линия между моделью и представлением в игре будет произвольной и не полезна: вы в конечном итоге дублируете много состояний между ними.

Вместо этого игры, как правило, отделяют вещи от границ домена: AI, физика, звук, рендеринг и т.д. будут храниться как можно более раздельно.

Ответ 2

Это будет сильно зависеть от игры.

Например, шутер от первого лица, возможно, нет.

Симулятор полета, MVC очень вероятен (X-Plane и FlightGear оба действительно используют MVC, вы можете сказать из своих API-интерфейсов плагинов). SimCity, вы, безусловно, могли бы сделать это и иметь смысл (не знаю, действительно ли они это сделали). Возможно, стратегия в реальном времени. Обожженный, кто знает.

Ответ 3

Я не знаю никаких коммерческих игр, которые его используют; могут быть некоторые. Тем не менее, я смог найти документ (PDF), в котором упоминается шаблон MVC, используемый в компьютерных играх. Это может дать вам немного понимания.