MVC设计模式是否在商业电脑游戏中使用?
特别是关于高性能游戏,我很好奇在游戏行业中是否有MVC的商业用户?
发布于 2010-02-06 04:13:18
它很少在游戏中使用。我花了一段时间才弄明白原因,但我的想法是:
MVC的存在是为了区分两种表示形式。模型是数据的抽象表示。它是机器查看应用程序状态的方式。视图(和控制器)以对人类有意义方式表示系统的更具体的可视实例化。
在大多数商业应用程序中,这两个世界是完全不同的。例如,一个电子表格的模型就是一个简单的二维值网格。它不必考虑单元格的像素宽度、滚动条的位置等。同时,电子表格视图不知道单元格值是如何计算或存储的。
在游戏中,这两个世界更接近彼此。游戏世界(模型)通常是位于某个虚拟空间中的一组实体。游戏视图也是位于某个虚拟空间中的一组实体。包围体,动画,位置等,所有你认为是“视图”一部分的东西也直接被“模型”使用:动画可以影响物理和AI等。
最终的结果是,游戏中模型和视图之间的界限是任意的,没有任何帮助:你最终会在它们之间复制很多状态。
相反,游戏倾向于沿域边界解耦: AI、物理、音频、渲染等将尽可能保持分离。
发布于 2010-02-06 06:28:10
这在很大程度上取决于游戏。
例如,第一人称枪手,可能不是。
一个飞行模拟器,MVC是很有可能的(X-Plane和FlightGear实际上都使用MVC,你可以从他们的插件API看出)。SimCity,你当然可以这样做并且有意义(不知道他们是否真的这样做了)。也许是实时策略。珠光宝气,谁知道呢。
发布于 2010-02-06 04:06:49
我不知道有没有使用它的商业游戏;也许有一些。然而,我找到了一份paper,其中提到了电脑游戏中使用的MVC模式。这可能会给你一点洞察力。
https://stackoverflow.com/questions/2210026
复制相似问题