MVC设计模式是否用于商业电脑游戏?
特别是在高性能游戏方面,我很好奇游戏行业是否有MVC的商业用户?
它很少用于游戏中.我花了一段时间才弄明白为什么,但这是我的想法:
MVC的存在是为了区分两种表示.模型是数据的抽象表示.这是机器查看应用程序状态的方式.视图(和控制器)以对人类有意义的方式表示该系统的更具体的可见实例.
在大多数商业应用中,这两个世界是完全不同的.例如,电子表格的模型只是一个2D网格值.它不必考虑单元格的像素宽度,滚动条的位置等等.同时,电子表格视图不知道如何计算或存储单元格值.
在游戏中,这两个世界彼此更加接近.游戏世界(模型)通常是位于某个虚拟空间中的一组实体.游戏视图也是位于某个虚拟空间中的一组实体.边界体积,动画,位置等,你认为是"视图"一部分的所有东西也直接被"模型"使用:动画可以影响物理和人工智能等.
最终的结果是游戏中模型和视图之间的界限是任意的,没有帮助:你最终会在它们之间复制很多状态.
相反,游戏倾向于沿着域边界分离事物:AI,物理,音频,渲染等将尽可能保持独立.
这在很大程度上取决于游戏.
例如,第一人称射击游戏,可能不是.
一个飞行模拟器,很有可能是MVC(X-Plane和FlightGear实际上都使用MVC,你可以从他们的插件API中得知).SimCity,你当然可以这样做并且有意义(不知道他们是否确实这样做了).也许是实时战略.宝石迷阵,谁知道.
我不知道任何使用它的商业游戏; 可能有一些.但是,我能够找到一篇论文(PDF),其中提到了计算机游戏中使用的MVC模式.这可能会给你一些洞察力.