商业电脑游戏中使用的MVC设计模式

问题描述 投票:0回答:4

商业电脑游戏中是否使用了MVC设计模式?

特别是高性能游戏我很好奇游戏行业是否有MVC的商业用户?

model-view-controller
4个回答
69
投票

在游戏中很少使用。我花了一段时间才弄清楚原因,但这是我的想法:

MVC 的存在是为了区分两种表示形式。模型是数据的抽象表示。这就是机器查看应用程序状态的方式。视图(和控制器)以对人类有意义的方式表示该系统的更具体的可见实例。

在大多数商业应用程序中,这两个世界有很大不同。例如,电子表格的模型只是一个二维值网格。它不必考虑单元格的像素宽度、滚动条的位置等。同时,电子表格视图不知道单元格值是如何计算或存储的。

在游戏中,这两个世界更加接近。游戏世界(模型)通常是位于某个虚拟空间中的一组实体。游戏视图也是位于某个虚拟空间中的一组实体。边界体积、动画、位置等,所有你认为是“视图”一部分的东西也直接被“模型”使用:动画可以影响物理和人工智能等。

最终结果是游戏中模型和视图之间的界限是任意的并且没有帮助:你最终会在它们之间复制大量的状态。 相反,游戏倾向于沿着领域边界解耦事物:AI、物理、音频、渲染等将尽可能保持分离。


6
投票

例如,第一人称射击游戏,可能不是。

飞行模拟器,MVC 很有可能(X-Plane 和 FlightGear 实际上都使用了 MVC,你可以从他们的插件 API 中看出)。 SimCity,你当然可以这样做并且有意义(不知道他们是否真的这样做了)。也许是实时战略。宝石迷蒙,谁知道呢。


5
投票
paper

(PDF),其中提到了计算机游戏中使用的 MVC 模式。这可能会给你一点洞察力。


0
投票

在此输入链接描述

© www.soinside.com 2019 - 2024. All rights reserved.