使用Node.js实现一个多人游戏服务器引擎(3)

关于移动

我们需要一种用来测量游戏中距离的方法,因为在游戏中玩家可以采取的核心行动之一就是移动。 我们需要用这个数字作为时间的衡量标准,来简化游戏的玩法。 考虑到这一类型的游戏具有基于回合的动作,例如战斗,使用实际时钟对时间进行测量可能不是最好的。 所以我们将使用距离来测量时间(意味着距离为 8 比距离为 2 将需要更多的时间,从而允许我们做一些事情,例如为持续一定数量的“距离点”的玩家添加效果)。

考虑运动的另一个原因是不是一个人在玩这个游戏。 为简单起见,引擎不会让玩家随意组队(虽然这对未来可能是一个有趣的改进)。 该模块的初始版本只允许个人朝着大多数参与者决定的地方移动。因此,必须以协商一致的方式进行移动,这意味着每一步行动都将等待大多数人在行动之前提出请求。

战斗

战斗是这种游戏另一个非常重要的方面,我们不得不考虑将它添加到引擎中,否则我们最终会失去一些乐趣。

说实话,这并不需要重新发明轮子。基于回合制的组队对战已经存在了几十年,所以在这里只实现这个机制的一个简单版本。我们将把它与“龙与地下城”中的“主动性”这个概念混合起来,产生一个随机数使战斗更有活力。

换句话说,就是参与战斗的每个人的行动顺序将会被随机化,其中包括敌人。

最后(虽然我将在下面详细介绍这一点),你可以用设置的“攻击力”值的物品。这些是你在战斗中可以使用的道具;如果一个道具没有这个属性的话只能对敌人造成 0 点伤害。当你试图用这样的道具进行战斗时,我们可能会添加一条消息,这样你就能知道自己要做的事情是毫无意义的。

客户端 - 服务器交互

现在来看看客户端怎样基于前面定义的功能与服务器进行交互(目前还没考虑端点,不过马上就会讲到这个):

客户端与服务器之间的交互

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/78.html