首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:网络环境下的随机生成(多人)

Android:网络环境下的随机生成(多人)
EN

Stack Overflow用户
提问于 2015-05-20 03:15:55
回答 1查看 57关注 0票数 1

我写了一门课,由于有了种子和困难,它将使我的游戏恢复一个竞争的环境。世代是一致的(不管是什么,相同的种子和难度水平总是会导致相同的比赛场)。据我所知,所有android设备都使用Java1.6,下面是我的问题:

在多玩家环境中,只向其他设备发送种子和困难是安全的吗?

当Google更新Java版本级别为1.6的表单时,我需要担心吗?或者他们可能会把所有的android设备更新到那个版本级别(我假设随机类会被改变)?如果不是,那么什么方法才是检测随机类是否不同的好方法呢?

换句话来说,应该采取哪些预防措施来确保java.util.Random类(我的字段生成类大量使用)将为每个设备带来相同的游戏场?或者,考虑将所有游戏场数据发送到非托管设备是否更明智?

我可能可以通过一条大小为:

代码语言:javascript
复制
byte[ROWS * COLUMNS]

在此之前,我感谢在这个问题上的任何指导/建议。这是一个很难找到的问题,因此一些未来视图的链接可能是合适的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-24 03:58:52

这里有几个选项,但我想我希望有一些神奇的JVM属性来定义java.util.Random类修订版本。

第一个选项是检查java版本,并将其与其他设备的版本进行比较。如果它们是相同的,那么(据我所知)假设随机类是相同的,因此种子和困难是可以发送的。但是,如果它们是不同的,则可以发送所有数据,或者亲自检查文档/版本发布说明,以查看什么时候更改了随机类,然后确定是否应该根据先前获得的java版本标识符发送所有数据。

第二种选择是始终发送所有数据。这就是我个人要做的。

如果您没有我那么幸运,而且您的数据超过了Multiplayer.MAX_RELIABLE_MESSAGE_LEN的值(以字节为单位),您可能不得不将数据分解为多条消息,这些消息可能会变得丑陋,但完全是可行的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30339674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档