Architecture 具有LOB应用背景的人的游戏架构

Architecture 具有LOB应用背景的人的游戏架构,architecture,game-engine,Architecture,Game Engine,我的背景几乎完全基于业务应用程序—Web服务、调度程序、桌面和CRM系统的Web前端,等等 现在,几乎所有上述项目的基本原则都是一样的: 某种数据访问层、业务逻辑层和UI 显然,有些场景需要一些独特的东西,但一般来说,它是N层的 我喜欢做一些游戏开发。我并不期待任何令人印象深刻的事情,因为我没有足够的资源投入到这件事上,但是一些挑战我的东西会很好 我应该从目前的经验中吸取什么教训(如果有的话),我需要再次学习什么 我假设,根据我所有的经验,不同类型的游戏会有不同的架构,但它们都基于相同的核心原则

我的背景几乎完全基于业务应用程序—Web服务、调度程序、桌面和CRM系统的Web前端,等等

现在,几乎所有上述项目的基本原则都是一样的:

某种数据访问层、业务逻辑层和UI

显然,有些场景需要一些独特的东西,但一般来说,它是N层的

我喜欢做一些游戏开发。我并不期待任何令人印象深刻的事情,因为我没有足够的资源投入到这件事上,但是一些挑战我的东西会很好

我应该从目前的经验中吸取什么教训(如果有的话),我需要再次学习什么

我假设,根据我所有的经验,不同类型的游戏会有不同的架构,但它们都基于相同的核心原则吗?为了便于讨论,假设我正在构建一个简单的用户界面(可能是一个自上而下的用户界面,就像以前的Zelda游戏一样)-这似乎是我可以使用三层逻辑的东西-一个带有BLL和DAL的服务器和一个客户端UI-但我不太确定这是否正确-当然使用实体框架似乎不合适,因为访问数据库中的很多东西会有非常大的开销,我想性能将是一个问题-例如我假设我不想经常使用Db来存储播放器位置,如果它们每秒更改20多次以上

是否有专门针对游戏场景的模式和实践

在创建UI之前开发后端系统是否可行(例如插入控制台应用程序,以允许我在添加UI之前开发所需的功能)。这是好的还是坏的做法

简言之,我不知道从哪里开始,我希望得到一些建议,特别是那些有经验的人的建议

关于唯一的事情,这是一成不变的是,我想要一个多用户游戏与中央服务器。欢迎提供游戏建议。

首先,游戏往往具有实时模拟功能
  • 因此,游戏有更新循环
  • 因此,游戏趋向于微秒级的业务逻辑操作
  • 因此,数据库解决方案并不是“数据层”的全部
(如果你没有模拟游戏(例如:“拼字游戏”、“文明”和大多数facebook游戏),这是不对的。mud的游戏往往没有太多模拟,所以不清楚你的游戏在哪一边)

因此在实践中,对于高仿真游戏

小型/非持久性多人游戏(地震、反击、星际争霸——可以由一台机器运行的游戏):通过没有数据层来解决这一问题(如果它们实现了保存,则会作为游戏状态的巨大转储)

大型多人游戏(MMO——需要多台机器的游戏):将其持久性数据存储用作只写管道(并用于恢复),然后将大量精力投入到数据分区方案中,以使模拟(即业务)能够逻辑可以根据本地内存访问的顺序获得所需的延迟


透视图中的一些数字:如果一个“服务器”处理500个玩家,而你的模拟速率是15hz,那么每个玩家每滴答一次可以获得.13ms的cpu。所以,如果你需要“火球击中了这帧的任何东西了吗”必须是+1。。很好,听起来很有趣,我可能会按照你的建议去做,因为我也在这个位置上。也可以查看gamedev.stackexchange.com。@内特谢谢-我不知道那个SE网站。杰夫,非常感谢-这正是我想要的,而且帮了我很大的忙。