欢迎来到问拳头专栏
这周我们要聊的是极地大乱斗
拳头好,我有一个关于极地大乱斗的问题。英雄选择真的是完全随机的吗?你们如何保证两队不会拿到同样的英雄,包括在刷新的时候?
极地大乱斗的英雄选择采用的是一种我们称为阵容构建的系统。阵容构建服务器会记录两队中每位玩家刷到的英雄、备战席上的英雄等等。该系统会避免玩家刷到其他人已经刷到的英雄。
联盟客户端的英雄选择用户界面会听话地把阵容构建系统选出的英雄送到你面前。当你点击“刷新”时,客户端会告诉阵容构建系统,你要求刷新了。该系统会决定你会刷出哪些英雄,然后告诉客户端,最后展示给你。
换句话说,整个英雄选择的流程都是服务器自动判断的。阵容构建系统说了算。每一次英雄选择、刷新、交换、备战席更换和锁定,都是有次序的。也就是说不会出现两名玩家同时刷出同样英雄的情况;阵容构建系统会先处理一次刷新,然后再处理另一次。
至于是否“完全随机”,要看你指的是什么了。每次选择或刷新时,你看到的英雄都是随机从当时可用的英雄池中抽取的,但这个英雄池并非随机。用数学中的集合概念,应该这样描述:
((A ∪ C ∪ O) \ R) \ D
A是49个永久免费的极地大乱斗英雄集合,C是当前轮转免费英雄的集合,O是你拥有的英雄集合,R是目前两队玩家刷到的英雄集合,D是不可用英雄的集合(希望为空)。简单说来…你拿到的总是目前不在队中或备战席上的随机英雄。
初始刷出的10个英雄同样遵守这套流程;英雄选择开始时,阵容构建系统为每名玩家做一次运算,决定每个人的初始英雄。
需要说明的是,之前比赛中出现过的英雄,甚至是中途退出英雄选择,都不会影响这次出现的英雄。也就是说你可能会在不同的比赛中连续遇到同样的英雄,包括你最喜欢,或者最不喜欢的英雄。出现这种情况时,可能会感觉这个过程并不是随机的,哪怕它的确如此。
所以,当你充满犹豫地把鼠标放在刷新按钮上时,我只能说一句:“祝你好运!”
Riot Mojibake,高级软件工程师
精彩评论
英雄是随机的,队友却总是让你咬牙切齿的
英雄是随机的,队友更随机