Android 回合制多人游戏:进行/验证移动

Android 回合制多人游戏:进行/验证移动,android,Android,我想使用Skiller将我的游戏带到多人游戏中。多人模式出现在与口袋妖怪风格相同的战斗中,怪物使用玩家选择的动作进行战斗。Skiller使用在用户之间发送的字符串来传达移动。对于多人游戏,我应该: (1) 只发送移动名称,让两个玩家的客户端计算结果(伤害) (2) 让进行移动的客户计算结果并发送 (3) 发送移动名称,让两个客户端计算结果,并将它们发送给对方进行检查 (4) 一个我不知道的更好的选择 [编辑]在战斗开始时,会有一条信息来回传递,以便玩家的两个客户都能获得有关怪物的所有信息(生命值

我想使用Skiller将我的游戏带到多人游戏中。多人模式出现在与口袋妖怪风格相同的战斗中,怪物使用玩家选择的动作进行战斗。Skiller使用在用户之间发送的字符串来传达移动。对于多人游戏,我应该:

(1) 只发送移动名称,让两个玩家的客户端计算结果(伤害)

(2) 让进行移动的客户计算结果并发送

(3) 发送移动名称,让两个客户端计算结果,并将它们发送给对方进行检查

(4) 一个我不知道的更好的选择

[编辑]在战斗开始时,会有一条信息来回传递,以便玩家的两个客户都能获得有关怪物的所有信息(生命值、攻击值、状态),以便每个客户都能根据移动计算所造成的伤害


如果我在移动后验证结果,如果他们得到不同的结果,会发生什么?验证是有意义的,但我不确定如果它以不同的方式返回,我想做什么。

让攻击者发送移动,然后防御者(被攻击的人)计算所造成的伤害

以口袋妖怪为例,只有防御者才应该计算伤害的原因是,攻击者不需要从防御者那里接收大量信息,例如最大健康值、“防御”类属性等。 然后防御者将收到的伤害发送回攻击者,以便两名玩家都知道发生了什么


我相信这是最好的方法。

如果您真的想验证移动,请选择选项3。相互检查将确保游戏在两个客户端上处于相同的状态。对于选项1,如果一个被修改,他们可能会看到不同的结果,但他们不知道。请将您的回答作为答案而不是评论,这样它可以被评分/接受。这不是一个硬性规定,所以对我来说,这不像是一个答案。老实说,我认为投票结束是主观的,因为这个问题没有一个答案,很多游戏在很多方面都是这样做的。@Geobits我对多人游戏开发还是新手,所以我不确定如何最好地提问。我不想在我的游戏中假设所有东西都会一直工作,但我不确定当你从玩家的客户那里得到两个不同的结果时如何回应。我只是给出一个解释性的对话框,然后退出战斗/战斗/游戏。有罪的一方会知道这意味着什么。无辜的一方可能会感到困惑,但他们可能不想继续与骗子玩,所以可能不会被冒犯。YMMV,有很多选择。