模型是数据层,视图是表示层,控制器是逻辑层,也分别对应着程序运行过程中的数据输入、数据处理、数据输出三个基本步骤。 其实MVC模式开发也适合游戏开发。
数据驱动
最近看到一篇博客,介绍了我使用驱动方法的经验。 这篇博文始终强调数据和逻辑的对立,而实现它的技术就是表驱动。 这项技术的升华就是数据驱动技术。 当这项技术应用到游戏中时基于mvc设计模式的网页游戏开发技术研究,就是数据驱动的游戏开发。 在游戏开发之前,其数据元素都以一定的格式定义,这将美术资源与技术分开。
层次化设计
自从面向对象编程方法成为主流以来,封装的概念就变得非常流行。 类封装了对象的属性和方法,从而实现了模块化设计。 通过开放相应的接口,实现模块之间的通信。 模块化设计可以说是编程方面的一大进步。 分层设计方法也可以说是模块化设计,只不过模块之间采用了一定的顺序关系。 MVC模式侧重于程序运行过程中数据不同状态(数据层、逻辑层、表示层)的分层设计。
分层设计有两个关键问题:分层和集成。 在设计过程中,如何对整体设计进行分层以及如何确定各层之间的定义规范。 当各个层次的模块都开发出来之后游戏素材下载 免费,如何将它们整合起来,实现整体的无缝衔接。
MVC模型很好的解决了以上两个问题。 根据MVC模型的思想,游戏也可以分为对应的三个层:数据层、逻辑层、表现层。 其定义如下:
数据层是游戏引擎中各种资源(图片、声音、动画)形成的对象的集合。 美术提供的这些都是最原始的,需要被游戏引擎封装成一套可控的代码。 在Cocos2D中,使用相应的对象来直接初始化这些原始资源,例如Sprit、Menu、SimpleAudioEngine等。这些对象在整个游戏中可以分为数据层。 最好的例子就是引擎从CocosBuilder生成的ccb文件中解析出的类。 当最原始的资源文件通过一定的文件格式组织起来,然后通过引擎形成对象的集合,这就是最理想的数据层生成方式。 《钓鱼2》中很多功能模块都是采用这种方法设计的。 例如,多种语言的本地化。 所有字段的翻译都存储在一个plist文件中,形成一个二维表。 当您需要切换语言时,只需更改相对于某个按键的Value即可。 逻辑层不需要任何改变。
逻辑层可分为数据接口层、游戏AI层、操作控制层。 数据接口层负责向数据层提供相应的数据对象进行封装和组合。 在这个层面上,它类似于面向对象中类的属性定义,提供控制(Set/Get)接口。 该层可以是非结构化的(原始数据类型定义)或结构化的(表、树、集合)。 游戏AI层是逻辑层的核心,定义了其下面的各种数据元素的状态变化(金币数量、武器等级、动画播放……)。 根据不同的状态变量,控制数据元素的状态表现基于mvc设计模式的网页游戏开发技术研究,是游戏的大脑和指挥控制中心。 操作控制层负责处理用户输入并注册或绑定相应的AI事件。 在逻辑层中,数据接口层向下面向数据层,操作控制层向上面向用户行为事件,游戏AI层协调这两层。
表现层类似于Cocos2D中的Direct和Scene。 它控制游戏的后台,负责及时显示程序中各个数据元素的各种状态。
层次化设计在软件设计中应用广泛,如计算机网络中的TCP/IP网络模型(物理层、链路层、网络层、传输层、应用层)、数据库技术(物理数据层、概念数据层)、逻辑层等。数据层)。 它们的共同特点是层次性游戏角色,而数据库技术则强调数据和逻辑的独立性。
总结
数据驱动游戏开发就是实现数据与逻辑的分离,让游戏开发独立于数据层面,专注于设计、AI处理,实现游戏快速开发。 当逻辑层成熟后,只需将数据层换成不同的风格,就会是一种不同的游戏,能够更快地满足用户的时尚和审美需求。 或许MVC模型可以作为参考。