Red de conocimiento informático - Conocimiento sistemático - ¿El desarrollo de juegos debería utilizar mvc?

¿El desarrollo de juegos debería utilizar mvc?

El patrón MVC se puede aplicar en el desarrollo de juegos:

MVC es la abreviatura de tres palabras: Modelo, Vista y Controlador). MVC es un patrón de diseño que obliga a separar la entrada, el procesamiento y la salida de la aplicación, dividiendo la aplicación en tres componentes principales: modelo, vista y controlador. Cada uno maneja sus propias tareas y la relación es como se muestra en la figura:

El modelo es la capa de datos, la vista es la capa de presentación y el controlador es la capa lógica, que también corresponde a entrada de datos, procesamiento de datos y salida de datos durante la ejecución del programa. De hecho, el desarrollo de modelos MVC también es adecuado para el desarrollo de juegos.

Basado en datos

Recientemente vi un blog sobre el uso del método del controlador. Esta publicación de blog siempre enfatiza la oposición entre datos y lógica, y la tecnología utilizada para implementarla. impulsado por mesa. La sublimación de esta tecnología es tecnología basada en datos. Cuando esta tecnología se aplica a los juegos, se trata de un desarrollo de juegos basado en datos. Antes de desarrollar el juego, sus elementos de datos se definen en un formato determinado, que separa los recursos artísticos de la tecnología.

Diseño jerárquico

Desde que el método de programación orientada a objetos se generalizó, el concepto de encapsulación se ha vuelto muy popular. Las clases encapsulan las propiedades y métodos de los objetos, lo que da como resultado un diseño modular. Al abrir las interfaces correspondientes, se logra la comunicación entre módulos. Se puede decir que el diseño modular es un gran progreso en la programación. También se puede decir que el método de diseño jerárquico es un diseño modular, pero se utiliza una cierta relación de secuencia entre los módulos. El patrón MVC se centra en el diseño jerárquico de diferentes estados de datos (capa de datos, capa lógica, capa de presentación) durante la ejecución del programa.

Hay dos cuestiones clave en el diseño jerárquico: capas e integración. En el proceso de diseño, cómo superponer el diseño general en capas y cómo determinar las especificaciones de definición entre capas. Una vez desarrollados los módulos de cada nivel, cómo integrarlos para lograr una conexión perfecta en su conjunto.

El modelo MVC resuelve muy bien los dos problemas anteriores. Según la idea del modelo MVC, el juego también se puede dividir en tres capas correspondientes: capa de datos, capa lógica y capa de presentación. Su definición es la siguiente:

La capa de datos es una colección de objetos formados por diversos recursos (imágenes, sonidos, animaciones) en el motor del juego. Estos proporcionados por el arte son los más primitivos y el motor del juego debe encapsularlos en un conjunto de códigos controlables. En Cocos2D, los objetos correspondientes se utilizan para inicializar directamente estos recursos originales, como Sprit, Menu, SimpleAudioEngine, etc. Estos objetos se pueden dividir en capas de datos a lo largo del juego. El mejor ejemplo es la clase que analiza el motor a partir del archivo ccb generado por CocosBuilder. Cuando los archivos de recursos más originales se organizan a través de un determinado formato de archivo y luego se forman en una colección de objetos a través del motor, este es el método de generación de capas de datos más preferible. En Fishing 2, muchos módulos funcionales se diseñan utilizando este método. Por ejemplo, localización en varios idiomas. Las traducciones de todos los campos se almacenan en un archivo plist, formando una tabla bidimensional. Cuando necesite cambiar de idioma, solo necesita cambiar el Valor relativo a una clave determinada. La capa lógica no requiere ningún cambio.

La capa lógica se puede dividir en capa de interfaz de datos, capa de IA del juego y capa de control de operaciones. La capa de interfaz de datos es responsable de proporcionar los objetos de datos correspondientes de la capa de datos para su encapsulación y combinación. En este nivel, es similar a la definición de atributos de una clase en orientación a objetos y proporciona una interfaz de control (Establecer/Obtener). Esta capa puede ser no estructurada (definiciones de tipos de datos primitivos) o estructurada (tablas, árboles, colecciones). La capa de IA del juego es el núcleo de la capa lógica, que define los cambios de estado de varios elementos de datos debajo de ella (número de monedas de oro, nivel de arma, reproducción de animación...). Según diferentes variables de estado, controla el desempeño del estado de los elementos de datos y es el cerebro y el centro de comando y control del juego. La capa de control de operaciones es responsable de procesar la entrada del usuario y registrar o vincular los eventos de IA correspondientes. En la capa lógica, la capa de interfaz de datos mira hacia abajo la capa de datos, la capa de control de operaciones mira hacia arriba los eventos de comportamiento del usuario y la capa de IA del juego coordina estas dos capas.

La capa de presentación es similar a Direct y Scene en Cocos2D. Controla el fondo del juego y es responsable de mostrar los distintos estados de cada elemento de datos en el programa de manera oportuna.

El diseño jerárquico se usa ampliamente en el diseño de software, como el modelo de red TCP/IP en redes informáticas (capa física, capa de enlace, capa de red, capa de transporte, capa de aplicación), tecnología de bases de datos (capa de datos físicos , capa de datos conceptual, capa de datos lógica). La característica más común es la jerárquica, mientras que la tecnología de bases de datos enfatiza la independencia de los datos y la lógica.

Resumen

El desarrollo de juegos basado en datos radica en la separación de datos y lógica, lo que hace que el desarrollo de juegos sea independiente del nivel de datos, centrándose en el diseño, el procesamiento de IA y logrando un desarrollo rápido del juego. . Cuando la capa lógica madure, simplemente cambie la capa de datos a un estilo diferente y será un tipo de juego diferente, que podrá satisfacer más rápidamente las necesidades estéticas y de moda del usuario. Quizás el modelo MVC pueda usarse como referencia.

¡Espero que esto pueda ayudarte a entender!