1

我正在编写 MMO 塔防游戏(客户端服务器架构)。因为作弊保护,服务器需要有逻辑。但我有真正的设计问题。当假设 10 个人互相进行死亡竞赛时,每个塔射击都需要计算并发送给玩家。当许多塔被建造时。(比如 10 个玩家 * 10 塔 = 100 塔)流量非常高。(一个玩家每秒会引起很多消息)我该如何解决这个问题?

服务器用 Java 编写(Smartfox 2x) 客户端用 C# 编写(Unity 3d)

提前致谢。

4

2 回答 2

0

因为作弊保护,服务器需要有逻辑。

这是一个错误的假设。服务器需要有足够的逻辑来运行游戏逻辑并确保所有玩家的行为都有意义,但它不需要发回结果。客户端都可以并行运行相同的逻辑并自行计算结果。

于 2014-01-20T01:11:43.460 回答
0

在服务器上使用强大的简化单位和战斗规则。如果有人踏入塔周围的“损坏区域”,只需通过影响随时间的持续损坏来编程您的损坏算法。

你可以在服务器上使用二维战场,所有单位和塔楼和损坏区域都只是圆圈或点和圆圈。U也可以使用几个伤害环,每秒伤害在防御塔周围的外圈较低,在内圈较高。

您可以使用队列来管理单目标伤害/多目标伤害和区域伤害。如果是单发,只有队列中的第一个受到伤害区域的影响,只有第一个,第二个和第三个受到多发等的影响。

如果一座塔每 5 秒发射一次子弹并且每颗子弹造成 40 点伤害,那么您只需在服务器上计算,对站在“伤害区域”或“伤害圈”中的每个目标造成 8 点每秒的伤害即可。

在客户端上,你可以做所有的事情,比如飞弹、撞击、溅射、飞溅和烟花等等。

但是在服务器上通过进入损坏区域然后每秒获得伤害来完成所有工作。(抱歉英语不好)

于 2014-03-08T14:12:55.347 回答