C#   发布时间:2019-10-05  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c# – MMORPG开发和服务器端逻辑,更新所有游戏对象?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我以前设计过Multiplayers Games,但现在我想创建一个用于学习/挑战目的的MMORPG架构.我想在一台服务器上模拟数百(或几千)个并发播放器.

到目前为止一直很好,除了现在我面临一个问题,找出一个更好的方法来尽可能快地更新服务器上的所有游戏对象.

游戏对象我指的是所有玩家,怪物,子弹.

问题是所有玩家,子弹都存储在服务器端内存的集合中以便更快地处理,并且迭代所有这些以检查冲突,更新运行状况,更新运动等等……花费太长时间.

让我们说我有1000名玩家,全世界有10000名小怪,所有玩家和生物都有责任创造5个其他游戏对象(不多也不少),比如子弹.

这将在集合中给出(1000 10000)* 5 = 55000个游戏对象.

迭代所有对象,更新它们,在具有4GB RAM的双核HT i5上永远(几分钟).这是错的.

迭代时,代码看起来像这样(伪):

for(int i = 0; i < gameobjects.Count; i++) {
  for(int j = 0; j < gameobjects.Count; j++) {
      // logic to verify if gameobjects[i] is in range of
      // gameobjects[j]
  }
}

作为优化,我正在虑将我的游戏对象划分到不同的区域和集合中,但这不能解决我需要每秒多次更新所有对象的问题.

我该如何继续更新服务器端的所有游戏对象?我做了大量的搜索来找到有趣的游戏设计模式但到目前为止没有结果.

大佬总结

以上是大佬教程为你收集整理的c# – MMORPG开发和服务器端逻辑,更新所有游戏对象?全部内容,希望文章能够帮你解决c# – MMORPG开发和服务器端逻辑,更新所有游戏对象?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。