vista software presentador patrones patron mvc modelo diseño controlador caracteristicas model-view-controller

model-view-controller - software - patrones de diseño ios



Es el patrón de diseño MVC utilizado en juegos de computadora comerciales (3)

¿El patrón de diseño MVC se usa en juegos de computadora comerciales?

Particularmente con respecto a los juegos de alto rendimiento, tengo curiosidad de saber si ha habido algún usuario comercial de MVC en la industria de los videojuegos.


Eso dependerá mucho del juego.

Por ejemplo, un tirador en primera persona, probablemente no.

Un simulador de vuelo, MVC es muy probable (X-Plane y FlightGear en realidad sí usan MVC, puedes verlo desde su API de complemento). SimCity, ciertamente podrías hacer eso y tener sentido (no sé si realmente lo hicieron). Estrategia en tiempo real, tal vez. Bejeweled, quién sabe.


No conozco ningún juego comercial que lo use; puede haber algunos. Sin embargo, pude encontrar un paper (PDF) que menciona el patrón MVC que se usa en los juegos de computadora. Esto puede darle un poco de conocimiento.


Raramente se usa en juegos. Me tomó un tiempo averiguar por qué, pero aquí están mis pensamientos:

MVC existe para hacer una distinción entre dos representaciones. El modelo es la representación abstracta de sus datos. Es la forma en que la máquina ve el estado de su aplicación. La Vista (y los Controladores) representan una instanciación visible más concreta de ese sistema de una manera que es significativa para los humanos.

En la mayoría de las aplicaciones comerciales, estos dos mundos son bastante diferentes. Por ejemplo, el modelo de una hoja de cálculo es simplemente una grilla de valores 2D. No tiene que pensar qué ancho tienen las celdas en píxeles, dónde están las barras de desplazamiento, etc. Al mismo tiempo, la vista de la hoja de cálculo no sabe cómo se calculan o almacenan los valores de las celdas.

En un juego, esos dos mundos están mucho más cerca el uno del otro. El mundo del juego (modelo) suele ser un conjunto de entidades ubicadas en algún espacio virtual. La vista del juego también es un conjunto de entidades ubicadas en algún espacio virtual. Volúmenes delimitados, animación, posición, etc., todas las cosas que consideraría parte de la "vista" también son utilizadas directamente por el "modelo": la animación puede afectar la física y la IA, etc.

El resultado final es que la línea entre el modelo y la vista en un juego sería arbitraria y no sería útil: terminarías duplicando mucho estado entre ellos.

En cambio, los juegos tienden a desacoplar las cosas a lo largo de los límites del dominio: IA, física, audio, representación, etc. se mantendrán lo más separados posible.