楼主:
Satoman (沙陀曼)
2020-06-01 21:38:56→ meowyih: 说真的, 程式摊开来九成九就一行 if rand()%100 > 99 06/01 20:53
→ meowyih: { 喔耶出运啦! } 玩家看了也不会觉得公平的 :> 06/01 20:53
其实大部分都不是,因为rand()出来的东西是伪随机,理论上直接这样写会出问题。
至少我知道的专案都是用乱数表加上种子来处理,尽量让结果接近真随机。
(我文组也不是写程式的,这方面的东西有老大要解释的麻烦帮个忙www)
然后这个种子通常是用时间来抓,
简单来讲就是某些手游有同时间抽卡会有相同结果的都市传说,这是有可能的。
这样看起来好像就是所谓的欧洲时间?
但其实时间的种子通常会以秒以下来抓,真的有欧洲时间那也可能只是毫秒等级的时间。
当然,乱数是有可能被破解的。
比较有名的例子就以前的PM。
用破解乱数运作、调整时间的方式抓自己理想体质的PM曾盛极一时。
但是前阵子GF调整之后破解PM乱数变成几乎不可能的任务,所以乱数世代也随之终结。
这部分我也问过程式,他们几乎都是说要破解刻意加强设计的乱数是几乎不可能的事。
所以还是多做好事,扶老婆婆过马路最实在,起码有帮助到别人 ==
然后卡池的内容也不会写在程式码里,因为那是我们这些杂工企划要处理的东西。
基本上大部分的游戏资料都是用表格在管理,卡池内容也一样。
卡池其实不是让你直接抽到商品。
而是先抽塞满相同机率的商品的箱子,再从箱子中抽取商品这样。
(避免一张搞到又臭又长,debug的时候看到san值归零)
只是我高中的时候就把数学课本完全丢掉了,
不太确定这样设计会不会影响到抽取的期望值计算www
作者:
meowyih (meowyih)
2019-06-01 20:53:00说真的, 程式摊开来九成九就一行 if rand()%100 > 99{ 喔耶出运啦! } 玩家看了也不会觉得公平的 :>
作者:
guogu 2020-06-01 21:41:00以ms当单位加上网络延迟基本不太可能破啦
作者:
battlecat (eastern undefeated)
2020-06-01 21:41:00翼龙怎么什么都懂= =
作者:
ZMTL (夜风/潇湘 VR板已经开板!)
2020-06-01 21:44:00作者:
s11924 (Kim03929)
2020-06-01 22:14:00你说的时间是time(NULL)那个吗?
作者:
Jotarun (forever)
2020-06-01 22:50:00真的是文组 笑死种子用时间跟所谓运气的“欧洲时间”根本没关系 = =
上面假设的欧洲时间是没有错的啊因为乱数种子是一样的
作者:
Jotarun (forever)
2020-06-01 23:49:00讲错就说人家看不懂耶www
前文的假设是seed只用时间 一样的seed跑出来的结果会是一样的
作者:
Jotarun (forever)
2020-06-01 23:54:00seed一样只是用同一个表 同一个表你跑好几次rand结果也不会一样
作者:
Vulpix (Sebastian)
2020-06-01 23:57:00咦?你认真的吗?
这就要看你怎么实作rng了啊 假如你用的是传统的(7^5*seed)mod(2^31-1)就会一样了
作者:
Jotarun (forever)
2020-06-02 00:05:00不是 你实作不太可能是跑一次rand就换一个seed吧
作者:
Jotarun (forever)
2020-06-02 00:07:00对啊 所以你就算同一个时间 每个user都跑一次rand也不会一样啊
上一次的rng的output作为下一次的seed可是上面的假设是rng(time())啊当然 他没有讲的那么清楚 但是我看下来是这个意思
作者:
Jotarun (forever)
2020-06-02 00:12:00问题是实作没有人会这样啊你每次都换seed就变成一个跟时间1-1的函数完全不随机了
实作不会这样跟上文这样讨论是两回事啊我看着手机上的图片喊我婆 现实中我还是一个人睡觉RQQ
crypto 用的 generator 通常也不会让你自己刻重点是观念要对 call function 不要出错 RTFM
作者:
Jotarun (forever)
2020-06-02 00:27:00重点是这个人每次讲错就先呛别人 先呛不会让你变成对的
我个人身为写程式的(没有写乱数相关就是) 看不太出来原po讲的架构有什么错啊?rand我印象没错的话 输入同样参数给出的结果是相同(C
作者:
Jotarun (forever)
2020-06-02 00:37:00就实际上有点规模的游戏都不可能会有所谓欧洲时间
作者:
Jotarun (forever)
2020-06-02 00:38:00那样会变得更不随机
不管实务上是怎么做(我也说我工作没有写乱数相关 只是
作者:
Jotarun (forever)
2020-06-02 00:40:00啊原Po讲的就是错的啊
偶尔会摸到)但是原Po讲的理论 错在哪边我也看不太出来题外话我看不太懂跑rand要重设seed是什么意思是每次都要重置到初始值还是每次都给不一样的值?
作者:
Jotarun (forever)
2020-06-02 00:43:00原Po的理论要成立只有你跑随机之前都会用现在时间当种子然后刚好这个公司很烂只用标准rand 才会在同一个时间得到同样的结果
原po的确是这样讲没错啊 所以才说"这情况" "可能" 会
作者:
Jotarun (forever)
2020-06-02 00:45:00实际上两者在稍微正常一点的公司都不会发生
有欧洲时间 然后后面也接了大部分公司会弄更复杂的乱数让这件事不会发生
作者:
Jotarun (forever)
2020-06-02 00:46:00第一个前提就已经不可能了...
等等 所以你讲了这么多 只是想讲实务上不会拿时间当参数丢进函式这样而已??
作者:
Jotarun (forever)
2020-06-02 00:47:00对啊你不能把没有人会作的事情因为做得到就说可能啊
.... 我现在处于一个又震惊又不知道该说什么的状态不晓得该说是沟通问题还是我中文能力还不够强....
作者:
featherM (ç´æ‚ ç¾½)
2020-06-02 01:00:00原po讲的就是如果这样做就可能有产生欧洲时间 你在那边实务上不会这样做
作者:
Jotarun (forever)
2020-06-02 01:02:00就没有这种如果啊
问题FGO真的有发生这种事,实体活动同时按抽的两人抽出完全一样的内容。所以真的有这个如果,真的有人这样做。退一万步说这个做法很烂可以,但讲说一定没人这样作我觉得太武断了。
作者:
Jotarun (forever)
2020-06-02 01:08:00就算发生了也绝对不是那样 比较可能是其他原因
只要做的到就没有什么叫做绝对不会。讲难听点日本很多电脑方面的能力比台湾是差很多的。你自己也讲了是“正常点的公司不可能”,抱歉,有些公司就是那么不正常。你不能把理论上可能的事讲成绝对不可能。这才是所谓理组的逻辑。
作者:
Jotarun (forever)
2020-06-02 01:14:00抽卡游戏的命根子就是抽卡 你说会随便乱搞那我随便了
工作上其实偶尔都会遇到测试模组因为可以跑 然后也没
如果你够清楚FGO这类日本抽卡游戏的状况就不会觉得有什么不可能了。
整个游戏一开始在开发时都不被当一回事,所以根本没投注什么心力在做根本当免洗随便搞,结果莫名靠IP死士硬是撑到活起来,大概就是这种状况。抽卡对抽卡游戏是命根子,但在开发期对老板跟团队别说抽卡环节整个游戏都只是个免洗企划,这种案例多的是。我不是写程式的是做图搞设计的,我进上一家公司前也以为正常点的公司会把资料跟图纸好好归档啊,制造业你工程资料可是命根耶。
作者:
Jotarun (forever)
2020-06-02 01:23:00你们说的都不是会赚钱的事情啊
阿结果?一家40年老企业就是都没做然后人家赚钱赚到现在,存在即合理我能怎样。
作者:
Jotarun (forever)
2020-06-02 01:24:00所以你说因为赶时间有bug导致欧洲时间我信啊
我是不晓得你家公司有多威猛 但是小公司管理一蹋糊涂
作者:
Jotarun (forever)
2020-06-02 01:25:00但是一开始设计就会有欧洲时间那是不可能的
那不叫一开始设计就有欧洲时间,设计的人就是废到不知道会搞出问题这还比较可能。
作者:
Jotarun (forever)
2020-06-02 01:27:00反正我只是来骂原Po的 你们随意
然后写code的是刚进来的菜鸟 连rand怎么写现场google后续会发生什么鬼事根本不是他有办法知道的事
我是没到过那种真的管理很严谨的企业 但是我的经验告
"抽卡游戏的命根子就是抽卡 你说会随便乱搞那我随便了"只能说呵呵
别说小公司,有的时候大公司也是让人匪夷所思。因为大公司有时候决定标准的根本不懂工程实务。
作者: zz860619 (Kukuboo) 2020-06-02 01:34:00
如果这个世界大家都是这样理所当然的在思考,那我想世界也不会那么乱了
比方说某间供应商出错以后就规定所有同型产品都要一致超高标准,结果之后因为这种超高标准在某些尺度完全做不到,卡死自己研发跟品保,然后工程师完全跟上层沟通无效。
偏偏台湾这边供应商很诚实都说做不到,支那那边都是跟你说可以但实际上做不到,然后就全部转单过去,然后出事以后回来找台湾帮忙,想转回台湾然后别部门又再要求台湾要做这个标准无限循环哈哈哈。
靠杯这我超有即视感的xddddd果然这世界运作的模式都很像(o
欸你说他们大公司工程师薪水那么高成天做这种无用功是怎么赚钱的?我也不知道,反正人家是跨国大公司不是我能理解的。
我朋友在台湾公司写游戏 他们就是写像文中一样的程式码 他们的游戏很红 排行榜上也有