Я знаю, что этот вопрос может быть устаревшим, но мне нужно ответить на него. На самом деле, я начал программировать игру в Lua (с LÖVE), и я начал программировать MVC-Framework для нее. Во-первых, для использования MVC действительно зависит от того, что вы хотите. Я знаю свои проблемы с программированием игр, когда программа становится больше, и в основном структура становится слишком сложной для поддержания. Следующая вещь, я знаю, что я изменю всю графику, когда найду художника, который готов работать на него. Но до тех пор я собираюсь использовать свою собственную фиктивную графику. Я хочу, чтобы художник чувствовал себя свободным, чтобы делать все, что захочет, без зависимости от разрешения или ограничения цвета. Это означает, что мне может потребоваться изменить весь (!) Код презентации. Возможно, даже взаимодействие объектов (обнаружение столкновения, т. Е.). Логика игры фиксируется в моделях, поэтому я могу сосредоточиться на этом. И я думаю, что логика игры - самая важная часть игры. Не так ли? Надеюсь, вы увидите мою мысль.
Но, если у вас есть все вместе: все графики, звуки, все это; то вы можете запрограммировать прямо вперед.
My MVC - это конфигурация-over-convention-ass, которая замедляет прототипирование бит. НО (!) Итерации развития можно сделать намного проще. Тестирование, особенно Unit-Tests, выполняется намного быстрее. Я бы сказал, что MVC превращает кривую развития-скорости (которая обычно является антиэкспоненциальной кривой) в экспоненциальную кривую. Медленно в начале, но все быстрее и быстрее.
отличный ответ - существуют ли какие-либо преимущества для MVC для игр? У вас все еще есть несколько просмотров через компоненты, и что он добавляет? – Iain
Теоретически это позволяло бы разделять задачи, позволяя другому разработчику работать над представлениями, в то время как одна модель, а другая управляет. Проблема заключается в том, что игровые задачи имеют тенденцию к вертикальной резке (AI, физика, карты, персонажи и т. Д.). Таким образом, как правило, ответственность одного и того же разработчика заключается в создании стека MVC. Но в идеале дизайнер должен моделировать, контролировать программистов, художник визуализировать. Таким образом, потенциальный выигрыш существует, если слои моделирования и визуализации могут быть превращены в удобные для пользователя инструменты. –
Но для одинокого программиста он вызывает накладные расходы, чтобы изучить инструменты, поэтому он имеет тенденцию к детализации. Другой вариант - посмотреть на mixins, который также может работать, по крайней мере, я видел, что он работает красиво один раз. –