MVVM将如何用于游戏?

Ben*_*gan 12 c# silverlight wpf mvvm

特别是对于2D游戏,特别是silverlight/wpf游戏.

如果您考虑一下,可以将游戏对象划分为其视图(屏幕上的图形)和视图模型/模型(对象的状态,ai和其他数据).在Silverlight中,将每个对象设置为用户控件,将模型和视图放入单个对象中似乎很常见.我认为这样做的好处是简单.但是,它可能不那么干净,或者在潜在的"游戏引擎"方面有一些缺点.

你对这件事有什么看法?使用MVVM模式进行游戏开发有哪些优点和缺点?性能如何?欢迎所有的想法.

Dan*_*ant 12

您可能会遇到性能问题,因为MVVM通常会在WPF中导致大量数据绑定功能,以实现清晰的分离.然而,它仍然是一个很好的主意,值得追求; 如果需要,您可以随时分析应用程序并优化某些元素.最有可能的是人工智能是门控而不是UI整合.

至于确定在哪里划分模型| 查看模型| 查看,我想采取以下方法:

  1. 模型是与直接用户交互无关或几乎没有任何关系的一切.这将包括游戏规则引擎,AI等.视图模型以明确定义的方式与模型交互,其中用户可以控制或接收关于游戏模型中发生的事情的反馈.

  2. 我尝试为界面的每个主要组件创建View Models.例如,如果你正在构建一个RPG,你可能有一个InventoryViewModel,CharacterStatsViewModel,WorldMapViewModel等.我通常不会为单个控件/小部件创建它们(比如健康指示器,项目字形或'+'符号以升级)除非他们有一个相当复杂的界面.

  3. 视图当然是用户最终如何进行交互和观察,这是非常简单易懂的.一个好处是您可以为给定的ViewModel创建多个视图,因此您可能有一个大型视图用于库存,也可以有一个较小的视图用于快速访问重要项目,例如,如果您与它们交互的方式基本上是相同.

  • 尼斯.3号听起来特别有用. (3认同)

Ber*_*ryl 11

总之 - 太棒了!

事实上,Josh Smith刚刚发布了一本关于MVVM的书,他将游戏作为他的解释性应用.建议你先阅读Ward Bell Josh作品的优秀(和免费)批评.