拳頭好,我有一個關於極地大亂斗的問題。英雄選擇真的是完全隨機的嗎?你們如何保證兩隊不會拿到同樣的英雄,包括在重新整理的時候?
極地大亂斗的英雄選擇採用的是一種我們稱為陣容構建的系統。陣容構建伺服器會記錄兩隊中每位玩家刷到的英雄、備戰席上的英雄等等。該系統會避免玩家刷到其他人已經刷到的英雄。
聯盟客戶端的英雄選擇使用者介面會聽話地把陣容構建系統選出的英雄送到你面前。當你點選“重新整理”時,客戶端會告訴陣容構建系統,你要求重新整理了。該系統會決定你會刷出哪些英雄,然後告訴客戶端,最後展示給你。
換句話說,整個英雄選擇的流程都是伺服器自動判斷的。陣容構建系統說了算。每一次英雄選擇、重新整理、交換、備戰席更換和鎖定,都是有次序的。也就是說不會出現兩名玩家同時刷出同樣英雄的情況;陣容構建系統會先處理一次重新整理,然後再處理另一次。
至於是否“完全隨機”,要看你指的是什麼了。每次選擇或重新整理時,你看到的英雄都是隨機從當時可用的英雄池中抽取的,但這個英雄池並非隨機。用數學中的集合概念,應該這樣描述:
((A ∪ C ∪ O) \ R) \ D
A是49個永久免費的極地大亂鬥英雄集合,C是當前輪轉免費英雄的集合,O是你擁有的英雄集合,R是目前兩隊玩家刷到的英雄集合,D是不可用英雄的集合(希望為空)。簡單說來…
你拿到的總是目前不在隊中或備戰席上的隨機英雄。
初始刷出的10個英雄同樣遵守這套流程;英雄選擇開始時,陣容構建系統為每名玩家做一次運算,決定每個人的初始英雄。
需要說明的是,之前比賽中出現過的英雄,甚至是中途退出英雄選擇,都不會影響這次出現的英雄
。也就是說你可能會在不同的比賽中連續遇到同樣的英雄,包括你最喜歡,或者最不喜歡的英雄。出現這種情況時,可能會感覺這個過程並不是隨機的,哪怕它的確如此。
所以,當你充滿猶豫地把滑鼠放在重新整理按鈕上時,我只能說一句:“祝你好運!”
Riot Mojibake,高階軟體工程師