楼主:
orze04 (orz)
2017-10-06 01:18:03※ 引述《dansy (Eye Taiwan)》之铭言:
: 蛮好奇线上游戏的抽卡机制到底是怎么运作
: 爬了一下文 没发现有讨论过 提出来问问版上神人
: 有人在业界工作知道如何实作吗?
: 1.卡片在服务器端早已序列产生好
: 在巴哈看过的一种说法
: 简单来说就像买刮刮乐(物理),玩家抽卡只是跟服务器"领卡片"
: 单抽领1张,10连就领10张,完全照顺序发出
: 2.服务器端即时产生乱数,再依照乱数大小生成卡片
: 这比较像掷骰子的概念,掷中就有
: 先乱数产生一组数值,再参照数值卡片对应表,决定发哪张卡片给玩家
要看random seed怎么取的,当然官方不可能告诉你
常用的一种乱数方法:
1. 取电脑系统时间当seed(单位可以取到ms)
2. 这个值经过hash(杂凑)运算后会对应到一张固定的表的某个位置
此表可能长这样9 8 1 0 2 5 7 6 4 3
3. 之后每次开始取乱数时都从这个位置依次往下
假设之前是骰出1,只要seed没有更新,依次会骰到0 2 5 7 6 4 3 9 8 1....
4. 当然实际情况每次取乱数前都一定会更新seed(回到第1)
卡池中所有卡片(当然有重复)排成一张像第2步中固定、打散的表单
每次抽的时候会重置seed,十连则是根据位置往下连十个
保底机制可以透过表单设计时就排好,任连续十位置内必有SR
关键:
Seed用到的参数
杂凑函数
内容物表单
我是觉得不想验证了,一切随缘
作者:
asteea (Asteea)
2017-10-06 02:00:00时间反而不会常用... 去看一下entropy吧
作者:
ddavid (谎言接线生)
2017-10-06 02:55:00写小程式或单机游戏的话还是挺常用的啦,反正不要求乱数品质,甚至还会反过来利用乱数种子固定这回事XD商业用的话就看情况了,不过我说真的要对付多人转蛋游戏,即便时间乱数种子还是绰绰有余了,要烂到出现时间流抽卡有效还真不是普通的烂才能办到XD
作者:
ddavid (谎言接线生)
2017-10-06 06:46:00楼上那个影片当年板上就提出来讨论过了喔跟当年一样我就问这句,你拿两台手机来有没有能力重现成功如果这不是随便拿两台手机来就可以高机率(就不很严苛地说百分之百)重现的话,那这影片就没有什么验证时间教的能力XD顶多验证了只要机率存在就是有人可以赛到XD这影片都一年多了,板上不用多,看有没有一个人试得出两台二抽一样的东西就好XD(虽然要求设到这么低也是失去证据能力了)。如果这重现几乎做不到,那就跟法老说五星很好抽是类似的事情XD
假设真的是用时间且取到ms,那影片也没办法证明什么吧,先不说两只手是否真的同时按,光 request 回server 的时间就无法掌握了
想就知道纳影片不可能证明了阿如果两个人误差两三秒按十连抽第一个人在第三连中了一只五星 那不就代表第二个人后面必中五星
作者:
kazumi66 (ふぅ☆Bryce♪(*′ω‵*))
2017-10-06 08:36:00而且就算那影片同步 请问你怎知道全世界没有人跟你同步?那种影片根本不能代表or证明什么
作者:
LayerZ (無法如願)
2017-10-06 10:48:00mmo抽卡用时间种子乱数表就很够啦