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