游戏框架架构——视图组件还是MVC?

2024-01-20

我正在尝试为我的游戏构建一个非常轻量级的可重用框架,而不是每次开始游戏时都从头开始。我有一个组件驱动的架构 - 例如实体由Position组件、Health组件、Ai组件等组成。

我最大的问题是我的模型组成视图组件允许模型有多个视图,或者是否使用更真实的 MVC,其中模型不知道其视图,并且它们是在外部管理的。

我已经尝试了这两种方法,但如果有人知道每种方法的优缺点以及哪个是行业标准,那就太好了。


取决于你的受众、游戏开发人员,包括我自己,都不太习惯 MVC 模型,尽管大多数人都知道它,但由于开发人员伤亡(不是任何严重的技术原因),保持它干净利落并不那么容易。因此,根据经验,我见过数十个游戏框架都是以 MVC 开始的,但只有一对能够将其维持到最后。我的理论是,MVC 为小型一次性游戏(通常只有几个开发人员)增加了太多的复杂性和几乎没有什么好处,并且很难将大多数游戏对象真正干净地分离到大型/复杂游戏的这些层中。由于游戏有发布日期,因此它们很多时候会为了性能和快速临时解决方案而牺牲代码的清晰度和可重用性(如果有必要,在续集中(如果有的话)将会重写)。

然而,考虑到上面的警告,最好把目标定得更高,因为如果你成功了那就更好了:),如果你失败了,那就不好了。所以你或许应该尝试一下 MVC,但如果它失败了也不必担心,专业的游戏开发者都在这个任务上失败过很多次了:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

