【求助】随机地图的生成原理是什么?
前几天逛贴吧的时候偶然看见某帖,内容是自己的某局地形跟某超高的某局地形一模一样,我突然想起来今年年中的时候,我和猫眼打了一局阿拉伯单挑(这局录像猫眼发在录像区了),随后我看某主播的录制视频的时候,发现那局火车vsDauT的地图跟我和猫眼那局的地图一模一样!当时首先是因为比较忙,其次是不知道AoCZone,就没办法搞到录像,逐渐就淡忘了这事。不过现在我想起来啦!幸运的是,Zone上的录像很快被我找出来了!对比一下,就发现:这完完全全就是同一个地图嘛!除了民族不同,我和猫眼那局是匈奴,火车和DauT那局是阿兹特克,不过小马和小鸟的位置都是一样的,当然mm位置也一样。为了图片尺寸尽量小,我选择了1:8的打印地图,感兴趣的坛友可以下载录像来检查确认图片上的细节:
所以随机地图的生成实际上是种子地图吗?如果不是,又是什么原因导致这样的情况呢?请教随机地图领域的前辈们,也欢迎各位有相同经历的坛友留言。
手动@yesgqt
可能是分类别的种子吧
地图不是有种子号码吗 杀鸡领主 发表于 2017-10-1 18:51
可能是分类别的种子吧
地图不是有种子号码吗
如果说自带地图是伪随机,也就是种子地图的话,那么玩家自己写的地图又是如何生成呢? 帝國的都是種子地圖,就是對局時會隨機生成一個地圖種子碼。
cxt 发表于 2017-10-1 18:55
如果说自带地图是伪随机,也就是种子地图的话,那么玩家自己写的地图又是如何生成呢?
您不会认为“种子地图”就是已经制作好的地图吧…… 我是谁004 发表于 2017-10-1 21:13
您不会认为“种子地图”就是已经制作好的地图吧……
地图编辑器里生成种子地图,对于同一地图类型(如:阿拉伯)和同一尺寸(如:微型),输入同一种子号(0-10^11-1中的一个),生成的就是完全一样的地图。我的印象中随机地图应该是由随机地图的代码生成的啊,为什么会早就分配到指定种子里了呢,或者说是种子编号的每位数字是有含义的?
玩家自己写的随机地图脚本的话,会不会出现一样的情况呢?所以我很疑惑随机地图到底是怎么生成的,对于玩家自己写的地图,肯定不可能是已经制作好的。 你可以把一个rms脚本理解为一个生成随机地图的模板,里面只是一些描述性的语句,比如哪些物件距离基地多远之类,一个脚本并不能精确地生成唯一的一张地图,需要有一个随机数作为初始化种子值,配合一个脚本,通过内置的生成算法,具体算出例如每个范围参数究竟该取什么值、每棵树要取若干张树的图像中的哪一个等,从而生成出唯一的一张地图。
换句话讲,如果把生成一张地图的算法看作一个函数,那么函数的参数有两个,一个是rms脚本,另一个就是种子值。内置的阿拉伯等地图,也是普通的rms脚本,在这一点上与自定义的rms脚本没有本质区别。
另附与题无直接关联的补充数据:1.0c版中,一个rms脚本能使用的不同种子值只有32768个(即:一个rms脚本只能生成32768张不同的地图),UserPatch将这一数值扩大到了4,294,967,296 张不同地图。 完全不明白你為何會從種子編號聯想到它可以涵蓋任何地圖物件組合,最簡單的反例就是一張256X256地圖,XY坐標只按0.1計算,僅一隻單位位置都有6553600種組合了,而種子編號最高4294967296,難道地圖上會只有不足700個單位?
RMS腳本遊戲生成地圖基本次序是先生成地型再產生物件(官方RMS與自訂RMS無任何分別),至於玩家手繪SCX已經完全取締此兩道工序,不再涉及種子編號;唯一例外的是真實世界地圖則是用SCX固定地型後靠RMS產生物件。
種子地圖的編號仍然得按照RMS腳本設成產生地型、物件的規則執行,RMS程序始於一個隨機數,而種子編號簡單來說就是手動輸入這個隨機數。不過,任何電腦程序都不可能有絕對完美隨機算式,遊戲地圖RMS的場合就是實際只有4294967296個組合,故種子編號即這些組合的編號。
我觉得应该就是那种伪随机,种子地图脚本里把地图要素设置好,然后按照一定规则和顺序进行地图生成吧?似乎很多游戏都用了这种地图生成方式,比如暗黑破坏神、Minecraft、Terraria、屎大棒什么的 我平常基本都是玩MR,很少很少玩阿拉伯这张地图,如此巧合的小概率事件竟然也碰上了{:149:} VicViper 发表于 2017-10-2 10:30
我觉得应该就是那种伪随机,种子地图脚本里把地图要素设置好,然后按照一定规则和顺序进行地图生成吧?似乎 ...
用软件实现的都是伪随机,没有真随机。 今天一大早就迫不及待地去看了昨晚上沙漠之鹰半决赛Viper vs Max ,第一局,Viper在封建后期被Max前置之后,失去了主金主石,找别的黄金……找……咦??这图??这个图!!这块副金!这片木材!这……!吓得我赶快去翻之前的录像,果然,又是一模一样,这两局录像我都上传过了,详情如下:
左:Viper vs Max 昨天晚上的沙漠之鹰半决赛G1,链接:https://www.hawkaoe.net/bbs/thread-141086-1-1.html
右:cxt vs 小羊 11月29号晚上娱乐局G1,链接:https://www.hawkaoe.net/bbs/thread-141029-1-1.html
4294967296个种子,照理说不会那么容易撞上啊,简直可怕 cxt 发表于 2017-12-11 10:47
今天一大早就迫不及待地去看了昨晚上沙漠之鹰半决赛Viper vs Max ,第一局,Viper在封建后期被Max前置之后 ...
那是因为没撞上就不说了
页:
[1]