C++-各个开发环境下(c,lua,as3),rand的结果一样吗?

C++-各个开发环境下(c,lua,as3),rand的结果一样吗?

晚风撩人 发布于 2017-06-03 字数 529 浏览 1083 回复 3

比如War3的录像这种,
在开始游戏之前,记录一个seed,再记录一个调用rand()的迭代数,这样在这场战斗中,单位的攻击结果就确定了。播放录像的时候,就可以重现保持一致性了。
不知道不同开发语言,随机生成的结果是否一样?
我估计c和lua应该可以一致。
如果是一致的话,还有个想法,大伙帮我参谋参谋。
比如一场战斗,Server把seed数和迭代数给Client,以后的战斗流程,Client只需要发请求就行了,具体伤害啊Miss啊暴击啊这些用随机数算的,Client和Server独立算,不再等服务器告诉结果了。
不知道我这种想法有没有什么漏洞?

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

想挽留 2017-10-13 3 楼

这个想法有点怪,为什么播放录像的时候还去寻找当时的随机数,为什么不保存下来作为数据?会不会整个系统的架构上有点瑕疵。

偏爱自由 2017-09-18 2 楼

as3中没有设置seed的方法,调用随机函数直接使用Math.random(),每次调用都会出不同的随机数。

泛泛之交 2017-07-04 1 楼

应该有问题吧,我试了c,php这两个的rand使用相同的seed时产生的随机数都是不一样的,而且as3应该跟js一样的,随机函数使用的是Math.random(),是没法传设置seed的,每次产生的随机数都是不一样的。c和lua产生的随机数会不会一样,也最好去试试再下定论吧。