游戏框架架构——视图组件还是MVC? 的相关文章

  • 如何在 Swift 中显示框架(SDK)中的视图控制器?

    我在 Objective C 中有自己生成的框架 SDK 它在我的 Swift iOS 项目中使用 我想调用我的初始控制器CCInitViewController 请参阅第一张图片 从我的 SDK 单击按钮 位于 App Controlle
  • 通过 MVC 将数据写入数据库的最佳方法是什么?

    我正在使用 MVC 和 EF Core 开发一个家庭作业项目 我正在寻找将数据写入数据库的最佳方法 我是初学者 有两张桌子 Predbilje ba 报名 和Seminari 研讨会 public class Predbilje ba Ke
  • 包含 Xcode 上添加的框架的标头

    我想使用一些框架 例如glew and cg所以我手动添加 通过右键单击项目 gt 将文件添加到 来将所需的框架添加到我的项目中 并选择正确的框架 问题是 当我尝试包含头文件时 Xcode 找不到其中任何一个 我希望这张图能帮助理解 And
  • 为实体框架中的实体创建基类

    我想创建一个对我的所有实体都通用的基类 该类将具有 Save Delete GetByID 等方法以及其他一些基本功能和属性 我在 Linq to SQL 方面有更多经验 希望能在 EF 中获得一些类似的好示例 谢谢 像这样 public
  • “纯”MVC 实现有多大用处?

    我在一家提供类似 CRM 的定制软件的公司工作 我们目前正在重新设计 重新开发该软件 希望它看起来更现代 并且更容易为未来的客户开发和定制 目前 定制每个新应用程序都需要很长时间 有一种假设是 花费这么长时间的原因是 视图 层中存在大量业务
  • 我可以通过什么方式混合 jQuery 和 vanilla JavaScript

    我有一个用普通 JavaScript 编写的 Web 应用程序 我想用 jQuery 动画来增强它 并使用我在各种 jQuery 插件中找到的一些功能 例如上传 http www uploadify com 可以通过什么方式将 jQuery
  • 如何删除django中级联的一对一相关模型?

    背景 我在 Django 1 8 5 中定义了以下模型 class PublishInfo models Model pass class Book models Model info models OneToOneField Publis
  • javax.validation.ConstraintViolationException:在更新前验证时违反了 Bean 验证约束

    我在尝试使用 JPA 2 0 SpringMvc 3 0 在多对多关系中插入新元素时遇到烦人的错误消息 我有一张与州有关的桌子 另一张与人有关的桌子 一个人可以与许多国家联系起来 一个国家可以与许多人联系起来 在这种特殊情况下 我有一个 l
  • 用于桌面数据库应用程序的 Python 框架

    是否有一个框架可以为Python开发桌面数据库应用程序 一些带有CRUD屏幕的屏幕 我正在寻找类似于 Windows 窗体的东西 能够将 TextField Combos 和其他 UI 隐喻与datasets连接到关系数据库例如 MySQL
  • 使用 formsauthentication 进行登录并使用 HttpContext.Current.User.Identity

    我制作了一个网站 其页面包含剃刀表单 用户可以在此表单上登录 然后重定向到不同的页面 登录 和注销 与表单身份验证成功配合 但是 我似乎无法使用 HttpContext Current User Identity Name 来检索存储的用户
  • 如何将 C++ 代码“制作”为 xcode 的库

    为了澄清澄清 我知道如何使用 obj c 或 swift 在 Xcode 中创建库 我知道如何在项目中使用这些 我知道如何编译这些项目 以便一切正常 我不知道的是如何获取开源 C 源代码 呵呵 并将其构建 制作 编译到库中 只是为了澄清以下
  • 如何将 Stripe 支付网关集成到 ASP.NET MVC

    我想整合条纹PSP https stripe com 到我的 ASP NET MVC 应用程序中 在你用寻找具有相同问题的问题来折磨我之前 我确实寻找过上述问题 但它们似乎已经过时了 我尝试按照 stripe 网站上的程序进行操作 但 ja
  • 我应该在客户端和服务器上都使用 MVC 吗?

    我决定在我的网站上使用 MVC 模式 所以 现在我在我的网站上使用 Backbone js 框架 我网站上的所有操作都是ajaxy 所以server只从db获取数据 并将数据保存到db 我是否也需要在服务器端使用 MVC 这让一切都变得复杂
  • 如何构建 Javascript 架构来补充 PHP MVC Web 应用程序?

    我正在为 Web 应用程序迭代开发新的 JavaScript 架构 之前的迭代有大量内联代码 分散的包含 没有 js 文件的目录结构 并且所有内容都在全局命名空间中 我的目标是 将脚本包含在页脚中 将所有内容保留在应用程序命名空间 对象中
  • 没有这样的模块“Ensembles”错误 - 导入 Objective-C 框架以在 swift 项目中使用

    我将 Ensembles 添加到我的 Swift 项目 在这里找到https github com drewmccormack ensembles https github com drewmccormack ensembles 我没能在我
  • 重置密码 电子邮件

    我是 Laravel 开发新手 目前正在从事小型项目 我想自定义重置密码的电子邮件模板 甚至将其链接到完全不同的模板 对于身份验证脚手架 我使用了php artisan make auth命令 但是 默认重置密码功能使用默认的 Larave
  • Sencha Touch 和 ExtJS 配置文件适用于一个 Web 项目/虚拟主机中的桌面和移动设备?

    我正在使用 ExtJS 和 Sencha Touch 创建一个具有桌面和移动版本的 Web 应用程序 ExtJS 4 和 Sencha Touch 2 使用 MVC 方法 Sencha Touch 2 合并了不同设备 iPhone 平板电脑
  • 如何在 Ember 中构建递归视图?

    在我的应用程序中 我有一个名为block它可以包含其他内容并被其他内容包含block项目 为了简单起见 我们假设这些块可以无限嵌套 我想知道是否可以创建与嵌套块相对应的递归视图 每个视图都会被渲染为DIV包含其子级并驻留在其父级内部DIV
  • Play框架运行应用程序问题

    每当我尝试运行使用以下命令创建的新 Web 应用程序时 我都会收到以下错误Play http www playframework org Error occurred during initialization of VM Could no
  • “引擎”和“框架”有什么区别? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我听说这些术语似乎可以互换使用 所以我有点不清楚 请举出例子 这些术语和其他术语看起来确实非常相似 它们是从概念角度命名的 因此可以定

随机推荐